 KERNEL
Группа: Администраторы
Сообщений: 97
Награды: 2
Репутация: 3
Статус: Offline
| Вопрос по настройке собственного DNS сервера возникает можно сказать сразу, как только организовывается сеть и в сети появляются от 5 и выше машин. Но DNS сервер, он и в Африке DNS сервер, соответственно, как и DHCP сервер. Когда в сетке 5 машин, то для админа, не проблема добавить в конфиги прямой и обратной зоны DNS сервера пару тройку записей. Но иногда можно и подзабыть - это сделать и потом возникает дискомфорт, от того, что что-то и где, то забыто, просто так устроен человек, вернее самое главное свойство человеческой памяти - забывать. Ну все по порядку. DNS – по определению WIKI DNS (англ. Domain Name System — система доменных имён) — распределённая система (распределённая база данных), способная по запросу, содержащему доменное имя хоста (компьютера или другого сетевого устройства), сообщить IP адрес или (в зависимости от запроса) другую информацию. DNS работает в сетях TCP/IP. Как частный случай, DNS может хранить и обрабатывать и обратные запросы, определения имени хоста по его IP адресу: IP адрес по определённому правилу преобразуется в доменное имя, и посылается запрос на информацию типа "PTR". DHCP – по определению WIKI DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической конфигурации узла) — это сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Для этого компьютер обращается к специальному серверу, называемому сервером DHCP. Сетевой администратор может задать диапазон адресов, распределяемых среди компьютеров. Это позволяет избежать ручной настройки компьютеров сети и уменьшает количество ошибок. Протокол DHCP используется в большинстве крупных сетей TCP/IP. DHCP является расширением протокола BOOTP, использовавшегося ранее для обеспечения бездисковых рабочих станций IP-адресами при их загрузке. DHCP сохраняет обратную совместимость с BOOTP. Из вышеописанного текста попробуем разобраться на пальцах, что это такое и как работает. DNS – у меня в сети есть три машины и зовутся они например: Эти машины имеют следующие ip-адреса: Test 192.168.0.1 Test1 192.168.0.2 Test2 192.168.0.3 Так вот, если кто-то у меня спросит у компьютера Test какой ip-адрес? Я отвечу 192.168.0.1 или совсем, наоборот, у ip-адреса 192.168.0.1 какое имя компа? На что я отвечу Test – выходит я выступаю в качестве речевого запоминающего устройства, которое хранит данные у себя в памяти по буквам именам и цифрам - своеобразный DNS сервер, так вот если представить что эту информацию у меня спрашивают весь, день и не один человек, а весь офис в 50 человек и я весь день выдаю имена машин и ip-адреса, которые им соответствуют (ну уж если вообще утрировать, то по 53 порту – то есть голосом). Так вот, в сети таким делом занимается ДНС сервер. У него есть разновидности из WIKI: авторитативный DNS-сервер — сервер, отвечающий за какую-либо зону. Мастер или первичный сервер (в терминологии BIND) — сервер, имеющий право на внесение изменений в данные зоны. Обычно для зоны бывает только один мастер сервер. В случае Microsoft DNS-сервера и его интеграции с Active Directory мастер-серверов может быть несколько (так как репликация изменений осуществляется не средствами DNS-сервера, а средствами Active Directory, за счёт чего обеспечивается равноправность серверов и актуальность данных). Слейв или вторичный сервер, не имеющий права на внесение изменений в данные зоны и получающий сообщения об изменениях от мастер-сервера. В отличие от мастер-сервера их может быть (практически) неограниченное количество. Кеширующий DNS-сервер — сервер, который обслуживает запросы клиентов, (получает рекурсивный запрос, выполняет его с помощью нерекурсивных запросов к авторитативным серверам или передаёт рекурсивный запрос вышестоящему DNS-серверу) Локальный DNS-сервер; используется для обслуживания DNS-клиентов, исполняющиеся на локальной машине. Фактически, это разновидность кеширующего DNS-сервера, сконфигурированная для обслуживания локальных приложений. Перенаправляющий DNS-сервер; (англ. forwarder, внутренний DNS-сервер) сервер, перенаправляющий полученные рекурсивные запросы вышестоящему кеширующему серверу в виде рекурсивных запросов. Используется преимущественно для снижения нагрузки на кеширующий DNS-сервер. Корневой DNS-сервер — сервер, являющийся авторитативным за корневую зону. Общеупотребительных корневых серверов в мире всего 13 шт, их доменные имена находятся в зоне root-servers.net и называются a.root-servers.net, … , g.root-servers.net. В определённых конфигурациях локальной сети возможна ситуация настройки локальных корневых серверов. Регистрирующий DNS-сервер. Сервер, принимающий динамические обновления от пользователей. Часто совмещается с DHCP-сервером. В Microsoft DNS-сервере при работе на контроллере домена сервер работает в режиме регистрирующего DNS-сервера, принимая от компьютеров домена информацию о соответствии имени и IP компьютера и обновляя в соответствии с ней данные зоны домена. DNSBL-сервер (сервер с чёрными списками адресов и имён). Формально, такой сервер не входит в иерархию DNS, однако использует тот же механизм и протокол для работы, что и DNS-сервера. Переходим теперь к DHCP серверу – чем же занимается он? Если по русски, то происходит такое - сотрудник Степа пришедший в офис спрашивает – какой у меня сегодня ip-адрес? В ответ ему – 192.168.0.1 он закреплен за тобой Степа на 5 часов, пройдет время, спросишь еще раз. Ответ – хорошо. Затем приходит еще один сотрудник Федя, и спрашивает - какой у меня сегодня ip-адрес? В ответ ему – 192.168.0.2 он закреплен за тобой Федя на 5 часов, так как 192.168.0.1 уже закреплен за Степой, пройдет время, спросишь еще раз. Ответ – хорошо. Вот Степа через 5 часов молча, ушел и никому ничего не сказал. Приходит сотрудница Таня, и спрашивает - какой у меня сегодня ip-адрес? В ответ ей - Степа? Степа? Что Степы нет? Нет! Ясно – Таня у тебя ip-адрес 192.168.0.1 потому как Степы нет, и даже если будет, то выдадим другой, адрес закреплен за тобой на 5 часов, пройдет время, спросишь еще раз. Кому-то станет смешно при чтении такого описания, но примерно так и происходит. Можете подкорректировать, если я где ошибся. Так вот если машин в сети от 3 до 10 то не вопрос все делать руками и в зонах изменения и динамические адреса или в ручную проставить, но если в сетке 50 и более машин – тогда нужно вводить новую должность – Ходитель – настраиватель ip-адресов – прописыватель и обновлятель зон DNS. Пускай этим делом в сети занимаются две программки которые для этого предназначены, так вот Погуглившись в сети нашел статейку Lissyara и решил сделать такое себе и заодно потом описать как и что, чтобы время оставалось и на пиво и на девушек, ну тогда поехали. Первым делом: Code frodo# uname -a FreeBSD frodo.myhome.net 6.3-RELEASE FreeBSD 6.3-RELEASE #0: Sun Sep 14 00:18:49 EEST 2008 итого получаем строку из которой видно на какой системе все будет установлено. Идем пошагово, потому как при установке и настройке возникло много неясных вещей. Поскольку у нас связка DynamicDNS+DHCP, то нам нужен секретный ключ, для общения этих двух серверов и мы его сгенерируем, следующей командой в любой удобной для вас папке но лучше /usr/local/etc/: Code frodo# dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER и далее проверим что же в самом файле вышло: Code frodo# cat /usr/local/etc/Kdhcp_updater.+157+33140.key DHCP_UPDATER. IN KEY 0 3 157 GFwhwhkFfGN2AnaUCd233A== frodo# Так же необходим так называемый rndc.key его можно сгенерировать командой: Code frodo# rndc-confgen -a -k rndc -c rndc.key Переходим в /etc/namedb и выполняем команду: Code frodo# cd /etc/namedb/ frodo# sh make-localhost и по статье Quote «В результате чего в каталоге /etc/namedb/master должны появиться файлы localhost.rev для локальной адресной зоны и localhost-v6.rev для для конфигурации IPv6.» Увы – не появились, не ясно, почему при выполнении этой же команды в релизе 6.2 все сработало чудесно, а вот в 6.3 и 7.0 не вышло, то ли разработчики забыли, то ли изменили что-то и забыли написать мануал ну Гугл – нам поможет!!! Гуглимся и находим скрипты, которые нам необходимы, чтобы все заработало: Лучше выложу сюда – вдруг прийдется где-то настраивать и если забуду – подгляну, текстовый файл под названием make-localhost - Аттач: Далее файл PROTO.localhost.rev - Аттач: Далее последний файлик с именем PROTO.localhost-v6.rev - Аттач: Ну, вот теперь у нас все есть – нужно скопировать эти файлы в директорию /etc/namedb/ и далее выполнить команду над файлом make-localhost: Code frodo# chmod a+x /etc/namedb/make localhost Файл станет исполняемым, возвращаемся к первому шагу: Code frodo# cd /etc/namedb/ frodo# sh make-localhost Теперь все работает отлично – все файлики создались и находятся в нужном месте то есть в директории /etc/namedb/master далее следуем по описанию в статье и выполняем команду: Code frodo# mv –f /etc/namedb/master/* /etc/namedb то есть, все файлы из папки master переносим в папку выше namedb Я не буду расписывать всякого рода умные вещи, мы идем по шагам поэтому движемся далее. (Маленькая оговорка из текстовых редакторов я привык только к nano поэтому сделал так: Code frodo# whereis nano nano: /usr/ports/editors/nano frodo# cd /usr/ports/editors/nano frodo# make install clean чтобы удобно и привычно было редактировать конфиги.) после установки nano делаем следующее: Code frodo# nano –w /etc/namedb/named.conf привожу пример своего готового конфига (тестового) чтобы не ругали сильно: Code options { directory "/etc/namedb"; (рабочая директория создана по умолчанию) pid-file "/var/run/named/pid"; (идентификатор процесса создается сам по себе при запуске DNS) dump-file "/var/dump/named_dump.db"; (дамп-файл для всякой лажи ошибок создать) statistics-file "/var/stats/named.stats"; (статистика сервера создать) version "Vozmozhno DNS"; (типа от хацкеров чтобы не ясно было что за DNS) listen-on { 127.0.0.1; (секция прослушки на каких адресах слушаются DNS запросы) 192.168.0.1; }; // listen-on-v6 { ::1; }; // disable-empty-zone "255.255.255.255.IN-ADDR.ARPA"; // disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA"; // disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA"; // forward only; forwarders { (указываем авторитетные DNS-сервера на которые идут запросы) 127.0.0.1; 192.168.0.1; 191.55.32.102; 191.55.32.100; }; query-source address * port 53; (для фоервола указываем что запросы по 53 порту идут) };
key DHCP_UPDATER { (ключик DHCP обновления зон ДНС) algorithm hmac-md5; (алгоритм обновления файлов зон шифрованный) secret "GFwhwhkFfGN2AnaUCd233A=="; (секретный ключик для связки DNS+DHCP) };
zone "." { (корневая зона Интернета) type hint; (тип зоны) file "named.root"; (файл зоны) };
zone "localhost" { (ну ясное дело зона локальной машины с именем localhost) type master; (тип мастер-зона) file "localhost-forward.db"; (файл зоны) };
zone "127.in-addr.arpa" { (обратная зона localhost) type master; (тип мастер-зона) file "localhost-reverse.db"; (файл зоны) };
zone "255.in-addr.arpa" { type master; file "empty.db"; }; zone "0.ip6.arpa" { type master; file "localhost-reverse.db"; }; zone "0.in-addr.arpa" { type master; file "empty.db"; }; zone "10.in-addr.arpa" { type master; file "empty.db"; }; zone "16.172.in-addr.arpa" { type master; file "empty.db"; }; zone "17.172.in-addr.arpa" { type master; file "empty.db"; }; zone "18.172.in-addr.arpa" { type master; file "empty.db"; }; zone "19.172.in-addr.arpa" { type master; file "empty.db"; }; zone "20.172.in-addr.arpa" { type master; file "empty.db"; }; zone "21.172.in-addr.arpa" { type master; file "empty.db"; }; zone "22.172.in-addr.arpa" { type master; file "empty.db"; }; zone "23.172.in-addr.arpa" { type master; file "empty.db"; }; zone "24.172.in-addr.arpa" { type master; file "empty.db"; }; zone "25.172.in-addr.arpa" { type master; file "empty.db"; }; zone "26.172.in-addr.arpa" { type master; file "empty.db"; }; zone "27.172.in-addr.arpa" { type master; file "empty.db"; }; zone "28.172.in-addr.arpa" { type master; file "empty.db"; }; zone "29.172.in-addr.arpa" { type master; file "empty.db"; }; zone "30.172.in-addr.arpa" { type master; file "empty.db"; }; zone "31.172.in-addr.arpa" { type master; file "empty.db"; }; zone "myhome.net" { (описание и файл зоны myhome.net – имя в ip-адрес) type master; (тип зоны – мастер зона) file "myhome.net.forward"; (файл описания зоны) allow-update { key DHCP_UPDATER; }; (обновлять файл и зону можно ключику DHCP ) };
zone "0.168.192.in-addr.arpa" { (описание и файл зоны myhome.net ip-адрес в имя) type master; (тип зоны – мастер зона) file "myhome.net.reverse"; файл описания зоны) allow-update { key DHCP_UPDATER; }; (обновлять файл и зону можно ключику DHCP ) };
zone "254.169.in-addr.arpa" { type master; file "empty.db"; }; zone "2.0.192.in-addr.arpa" { type master; file "empty.db"; }; zone "18.198.in-addr.arpa" { type master; file "empty.db"; }; zone "19.198.in-addr.arpa" { type master; file "empty.db"; }; zone "240.in-addr.arpa" { type master; file "empty.db"; }; zone "241.in-addr.arpa" { type master; file "empty.db"; }; zone "242.in-addr.arpa" { type master; file "empty.db"; }; zone "243.in-addr.arpa" { type master; file "empty.db"; }; zone "244.in-addr.arpa" { type master; file "empty.db"; }; zone "245.in-addr.arpa" { type master; file "empty.db"; }; zone "246.in-addr.arpa" { type master; file "empty.db"; }; zone "247.in-addr.arpa" { type master; file "empty.db"; }; zone "248.in-addr.arpa" { type master; file "empty.db"; }; zone "249.in-addr.arpa" { type master; file "empty.db"; }; zone "250.in-addr.arpa" { type master; file "empty.db"; }; zone "251.in-addr.arpa" { type master; file "empty.db"; }; zone "252.in-addr.arpa" { type master; file "empty.db"; }; zone "253.in-addr.arpa" { type master; file "empty.db"; }; zone "254.in-addr.arpa" { type master; file "empty.db"; }; zone "1.ip6.arpa" { type master; file "empty.db"; }; zone "3.ip6.arpa" { type master; file "empty.db"; }; zone "4.ip6.arpa" { type master; file "empty.db"; }; zone "5.ip6.arpa" { type master; file "empty.db"; }; zone "6.ip6.arpa" { type master; file "empty.db"; }; zone "7.ip6.arpa" { type master; file "empty.db"; }; zone "8.ip6.arpa" { type master; file "empty.db"; }; zone "9.ip6.arpa" { type master; file "empty.db"; }; zone "a.ip6.arpa" { type master; file "empty.db"; }; zone "b.ip6.arpa" { type master; file "empty.db"; }; zone "c.ip6.arpa" { type master; file "empty.db"; }; zone "d.ip6.arpa" { type master; file "empty.db"; }; zone "e.ip6.arpa" { type master; file "empty.db"; }; zone "0.f.ip6.arpa" { type master; file "empty.db"; }; zone "1.f.ip6.arpa" { type master; file "empty.db"; }; zone "2.f.ip6.arpa" { type master; file "empty.db"; }; zone "3.f.ip6.arpa" { type master; file "empty.db"; }; zone "4.f.ip6.arpa" { type master; file "empty.db"; }; zone "5.f.ip6.arpa" { type master; file "empty.db"; }; zone "6.f.ip6.arpa" { type master; file "empty.db"; }; zone "7.f.ip6.arpa" { type master; file "empty.db"; }; zone "8.f.ip6.arpa" { type master; file "empty.db"; }; zone "9.f.ip6.arpa" { type master; file "empty.db"; }; zone "a.f.ip6.arpa" { type master; file "empty.db"; }; zone "b.f.ip6.arpa" { type master; file "empty.db"; }; zone "0.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "1.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "2.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "3.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "4.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "5.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "6.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "7.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "c.f.ip6.arpa" { type master; file "empty.db"; }; zone "d.f.ip6.arpa" { type master; file "empty.db"; }; zone "8.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "9.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "a.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "b.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "c.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "d.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "e.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "f.e.f.ip6.arpa" { type master; file "empty.db"; }; zone "ip6.int" { type master; file "empty.db"; };
//logging { // channel update_degug { // file "/var/log/named-update.log"; // security debug 3; // print-category yes; // print-severity yes; // print-time yes; // }; // channel security_info { // file "/var/log/named-auth.log"; // severity info; // print-category yes; // print-severity yes; // print-time yes; // }; // category update { update_debug; }; // category security { security_info; }; //}; Движемся далее, создаем файлы форвард и реверс зоны myhome.net Code frodo# pwd /var/named/etc/namedb Если не в этой директории то тогда Code frodo# cd /etc/namedb frodo# nano –w myhome.net.forward И вносим в него такие данные (ну это только мои у Вас могут быть другие): Code $TTL 86400 myhome.net IN SOA frodo.myhome.net. admin.myhome.net. ( 2008150912 ; serial 86400 ; refresh (1 day) 7200 ; retry (2 hours) 8640000 ; expire (14 weeks 2 days) 86400 ; minimum (1 day) ) NS frodo.myhome.net. MX 10 frodo.myhome.net. frodo A 192.168.0.1 mx A 192.168.0.1
Файл должен заканчиваться с пустой строки всегда. Далее Code frodo# nano –w myhome.net.reverse и вносим: Code $TTL 86400 0.168.192.in-addr.arpa IN SOA frodo.myhome.net. admin.myhome.net. ( 2008150909 ; serial 86400 ; refresh (1 day) 7200 ; retry (2 hours) 8640000 ; expire (14 weeks 2 days) 86400 ; minimum (1 day) ) NS frodo.myhome.net. 1 PTR frodo.myhome.net.
Файл должен заканчиваться с пустой строки всегда. Вроде с настройками хватит пока, теперь прописываем автозапуск DNS сервера в rc.conf Code frodo# echo `named_enable=”YES”` >> /etc/rc.conf frodo# echo `named_flage=”-u bind -g bind”` >> /etc/rc.conf `named_flage=”-u bind -g bind – это значит, что DNS стартует от имени пользователя bind и от имени группы bind при старте с системой. Далее запускаем сам DNS сервер: Code frodo# /usr/sbin/named –u bind если никаких ошибок нет или тихо как в танке (и такое может быть) тогда милости просим в папку /var/log и карты в руки – ну ясное дело что необходимо будет при ошибках искать способы их решения – поэтому наверное Гугл ). Нужно проверить работает ли это чудо, которое мы настроили. Нам на помощь приходят две команды nslookup и ping делаем: Code frodo# nslookup localhost Server: 127.0.0.1 Address: 127.0.0.1#53 Name: localhost.myhome.net Address: 127.0.0.1 frodo# nslookup 127.0.0.1 Server: 127.0.0.1 Address: 127.0.0.1#53 1.0.0.127.in-addr.arpa name = localhost. frodo# ну и для продолжения: Code frodo# nslookup 192.168.0.1 Server: 127.0.0.1 Address: 127.0.0.1#53 1.0.168.192.in-addr.arpa name = frodo.myhome.net. frodo# nslookup frodo Server: 127.0.0.1 Address: 127.0.0.1#53 Name: frodo.myhome.net Address: 192.168.0.1 frodo# Значит работает, теперь ping Code frodo# ping www.ya.ru PING ya.ru (213.180.204.8): 56 data bytes 64 bytes from 213.180.204.8: icmp_seq=0 ttl=53 time=146.480 ms 64 bytes from 213.180.204.8: icmp_seq=1 ttl=53 time=141.614 ms 64 bytes from 213.180.204.8: icmp_seq=2 ttl=53 time=139.877 ms 64 bytes from 213.180.204.8: icmp_seq=3 ttl=53 time=153.698 ms --- ya.ru ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 139.877/145.417/153.698/5.359 ms frodo# Замечательно – у нас все работает. Теперь ставим DHCP Code frodo# whereis isc-dhcp3-server isc-dhcp3-server: /usr/ports/net/isc-dhcp3-server frodo# cd /usr/ports/net/isc-dhcp3-server frodo# make install clean (опции не трогал ставил как есть) После установки делаем команду: Code frodo# cp /usr/local/etc/dhcpd.conf.cample /usr/local/etc/dhcpd.conf frodo# nano –w /usr/local/etc/dhcpd.conf и вносим данные в конфигурационный файлик DHCP сервера: у меня такие Code option domain-name "myhome.net"; (имя доменной зоны) option domain-name-servers frodo.myhome.net; (DNS сервер доменной зоны) default-lease-time 720000; (время аренды ip-адреса по умолчанию сознательно большое) max-lease-time 720000; (максимальное время аренды ip-адреса) authoritative; (наш сервер в авторитете за все адреса которые раздает) ddns-update-style interim; (метод обновления файла ДНС зон) log-facility local7; key DHCP_UPDATER { algorithm hmac-md5; secret "GFwhwhkFfGN2AnaUCd233A=="; }; zone myhome.net. { primary 127.0.0.1; key DHCP_UPDATER; } zone 0.168.192.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; } subnet 192.168.0.0 netmask 255.255.255.0 { (подсеть) range 192.168.0.4 192.168.0.10; (диапазон ip-адресов но 192.168.0.2 и 3 не указываем в диапазоне) option routers 192.168.0.2; (наш роутер или шлюз) option subnet-mask 255.255.255.0; (маска подсети) option netbios-name-servers 192.168.0.1; (сервер имен) option netbios-dd-server 192.168.0.1; (выделенный сервер имен) option netbios-node-type 8; (в статье это для самбы еще не проверял) option broadcast-address 192.168.0.255; (широковещательный адрес сети) option ntp-servers time.nis.gov; (сервер обновления времени) }
host mega { (даю статические адреса машинам mega и gendolf hardware ethernet 00:1E:10:20:32:15; чтобы знать что у них фиксированные адреса) fixed-address 192.168.0.2; } host gendolf { hardware ethernet 00:10:04:15:E8:2C; fixed-address 192.168.0.3; } С конфигом закончили сохраняем и выходим из редактора, следуем далее: Quote «Теперяче дописываем в /etc/rc.conf следующие строки:dhcpd_enable=”YES” dhcpd_conf=”/usr/local/etc/dhcpd.conf” dhcpd_ifaces=”rl0” # на каком интерфейсе крутится DHCP Соответственно: Code frodo# echo ‘dhcpd_enable=”YES”’ >> /etc/rc.conf frodo# echo ‘dhcpd_conf=”/usr/local/etc/dhcpd.conf”’ >> /etc/rc.conf frodo# echo ‘dhcpd_ifaces=”rl0”’ >> /etc/rc.conf У меня на машине две сетвые карты Realtek: Code frodo# dmesg | grep net rl0: Ethernet address: 00:01:42:5f:f6:4c rl1: Ethernet address: 00:e0:4c:7а:0у:32 frodo# внутренняя сетка на rl0 внешняя сетка на rl1 Далее перезапускаем DNS: Code frodo# killall -1 named и запускаем DHCP: Code frodo#/usr/local/etc/rc.d/isc-dhcd start Если всё нормально, то машины в сети получат нужные параметры, а в директории /etc/namedb в ближайшем будущем появятся два новых файла myhome.net.forvard.jnl и myhome.net.reverse.jnl, а сами файлы myhome.net и myhome.net.reverse будут изменены. Вот как раз после запуска DHCP начались грабли, такого плана в логах появилась одна и та же ошибка: Code frodo# cat messages | grep tmp Sep 16 09:39:52 frodo named[705]: dumping master file: tmp-bSAhJYM7Tr: open: permission denied Sep 16 09:40:24 frodo named[705]: dumping master file: tmp-HZkNKY29Iv: open: permission denied Sep 16 09:51:46 frodo named[705]: dumping master file: tmp-5rSltFt3X7: open: permission denied Sep 16 09:52:56 frodo named[705]: dumping master file: tmp-QBWpsSKoNs: open: permission denied Sep 16 10:18:32 frodo named[704]: dumping master file: tmp-aHlvRfR9vW: open: permission denied Sep 16 10:18:52 frodo named[704]: dumping master file: tmp-Tx3eDy90ZZ: open: permission denied Sep 16 10:30:35 frodo named[704]: dumping master file: tmp-rJVzHoOl4A: open: permission denied Sep 16 10:32:20 frodo named[704]: dumping master file: tmp-10wW1DD2sT: open: permission denied Sep 16 10:49:10 frodo named[706]: dumping master file: tmp-VKtN9hxB8T: open: permission denied Sep 16 10:50:25 frodo named[706]: dumping master file: tmp-eyQwVQRvyB: open: permission denied Sep 16 11:00:44 frodo named[706]: dumping master file: tmp-j2NXaARW8g: open: permission denied Sep 16 11:03:57 frodo named[706]: dumping master file: tmp-KyLB1aOqEe: open: permission denied Sep 16 11:45:53 frodo named[706]: dumping master file: tmp-0CtKjonu2d: open: permission denied Sep 16 11:47:05 frodo named[706]: dumping master file: tmp-kU7rBDvw1w: open: permission denied Sep 16 11:58:50 frodo named[706]: dumping master file: tmp-Cac2aXpVUv: open: permission denied Sep 16 12:00:54 frodo named[706]: dumping master file: tmp-IQS3S6lbRv: open: permission denied frodo# Вроде все работает файлы .jnl создались даже прописались новые машины в форвард и реверс зоны, но вот незадача эта ошибка в логах привела к Гуглению всея сети. Очень много однообразных страниц типа помощи и в основном на английском на русском хоть и есть, но ответ всегда один man dns man dhcpd или типа того, ну что – ошибки нужно исправлять и что же делать? Первое это нужно помнить, что у нас была команда запуска DNS: `named_flage=”-u bind -g bind значит создателем каталогов и файлов должен быть пользователь bind и группа bind: Code frodo# cd /etc/namedb/ frodo# ls -la total 66 drwxrwxr-x 5 bind wheel 1024 Sep 16 12:39 . drwxr-xr-x 3 root wheel 512 Sep 15 23:00 .. -rw-rw-rw- 1 bind wheel 628 Sep 15 20:51 PROTO.localhost-v6.rev -rw-rw-rw- 1 bind wheel 627 Sep 15 20:51 PROTO.localhost.rev drwxrwxrwx 2 bind wheel 512 Jan 16 2008 dynamic -rw-rw-rw- 1 bind wheel 235 Jan 16 2008 empty.db -rw-rw-rw- 1 bind wheel 257 Jan 16 2008 localhost-forward.db -rw-rw-rw- 1 bind wheel 325 Jan 16 2008 localhost-reverse.db -rw-rw-rw- 1 bind wheel 663 Sep 15 20:53 localhost-v6.rev -rw-rw-rw- 1 bind wheel 662 Sep 15 20:53 localhost.rev -rw-rw-rw- 1 bind wheel 1192 Sep 15 20:53 make-localhost drwxrwxrwx 2 bind wheel 512 Sep 15 21:01 master -rw-r--r-- 1 bind wheel 498 Sep 16 12:38 myhome.net.forward -rw-rw-rw- 1 bind wheel 3247 Sep 16 12:27 myhome.net.forward.jnl -rw-r--r-- 1 bind wheel 397 Sep 16 12:39 myhome.net.reverse -rw-rw-rw- 1 bind wheel 2642 Sep 16 12:27 myhome.net.reverse.jnl -rw-rw-rw- 1 bind wheel 7218 Sep 15 22:55 named.conf -rw-rw-rw- 1 bind wheel 11312 Jan 16 2008 named.conf.old -rw-rw-rw- 1 bind wheel 2600 Jan 16 2008 named.root -rw-rw-rw- 1 bind wheel 97 Sep 15 23:00 rndc.key -rw-rw-rw- 1 bind wheel 74 Sep 15 23:24 rndc1.key drwxrwxrwx 2 bind wheel 512 Jan 16 2008 slave frodo# Поэтому выводу команды становится ясно что у меня в системе есть пользователь bind и входит он в группу wheel (администраторов) поэтому команду старта нужно изменить на: `named_flage=”-u bind -g wheel Следующий шаг это создать папку в директории: Code frodo# mkdir /var/named/var/tmp Дать на нее права для записи только владельцу: Code frodo# chmod 700 /var/named/var/tmp И сделать создателем пользователя bind и группы wheel Code frodo# cown bind:wheel /var/named/var/tmp И последний нюанс как описывает народ: Цитата Quote «Смысл в том что даже если сделать chown bind /etc/namedb/master при перезапуске named все снова возвращается взад. Чтобы этого не случалось нужно поправить файлик» /etc/mtree/BIND.chroot.dist А именно - нужно в строке где "master" добавить "uname=bind" Т.е. должно получиться dynamic uname=bind master uname=bind slave uname=bind Так и поступаем редактируем указанный файл, после перепроверяем снова права на файлы для пользователя bind команду запуска DNS сервера и рестартуем машину и радуемся, после ввода одной машины в сеть у меня в файлах зон появились записи: Файл myhome.net.forvard Code $ORIGIN . $TTL 86400 ; 1 day myhome.net IN SOA frodo.myhome.net. admin.myhome.net. ( 2008150912 ; serial 86400 ; refresh (1 day) 7200 ; retry (2 hours) 8640000 ; expire (14 weeks 2 days) 86400 ; minimum (1 day) ) NS frodo.myhome.net. MX 10 frodo.myhome.net. $ORIGIN myhome.net. frodo A 192.168.0.1 $TTL 3600 ; 1 hour livecd A 192.168.0.10 TXT "31b279c81e11614516b0160ab790c3b4e1" $TTL 86400 ; 1 day localhost A 127.0.0.1 mx A 192.168.0.1 Файл myhome.net.reverse Code $ORIGIN . $TTL 86400 ; 1 day 0.168.192.in-addr.arpa IN SOA frodo.myhome.net. admin.myhome.net. ( 2008150909 ; serial 86400 ; refresh (1 day) 7200 ; retry (2 hours) 8640000 ; expire (14 weeks 2 days) 86400 ; minimum (1 day) ) NS frodo.myhome.net. $ORIGIN 0.168.192.in-addr.arpa. 1 PTR frodo.myhome.net. $TTL 3600 ; 1 hour 9 PTR gendolf.myhome.net. Ну вроде все описал. если нет, почитаю исправлю – но связка Dynamic DNS + DHCP работает и это – хорошо, ссылок было просмотрено море но главные две указал, так, что на авторство не претендую – а лишь попробовал – получилось. За сим прощаюсь VincentVanGog™©
Если выйти из дому и идти все время прямо, то можно вернуться домой, Земля то круглая :)
|