Trochę utknął tutaj.
Mam 2 komputery, które nie mogą rozpoznać nazw hostów LAN, chyba że w / etc / hosts znajdują się określone wpisy
Ale inne komputery w sieci LAN mogą rozpoznawać nazwy hostów.
Moja sieć LAN:
- 1 x router Cisco z uruchomionym DD-WRT v24-sp2 z włączonym DNSMasq. Skonfigurowałem to przy użyciu nazw hostów i adresów IP w mojej sieci LAN.
- 1 x Kubuntu 12.10 (poprawnie rozwiązuje wszystkie nazwy hostów, o ile są one wpisane do DNSMasq na routerze)
2 x NAS (poprawnie rozwiązuj wszystkie nazwy)
1 x Ubuntu Server 12.04 (NIE rozpoznaje lokalnych nazw hostów, chyba że są wpisane w / etc / hosts)
- 1 x XBMCLive (Dharma) (to samo - nie jest rozwiązywane, chyba że wpisy znajdują się w / etc / hosts)
Jak uzyskać ostatnie 2, aby korzystać z wpisów DNSMasq na routerze? Każde urządzenie jest skonfigurowane do używania routera jako serwera nazw, a wszystkie urządzenia poprawnie rozpoznają adresy zewnętrzne.
Dzięki.
trochę więcej informacji:
będąc na serwerze, jeśli pinguję inny komputer (wstation)
$ ping wstation
PING wstation.local.domain (x.x.x.x)
Jeśli następnie dołączę .local
$ ping wstation.local
PING wstation.local.local.domain (x.x.x.x)
i bezpośrednio
$ ping 10.0.0.4
PING 10.0.0.4 (10.0.0.4) 56(84) bytes of data.
64 bytes from 10.0.0.4: icmp_req=1 ttl=64 time=0.387 ms
64 bytes from 10.0.0.4: icmp_req=2 ttl=64 time=0.316 ms
64 bytes from 10.0.0.4: icmp_req=3 ttl=64 time=0.312 ms
64 bytes from 10.0.0.4: icmp_req=4 ttl=64 time=0.280 ms
64 bytes from 10.0.0.4: icmp_req=5 ttl=64 time=0.322 ms
^C
--- 10.0.0.4 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3998ms
rtt min/avg/max/mdev = 0.280/0.323/0.387/0.038 ms
Odpowiedzi:
O twojej obecnej wydajności
Wyraźnie wskazuje, że komputer dołącza się
.local.domain
do zapytań spoza FQDN. Jest to coś źle skonfigurowanego lub przynajmniej źle skonfigurowanego. (chyba że faktycznie użyjesz.local.domain
przyrostka celowo)Rozpoznawanie nazw i okresy
Jedną ważną rzeczą, o której wiele osób nie wie, jest to, że pełne imię i nazwisko powinno zawsze kończyć się kropką (
.
). Jeśli go pominiesz, urządzenie spróbuje go rozwiązać w lokalnej domenie wyszukiwania (np. Mydomain.tld). W takim przypadku zapytaniemypc.local
byłobymypc.local.mydomain.tld
. Aby temu zapobiec, zapytaj o kropkę.Konfiguracja rozdzielczości
Ogromne znaczenie ma tutaj konfiguracja resolvera. W Ubuntu (i Debian) jest to skonfigurowane w pliku
/etc/network/interfaces
(zakładając, że nie korzystasz z NetworkManager):Rozpoznawanie nazw w systemie Linux można również wykonać na inne sposoby. Nie tylko o to pyta lokalny serwer DNS. Spójrz na swój
/etc/nsswitch.conf
plik dohosts
konfiguracji rozwiązania:Oznacza to, że najpierw wypróbowywane są pliki (to jest
/etc/hosts
plik), następnie mDNS, a dopiero później sprawdzany jest prawdziwy serwer DNS. mDNS jest implementowany za pomocą Avahi w Linuksie i na urządzeniach Apple nazywa się Bonjour..local
Domyślnie korzysta z sufiksu i działa za pośrednictwem wiadomości rozgłoszeniowych. Podobnie jak ARP działa, ale dla DNS.Wszystkie te systemy mogą być bardzo mylące, a nawet bardziej, gdy używa się ich
.local
w regularnej konfiguracji DNS połączonej z urządzeniami mDNS. Wydaje mi się, że właśnie dlatego jesteś teraz zdezorientowany, dlaczego jedno urządzenie działa, a drugie nie: nie wszystkie używają tej samej metody rozwiązywania.Aby to załatwić
.local
nie chcesz całkowicie polegać na mDNS. Z twojego pytania rozumiem, że chciałbyś, abyś sam skonfigurował swoje rzeczy w centralnym miejscu, więc moim podejściem jest unikanie tego.my.home
. W przypadku dnsmasq jest to pojedyncze ustawienie, ale w regularnych konfiguracjach należy to skonfigurować zarówno na serwerze DNS, jak i na serwerze DHCP (jak zapowiada się za pomocą DHCP)./etc/resolv.conf
wypadek, gdybyś majstrował przy niej w przeszłości.Skonfiguruj komputery w sieci, aby używały
my.home
jako lokalnej domeny wyszukiwania. Można to zrobić automatycznie przez DHCP lub jeśli używasz adresów statycznych za pomocą/etc/network/interfaces
pliku lub Menedżera sieci:ping hostname
), jak i pełna nazwa (ping hostname.my.home
).źródło
files mdns4_minimal [NOTFOUND=return] dns mdns4
. Teraz wszystko działa bardziej tak, jak oczekuję na moich (źle nazwanych) maszynach adresowanych host.foo.local. Wcześniej ta zmianaping hostname
działała, ale sięping hostname.foo.local
nie udawała. Byłem naprawdę zdezorientowany, kiedydig hostname
zawodziłem idig hostname.foo.local
zwracałem wynik, w przeciwieństwie do tego, czego się spodziewałem. Teraz mogę pingować nazwy FQDN zgodnie z oczekiwaniami. Czy ustawianie zamówienia w ten sposób ma swoje wady?Na podstawie odpowiedzi gertvdijk właśnie skomentowałem wiersz w nsswitch.conf
źródło
Mam podobne problemy z plikiem / etc / hosts zawierającym wiele spacji między adresem IP a nazwą hosta, zamiast tego za pomocą TAB. Po zmianie na TAB nazwę hosta można rozwiązać za pomocą polecenia ping.
patrz również na /superuser//a/938366/467479
źródło