Столкнулся с проблемой, когда Ubuntu при работе по DHCP неправильно работала с DNS-суффиксом, а именно работала только с суффиксами, а полные доменные имена (FQDN) не понимала, как следствие некорректно работали некоторые локальные сайты в браузерах, да и банальные пинги работали как-то не совсем правильно:

ping server
PING server.local (192.168.0.2) 56(84) bytes of data.
64 bytes from server.local (192.168.0.2): icmp_req=1 ttl=64 time=0.131 ms
^C
ping server.local
ping: unknown host server.local

При этом DNS сервер отлично обрабатывает запросы:

nslookup server
Server:  192.168.0.254
Address: 192.168.0.254#53

Name: server.local
Address: 192.168.0.2

И для доменного имени полностью:

nslookup server.local
Server:  192.168.0.254
Address: 192.168.0.254#53

Name: server.local
Address: 192.168.0.2

Погуглив немного, решил, что проблема в NetworkManager'е, на старых версиях Ubuntu он неправильно генерировал /etc/resolv.conf, проверил свой:

cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.0.254
search local

Как оказалось, в моем случае NetworkManager вовсе не виноват! Но в чем же тогда проблема? Еще раз погуглил яндексом в рамблере и пришел к выводу, что виноват конфиг /etc/nsswitch.conf, сравнил его с FreeBSD'шным, где все работает как надо и пришел к выводу, что нужно строку hosts: привести к такому виду:

# НЕ работает!
#hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

# работает!
hosts:          files dns

Что такое mdns4 разбираться не стал (позже узнал, что это avahi так делает), без него все работает так, как надо и это главное.


Ссылки по теме:

  1. Debian/Ubuntu - [решено] Не распознаёт имя контроллера домена

Comments

comments powered by Disqus