Столкнулся с проблемой, когда 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 так делает), без него все работает так, как надо и это главное.
Ссылки по теме:
Comments
comments powered by Disqus