Dynamic DNS + DHCP Все таки как же? - Форум
Let's get ready to TROUBLE!!! Четверг, 17.05.2012, 05.47.15
Приветствую Вас Заглянувший | RSS
Тему просматривают: Заглянувший

Главная » Статьи

Всего материалов в каталоге:

Страница 1 из 11
Форум » Операционные системы » FreeBSD » Dynamic DNS + DHCP Все таки как же? (Страдания и проба их описать)
Dynamic DNS + DHCP Все таки как же?
sysadmДата: Воскресенье, 26.04.2009, 18.01.04 | Сообщение # 1
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 – у меня в сети есть три машины и зовутся они например:
    Test
    Test1
    Test2

Эти машины имеют следующие 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™©


Если выйти из дому и идти все время прямо, то можно вернуться домой, Земля то круглая :)
 
Форум » Операционные системы » FreeBSD » Dynamic DNS + DHCP Все таки как же? (Страдания и проба их описать)
Страница 1 из 11
Поиск:

VincentVanGog™ © 2012Создать сайт бесплатно