[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Fw: DNS



On Sun, Jan 05, 2003 at 10:35:31AM +0700, Sav EM wrote:
> День добрый.
> >
> > Настраивать динамические апдейты в винде и named.
> >
> > On Sat, Jan 04, 2003 at 08:43:03PM +0600, +Kenobi wrote:
> > > >
> > > А что делать, если IP адреса клиентам раздает dhcp, то есть ip адреса
> > > непостоянны, что тогда и где прописывать?
> >

[...]

Можно я немного попридираюсь? :)

> в конфиге для dhcpd добавил:
> .......
> ddns-updates on;
> use-host-decl-names on;
> .......
> ddns-update-style interim;
> update-static-leases on;
^^^^^^^^^^^^^ Это необязательно. Статические назначения, IMO, лучше
и проще нарисовать руками.

> 
> zone XXX.XX.XXX. {
>     primary 127.0.0.1;                  #у меня ddns и dhcpd на одной машине
> };
> zone xx.xx.xxx.in-addr.arpa {
>     primary 127.0.0.1;
> };
> authoritative;
> ............
> далее как обычно в dhcpd.conf
> 

Эти декларации также необязательны.

> для named.conf  (у меня 9.хх - не помню уже точно какой)
> в описании зоны, где твой ddns сервер  - master надо сказать
> allow-update {127.0.0.1;};

А также для обратной зоны.

> это чтоб твой ddns разрешил твоему dhcpd править файл этой зоны
> да ключей безопасности, которые поддерживают ddns и dhcpd, разграничение
> доступа я не генерил, все идет по разграничению IP
> 
> в итоге получаем, как только любая машина включается в сеть и получет IP от
> dhcpd, то она прописывается в ddns, за этим следит сам dhcpd.
> Подобная связка живет у меня уже года 3-4. Меняю только релизы с выходом
> новых.
> 

Добавлю еще немного:
При апдейтах named переписывает файлы зон, теряя комментарии,
форматирование и проч., и редактировать их становится очень неудобно. Я
препочитаю иметь отдельные зоны для динамических клиентов, отводя для
этого домены вида dyna.local, например.

То же самое с обратной зоной. Тут все насколько сложнее, если для
динамаческих клиентов выделен диапазон, скажем, 10.0.0.128-10.0.0.254,
при этом в диапазоне 10.0.0.1-10.0.0.127 живут хосты со статически
назначенными адресами. Тут можно воспользоваться идеей из RFC2317.
Т.е. в зоне 0.0.10.in-addr.arpa. сформировать записи вида
xxx CNAME xxx.0.0.10.dyna-rev.local.
и заставить dhcpd регистрировать обратные адресные соответствия в зоне
dyna-rev.local вместо in-addr.arpa.

Вот пример конфигурации.
named.conf:
zone "dyna-rev.local" {
        type master;
        allow-update { 127.0.0.1; };
        file "db/dyna-rev.local";
};
zone "dyna.local" {
        type master;
        allow-update { 127.0.0.1; };
        file "db/dyna.local";
};

db/0.0.10.in-addr.arpa:
@       IN      SOA     myns.local root.myns.local. (
                2003010601 3600 90 3600000 3600
        )

        IN      NS      myns.local.
1       IN      PTR     myns.local.
2	IN	PTR	static1.local.
3	IN	PTR	static2.local.
; 10.0.0.128-254 - range for DHCP configured hosts
$GENERATE 128-254 $ CNAME $.0.0.10.dyna-rev.local.
^^^^^^^^ Вот это вот умеет 9-ый bind и последние версии 8-го, если Ваш
8-й named этого не умеет, то его стоит проапгрейдить. Не из-за
замечательной фичи GENEGATE, а из-за того, что давно пора ;)

Файл db/dyna.local совершенно ничем не примечателен, поэтому я его не
привожу.

dhcpd.conf:
subnet 10.0.0.0 netmask 255.255.255.0 {
  range 10.0.0.128 10.0.0.254;
  ddns-hostname = pick (option fqdn.hostname, option host-name,concat ("dhcp-",binary-to-ascii (10, 8, "-", leased-address)));
^^^^^ По поводу этого безобразия см. ниже.

  option host-name = config-option server.ddns-hostname;
  ddns-domainname "dyna.local";
  ddns-rev-domainname "dyna-rev.local";
^^^^^^ Вот это заставит dhcpd регистрировать обратные имена
xx.xx.xx.xx.dyna-rev.local вместо xx.xx.xx.xx.in-addr.arpa.
# тут всякие разные опции. добавить по вкусу.
}

Для чего там эта странная конструкция?

Однажды я с удивлением обнаружил, что некоторые хосты не отдают своего
hostname в dhcp диалоге. Если dhcpd не будет знать имени хоста, то не
станет формировать ddns апдейта. Этим, например, страдает dhcp-client из
woody (pump ведет себя более человечно). Безусловно, dhcp-client можно
научить сообщать hostname, вписав send host-name "myhostname"; в
/etc/dhclient.conf, но за всеми не уследишь.

Вот та самая конструкция формирует некоторое имя по-умолчанию. Например,
если хост получивший адрес 10.0.0.128 не сообщил своего имени, то он
будет зарегистрирован под именем dhcp-10-0-0-128.

-- 
dg



Reply to: