Блог > Коментарі до замітки

Настройка DDNS + DHCPD

Настройка DDNS + DHCPD

 

-------------------

 

Настройка динамичекого обновления DNS.

 

 

Для начала необходимо скачать версию dns и dhcpd сервера и установить их.

Настройка проводилась на bind версии 9.2.0 и dhcpd версии 3.0, которые

можно скачать с сайта www.isc.org

 

ftp://ftp.isc.org/isc/bind9/9.2.0/bind-9.2.0.tar.gz

ftp://ftp.isc.org/isc/dhcp/dhcp-latest.tar.gz

 

(есть уже более новые версии)

 

Необходимо определиться с теми сегментами(зонами) что необходимо динамически

обновлять. Например есть сегмент с адрессами 192.168.10.x, это наш локальный

сегмент в котором необходимо динамически обновлять адресса и соответственно

заносить в базу данных dns.

 

Настройки dhcpd.conf должны выглядить следующим образом

 

option domain-name "test";

# имя домена, можно придумать любой свой например свой test

option domain-name-servers server.test;

# доменное имя dns сервера,

# т.е dns имя сервера server.test =servername.domainname

 

ddns-update-style interim;

# есть три вида обновление базы dns, я так понял что это более стандартный.

 

key DHCP_UPDATER {

algorithm HMAC-MD5.SIG-ALG.REG.INT;

secret mCzPGMAluZkO1LBIqEUQ4w==;

}

# Для того чтобы обновлять базу днс, необходимо создать секретный ключ,

# чтобы затем только наш сервер dhcpd смог бы обновлять.

# Если bind 9, то можно его создать командой

# dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER

 

 

zone test. {

primary 127.0.0.1;

key DHCP_UPDATER;

}

 

zone 10.168.192.IN-ADDR.ARPA. {

primary 127.0.0.1;

key DHCP_UPDATER;

}

 

# Указываем какая зона в Днс будет обновляться.

# Обратите внимание на правильность написания зоны, "10.168.192.IN-ADDR.ARPA."

# Если в сети несколько сегментов, то они также могут быть дописанны по аналогии

::::::

 

Дальнейшее описание сегмента стандартное, и уже описанно во многих статьях.

 

Вторым этапом настраиваем DNS, файл named.conf

Подразумевается что сервер днс уже настроен и работает.

 

#---------------

Named.conf

Добавляем след. строки  в файл

key DHCP_UPDATER {

algorithm HMAC-MD5.SIG-ALG.REG.INT;

secret mCzPGMAluZkO1LBIqEUQ4w==;

};

# Эти строки полность соответствуют тому что добавили в dhcpd.conf

logging {

channel update_debug {

file "/var/log/named-update.log";

severity  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; };

};

# Эти строки вставляются для протоколирования работы сервера. Взято из man dhcpd.conf

# Предварительно необходимо создать файлы, которые указаны в оции  file ":"

 

zone "10.168.192.in-addr.arpa" IN {

type master;

file "db.192.168.10";

allow-update { key DHCP_UPDATER; };

};

 

zone "test" {

type master;

file "db.test";

allow-update { key DHCP_UPDATER; };

notify no;

};

 

# описание зон  стандартное(описана прямая и обратная зона), единственно что

# изменилось это  key DHCP_UPDATER;,

# т.е. этим мы указываем что зона обновляется через соответствующий ключ. Данные

# ключ описан  в dhcpd.conf и в named.conf

::::::::..

#---------------

 

После этого запускаем named и dhcpd и смотрим логи.

Если все нормально то, в /var/state/dhcp/dhcpd.leases

Появяться записи типа

lease 192.168.10.141 {

starts 1 2002/03/11 05:08:34;

ends 4 2002/03/14 05:08:34;

tstp 4 2002/03/14 05:08:34;

binding state active;

next binding state free;

hardware ethernet 00:02:b3:3a:07:12;

uid "\001\000\002\263:\007\035";

set ddns-rev-name = "141.10.168.192.in-addr.arpa.";

set ddns-txt = "319ae94b9598cfef7c734894a5d6e5bbbf";

set ddns-fwd-name = "name.test";

client-hostname "name";

}

а в файле описание зоны db.192.168.10 добавится строчка вида

141                      PTR     name.test.

а в файле описание зоны db.test";

name             A       192.168.10.141

TXT     "319ae94b9598cfef7c734894a5d6e5bbbf"

 

Вроде все. Статья неполная, но тому кто уже настраивал dns и dhcpd будет легко понять.

На самом деле лучше прочитать man dhcpd.conf, так как вся эта информация бралась оттуда.

 

 

 

 

=========================  2  ===========================

 

 

DHCP+DNS по шагам

 

Конечно, man dhcpd.conf всё покажет.. Но так быстрее ;-))

 

1. Сгенерировать ключ

 

[root@server ddns]# dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER

Kdhcp_updater.+157+46827

Посмотрим что он нам нагенерил:

 

[root@server ddns]# cat Kdhcp_updater.+157+46827.key

DHCP_UPDATER. IN KEY 0 2 157 EgxIOyQglf4KAUF7lgu9yA==

2. Прописать в dhcpd.conf

 

ddns-update-style interim;

authoritative;

option netbios-scope "";

key DHCP_UPDATER {

algorithm HMAC-MD5.SIG-ALG.REG.INT;

secret EgxIOyQglf4KAUF7lgu9yA==;

};

 

zone local.zone. {

primary 127.0.0.1;

key DHCP_UPDATER;

}

 

zone 0.168.192.in-addr.arpa. {

primary 127.0.0.1;

key DHCP_UPDATER;

}

Задать время аренды побольше:

 

default-lease-time 604800;

max-lease-time 1814400;

/etc/named.conf

 

key DHCP_UPDATER {

algorithm HMAC-MD5.SIG-ALG.REG.INT;

secret EgxIOyQglf4KAUF7lgu9yA==;

};

 

zone "local.zone" IN {

type master;

file "local.zone.db";

allow-update { key DHCP_UPDATER; };

};

 

zone "0.168.192.in-addr.arpa" IN {

type master;

file "192.168.0.db";

allow-update { key DHCP_UPDATER; };

};

Сделаем "рыбу" для прямой и реверсной зоны:

 

$ORIGIN .

$TTL 86400      ; 1 day

local.zone      IN SOA  ns.local.zone. postmaster.domain.org. (

200216887  ; serial

28800      ; refresh (8 hours)

7200       ; retry (2 hours)

604800     ; expire (1 week)

86400      ; minimum (1 day)

)

NS      ns.

$ORIGIN local.zone.

ns                      A       192.168.0.202

 

 

$ORIGIN .

$TTL 86400      ; 1 day

0.168.192.in-addr.arpa  IN SOA  ns.local.zone. postmaster.domain.org. (

2001105141 ; serial

28800      ; refresh (8 hours)

14400      ; retry (4 hours)

3600000    ; expire (5 weeks 6 days 16 hours)

86400      ; minimum (1 day)

)

NS      ns.

И попробуем динамическое обновление через nsupdate

 

; nsupdate -d [this file]

key DHCP_UPDATER EgxIOyQglf4KAUF7lgu9yA==

zone local.zone

update add virtual 86400 A 192.168.0.105

send

zone 0.168.192.in-addr.arpa

update add 254 86400 PTR server.local.zone.

send

Должны появиться файлики .jnl.

Подводные камни

При chroot-е обращать внимание на наличие нужных файлов в chroot-ed структуре

Обращать внимание на владельца файлов зон

Обращать внимание на точки в описании зон

named-checkzone - её не зря придумали! ;-)

 

вівторок, 10.11.2009, zigzak