DDNS

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
42px-Wikitext-ru.svg.png
Эту статью следует викифицировать.


DHCP DNS по шагам[править]

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

Сгенерировать ключ[править]

[root@server ddns]# dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER
Kdhcp_updater.+157+46827
[root@server ddns]#

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

[root@server ddns]# cat Kdhcp_updater. 157 46827.key
DHCP_UPDATER. IN KEY 0 2 157 EgxIOyQglf4KAUF7lgu9yA==
[root@server ddns]#

Прописать в 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 — её не зря придумали! ;-)

Ещё один вариант[править]

>>Триплеты в живут одном месте - в конфиге dhcp-сервера.
>>Прямые/обратные зоны обновляает опять же dhcp.
>> Всё работает в таком виде уже достаточно давно. %)
> Ну опиши, а то у меня в последний раз от ddns осталось очень
> неприятное послевкусие.  Возможно, вызванное dhcpd, пропатченным
> ходить в openldap, что приводило к феерическим эффектам...
А чего тут описывать? %) Ниже выжимка из работающего конфига:

--- dhcpd.conf ---

ddns-update-style interim;
deny client-updates;
update-static-leases true;
authoritative;

shared-network VLAN0002 {
   deny bootp;
   deny duplicates;
   subnet 192.168.2.0 netmask 255.255.255.0 {
     option domain-name "lan";
     option domain-name-servers 192.168.254.254, 192.168.253.254;
     option routers 192.168.2.254;
     option broadcast-address 192.168.2.255;
     default-lease-time 36000;
     max-lease-time 72000;

     # dynamic updates
     ddns-updates on;
     ddns-domainname "dpt.lan";
     ddns-rev-domainname "in-addr.arpa";
     deny client-updates;

     key ns1.lan { algorithm hmac-md5; secret "<GENERATED-SECRET-KEY>"; };
     zone dpt.lan. { primary 192.168.254.254; key ns1.lan; }
     zone 2.168.192.in-addr.arpa. { primary 192.168.254.254; key ns1.lan; }

     host dpt-002-001 {
      fixed-address 192.168.2.1;
      hardware ethernet 00:60:B0:70:2D:8A;
      ddns-hostname "dpt-host1";
     }

     pool {
       range 192.168.2.100 192.168.2.200;
       allow unknown clients;
       allow known clients;
     }
   }
}
--- dhcpd.conf ---

В конфиге bind9 описаны зоны:

zone "dpt.lan" {
         type master;
         file "dpt.lan";
         allow-query { LAN; };
         allow-transfer { SLAVES_INT; };
         allow-update { key ns1.lan; };
};
zone "2.168.192.in-addr.arpa" {
         type master;
         file "192.168/002";
         allow-query { LAN; };
         allow-transfer { SLAVES_INT; };
         allow-update { key ns1.lan; };
};

ну и присутствует тот же key ns1.lan.

И всё. Для хостов, прописанных в dhcpd.conf, в зоны dpt.lan 
и 2.168.192.in-addr.arpa dhcpd посылает bind'у апдэйты, содержащие
ddns-hostname. Для win-хостов, получивших адреса из пула, в зоны
заносятся имена, которые сообщает клиент.

dlebkov@ в sysadmins@


Обновление dns записей для статично прописанных хостов[править]

Для включения обновления dns записей для статично прописанных хостов dhcpd.conf нужно добавить:

update-static-leases on;


Для любителей веревки и мыла :)
samba_pdc + ddns + dhcp - с хранением всех данных в LDAP
http://www.lissyara.su/?id=1487

Anatol B. Bazyukin в sysadmins@