вторник, 29 января 2013 г.

FreeBSD: проблемы с локальными доменами

Иногда бывает так, что распознавание днс не работает для некоторых зон. И что самое странное, выглядеть это может так:

# host server1.local
server1.local has address 192.168.20.20
# ping -c 1 server1.local
ping: cannot resolve server1.local: No address associated with name



При этом системные сервисы вроде mount также не могут получить нужный айпи, что может создать проблемы с NFS при загрузке, итд.

1) отключить для пробы nscd (name service caching daemon)
2) проверить или отключить локальный днс, если он есть
3) проверить файлы /etc/nsswitch.conf (строка hosts: files dns) и /etc/host.conf
4) если ничего не помогло, открываем resolv.conf и проверяем корень локальной зоны на всех nameserver через dig.
Пример неправильного ответа:

# dig +noall +question +answer local @192.168.20.1
;local.                            IN      A

(20.1 это циско-гейт)

Правильный ответ:
# dig +noall +question +answer local @192.168.20.4
;local.                            IN      A
local.                     1209600 IN      A       192.168.20.4

(20.4 это внутренний днс)
Таким образом, комментируем в resolv.conf все записи, где отдаётся ерунда, и вписываем днс, если его там не было.

Что самое странное - с циски приходит статус noerror
# dig +noall +comment local @192.168.20.1
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21625
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

При этом запрос нужного домена и через циску работает как нужно:

# dig +noall +question +answer +authority server1.local @192.168.20.1
;server1.local.                      IN      A
server1.local.               1102210 IN      A       192.168.20.20

Более того, пинг внутренних имен с этой же циски работает! Вот такие странные бывают баги.

И еще информация к размышлению.

# dig +noall +question +answer +authority -t ns server1.local @192.168.20.1
;server1.local.                      IN      NS
# dig +noall +question +answer +authority -t ns server1.local @192.168.20.4
;server1.local.                      IN      NS
local.                     1209600 IN      SOA     local. root.server1.local. 2012022909 1209600 180000 1209600 1209600


Комментариев нет:

Отправить комментарий