Перший для прямої розв'язки (gethostbyname(3)):
; our local zone $TTL 3D @ IN SOA ns.sakae. hostmaster.sakae. ( 200109231 8H ; refresh 2H ; retry 4W ; expire 1D ) ; minimum ; NS ns ; nameserver MX 10 mail.sakae. localhost A 127.0.0.1 ns A 192.168.2.1 mail A 192.168.2.1 yarylo A 192.168.2.1 HINFO "ibm 570" "Mandrake linux" ; berkut A 192.168.2.10 HINFO "Compaq ProLinea 4/50" "SuSE linux" ; veles A 192.168.2.15 HINFO "Sparc Station 5" "RH Linux 5.2 sparc" ; perun A 192.168.2.16 HINFO "IBM Think Pad 570e" "Mandrake 7.2" ; mavka A 192.168.2.20 HINFO "PowerPC Macintosh" "Mac OS/Linux" ; prosha A 192.168.2.30 HINFO "Performa 5220 Macintosh" "Mac OS" ; natalya A 192.168.2.70 HINFO "Pentium" "Mandrake 8.0" nfs CNAME natalya fetchmail CNAME natalya/var/named/sakae/sakae
Невеличкий коментар до наведеного файлу. Домашня мережа виявилась на диво динамічною. Я перебудовую свої системи досить часто в залежності від потреб і від величезного набору факторів: переповнюється диск з домашніми директоріями, і наступає час перебудови сервера NFS; один модем змінює інший (зовнішній 28k під'єднаний до sparc'у змінюється на 56k winmodem у PC) і змінюється сервер, що забезпечує зв'язок з зовнішнім світом, і таке інше. Вся мережа традиційно керується цілою системою розрізнених командних і Перл скриптів часто не зв'язаних між собою. Спочатку я користувався назвами хостів в таких скриптах і, отже, при кожній зміні в мережі, з появою чи відставкою того чи іншого сервера мені було потрібно відшукувати скрипти, які перестали від такої зміни працювати і лагодити їх. Поступово я перейшов до, так би мовити, "функціональних" назв. Тобто, в DNS я став додавати псевда до назв хостів, які виражали б сервіс, що працює на даному хості. Мовою DNS це виражається в CNAME рядках.
Як, наприклад, хост natalya є одночасно сервером домашніх директорій, і тому він також зветься `nfs'. На цьому ж сервері в мене працює fetchmail [6], тому у мене він також зветься і fetchmail. Ось записи, що стосуються сервера natalya:
natalya A 192.168.2.70 HINFO "Pentium" "Mandrake 8.0" nfs CNAME natalya fetchmail CNAME natalya
Всі скрипти я поступово виправляю і записую в них "функціональні псевда" замість справжніх назв. Таким чином, при черговій зміні в домашній мережі мені не потрібно більше виправляти скрипти, а просто досить змінити CNAME в DNS.