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

Re: dns: некоторые нюансы.



On Wed, Feb 16, 2005 at 05:35:28PM +0300, Dmitry A. Alexeev wrote:
> Есть несколько вопросов по днс, в доках не натолкнулся, спецмально
> искать долго, а любопытно.
> 
> 1) Насколько в woody необходимо преобразование localhost в 127.0.0.1?
>    Можно ли беззаботно жить с в обе стороны настроенным
>    преобразованием localhost.dom.ain <-> 127.0.0.1, без голого
>    localhost? rfc1912 - читал, там этого вопроса касаются, но мало ли
>    какие коррективы внесла современность.

Без преобразования localhost в 127.0.0.1 что-нибудь испортится точно.

На практике, 
	127.0.0.1 localhost всегда прописано в /etc/hosts
	
        строка про localhost в зоне локального домена много места не
        займёт, зона "localhost" в bind не сложна, так что лучше их
        иметь. Мало ли чего в сети у тебя появится, какой-нибудь
        китайский контент-свитч с индусской фирмварью..

В общем, если ничего специально не ломать, то работает.

> 2) Могут ли быть для каких-нибудь целей A и PTR записи в одном файле?
>    Если - да, то для каких целей?

Тут уже ответили -- если у тебя реверс идёт через CNAME или если у тебя
один файл зоны для двух доменов (прямого и обратного преобразования).

Я добавлю что в реальной жизни это скорее добавит непонятностей при
эксплуатации и в самый нужный момент затруднит поиск неисправности.

> 3) Я невполне понимаю значения зоны типа stub. 

Ни разу не видел чтобы их использовали и в руководстве[1] не рекомендовано
её использование в новых инсталляциях. Это, наверно, интересно настолько
же сколько класс CHAOS в bind, протокол LANE в сети и т.п. legacy :)

> 4) Правильно ли я понимаю, что любая программа для того, чтобы
> получить ip отдает имя фунцции gethostbyname, та же, если в конце

Обычно да, но некоторые программы (squid, например) используют
собственные ресолверы и там "есть нюансы". Тот же squid не умеет лазать
в /etc/hosts и запросы к локальным именам (без доменов) ему надо особо
разрешать в конфиге.

> имени нет точки, ищет алиас в /etc/hosts (но не полезет туда, если
> в nsswitch.conf, host.conf будет указано, положим, сначала в днс
> мотреть), если не находит, то добавляет домен (взятый из
> /etc/hostname или /etc/resolv.conf) и уже смотрит либо в
> /etc/hosts, либо в днс?

Добавляется домен(ы), взятые из /etc/resolv.conf и только если в имени
нету точки. Или меньше M точек (это как-то где-то конфигурируется). При
этом бывают приколы, если программа запрашивает адреса IPv6 (тип AAAA),
как это делает ssh в sarge. Функциональность host.conf при работающем
nssswitch.conf для меня тоже не очень ясна.

Кроме того, если у тебя есть nscd и в нём включено кеширование
преобразование IP<->имя (что страшно несекьюрно в woody), то
gethostbyname может вернуть чего там закешировалось.

Полезная программа для поиска неисправностей в ресолвинге - getent.

$ getent hosts www.ru
194.87.0.50     www.ru

В отличии от обычных host/dig/nslokup, getent спрашивает именно через
механизм NSS. Т.е., если у тебя вдруг в /etc/hosts прописано не то что
в DNS, при помощи getent ты это увидишь, а с host -- нет.


1) BIND 9 Administrator Reference Manual, ch 6
file:///usr/share/doc/bind9-doc/arm/Bv9ARM.ch06.html из пакета bind9-doc



Reply to: