Pracuję nad stworzeniem domowego intranetu dla mnie i moich współlokatorów. Moim pomysłem jest to, że będziemy mogli przechowywać rzeczy, takie jak rachunki za media, w miejscu, które jest bardziej dostępne niż szuflada w kuchni itp. W każdym razie mam Apache 2 działający na Raspberry Pi, w mojej sieci LAN i jeśli używam jego adres IP, mogę uzyskać dostęp do stron obsługiwanych w Pi. Ponieważ robię ten projekt, aby dowiedzieć się więcej na temat tworzenia sieci w celu świadczenia usług w moim mieszkaniu, pomyślałem, że byłoby fajnie, gdyby moja sieć mogła zapewnić rozpoznawanie nazw hostów dla mojej sieci LAN. Więc zamiast wskazywać moją przeglądarkę na 192.168.1.151
adres IP Pi, mógłbym wskazać go oberon
(jego nazwę hosta) i przeglądać strony internetowe obsługiwane przez Pi.
Teraz wiedziałem, że nie jestem pierwszą osobą, która chce to zrobić, więc zacząłem od Googlinga. To pytanie, także w systemach Unix i Linux, bardzo mi pomogło: jak udostępnić maszynę z sieci LAN za pomocą jej nazwy hosta . W tym momencie próbowałem wszystkiego w zweryfikowanej odpowiedzi. Myślałem o użyciu tego hosts
pliku, ale oznaczałoby to, że musiałbym powiedzieć współlokatorom, aby skonfigurowali swoje maszyny, czego nie chcę, aby musieli robić. Próbowałem zarezerwować dzierżawę DHCP dla Pi na moim routerze (NETGEAR WNR1000v2 (znany również jako N150)) i podczas rezerwacji zadziałało, rozpoznawanie nazw hostów nie. Ten rodzaj frustruje mnie, ponieważ powiedziałem routerowi adres IP komputera Pi i jego nazwę hosta, ale nadal nie udostępnia tych informacji klientom w mojej sieci LAN.
Ponieważ te dwie metody nie działają, zdecydowałem się zainstalować dnsmasq
na Pi. Konfiguracja wydawała się prosta i chętnie poznam nowe narzędzie. Zainstalowałem i działam dobrze (wydaje się). Mogę dig
lub nslookup
pseudonimy Pi (które ustawiłem /etc/hosts
na oberon
i homenet
) i uzyskać prawidłowe wyniki. Mogę zrobić to samo z nazwami internetowymi, takimi jak yahoo.com
i uzyskać poprawne odpowiedzi, ponieważ skonfigurowałem Google 8.8.8.8
i 8.8.4.4
serwery zapasowe /etc/dnsmasq.conf
. Zobacz:
me@oberon~$ dig oberon
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> oberon
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10787
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;oberon. IN A
;; ANSWER SECTION:
oberon. 0 IN A 192.168.1.151
;; Query time: 10 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Oct 6 18:59:18 2013
;; MSG SIZE rcvd: 40
Zauważ, że SERVER
is 127.0.0.1
: oberon
szuka własnego adresu IP na sobie. Tego się spodziewałem. Wyjście jest takie samo, jeśli to zrobię dig oberon @localhost
. Z tego powodu myślę, że dnsmasq
działa dobrze. Aby przenieść go na wyższy poziom, chcę, aby wszyscy klienci w mojej sieci LAN mogli pisać oberon
w przeglądarce i przejść do oberon
strony indeksu. W tym celu wiem, że muszę skonfigurować router (przepraszam, jeśli odwróci się to od terytorium ściśle Uniksa i Linuksa).
Mam Netgear WNR1000v2, który znam dość dobrze. Skonfigurowałem przekierowanie portów, więc mogę SSH do Pi, a także rozglądałem się w innych ustawieniach. Wiem, że zanim rozpocząłem ten projekt, otrzymywałem serwery DNS od mojego dostawcy usług internetowych, ale teraz chcę przede wszystkim korzystać z tych serwerów DNS, ale także 192.168.1.151
jako ostatni czek. Więc zmieniłem konfigurację DNS mojego routera na następującą:
Tak więc przy tej konfiguracji spodziewałem się, że będę mógł to zrobić nslookup oberon
na pulpicie (Windows) i uzyskać wynik 192.168.1.151
. Ale tak się nie dzieje. Oto co się dzieje:
C:\Users\me>nslookup oberon
Server: UnKnown
Address: fe80::226:f2ff:fefa:bea
*** UnKnown can't find oberon: Non-existent domain
Resetowanie lub dnsflushing
karta sieciowa na moim komputerze z systemem Windows niczego nie zmienia.
Oto dlaczego trochę rozdzieram tutaj włosy:
C:\Users\me>nslookup oberon 192.168.1.151
Server: oberon.lan
Address: 192.168.1.151
Name: oberon
Address: 192.168.1.151
Najwyraźniej dnsmasq
działa dobrze. Jeśli powiem mojemu systemowi Windows, aby używał 192.168.1.151
nazwy oberon
, wszystko jest w porządku ( .lan
domena była częścią konfiguracji dnsmasq
, więc spodziewałem się, że ją tam zobaczę). Gdybym tylko mógł sprawić, aby mój router powiedział mojej maszynie z Windows, aby korzystała z 192.168.1.151
zapytań DNS, powinienem być dobry!
Wydaje mi się więc, że problem tkwi w moim routerze, ale po prostu nie mogę wymyślić, co zrobić poza zmianą serwerów DNS 192.168.1.151
tak, jak to już mam. Czy ktoś może mi tutaj pomóc? Postaram się podać wszelkie dalsze potrzebne informacje.
źródło
Odpowiedzi:
Twój problem polega na tym, że nie rozumiesz, w jaki sposób te serwery DNS są używane, nie znam dokładnych szczegółów metody używanej przez system Windows do wyboru, który serwer DNS ma zapytać, ale stawiam na jego podstawowy> drugorzędny> trzeciorzędny / zawsze /. I nawet jeśli tak nie było i był okrężny, nadal będziesz pytał o nieprzydatny serwer 2 z 3 razy.
To, co się stanie, to serwer główny zostanie zapytany. Jeśli upłynie limit czasu, co może potrwać sekundę lub dwie, zostanie zapytany następny serwer. DNS nie jest systemem „konsensusowym”, jeśli jeden ze zdalnych serwerów jest pytany, w końcu odkryje wynik, że twoja nazwa hosta NIE istnieje, z jego perspektywy jako internetowego serwera DNS.
Potrzebujesz własnego dns LAN jako podstawowego serwera DNS. Inni stworzyliby odpowiednie serwery kopii zapasowych, ale rozważałbym po prostu ich całkowite usunięcie.
Warto również zauważyć, że twoje odwrotne dns (wyszukiwanie nazwy IP) jest rozwiązywane do „hostname.lan”, ale twoje testy rozstrzygania w przód dotyczą tylko nazwy hosta. Powinieneś także mieć gdzieś ustawioną rozdzielczość do przodu dla hostname.lan. Chociaż może istnieć wiele wyszukiwań typu „nazwa do adresu” dla hosta, można się spodziewać odwrotnego wyszukiwania adresu IP względem nazwy, która z kolei ma pasującą nazwę do tego rekordu IP. Nie zawsze jest to krytyczne i czasami powoduje, że pliki dziennika marudzą, ale niektóre rzeczy są na to bardziej wrażliwe niż inne.
Nie zapomnij też usunąć wszelkich plików z plikami hostów, które umieściłeś po uruchomieniu, gdy wszystko działa (nie wiem, czy to dotyczy dnsmasq, nigdy go nie użyłem, mam podobną, ale bardziej skomplikowaną konfigurację przy użyciu nazwy ISC-BIND serwer, który możesz skonfigurować do przekazywania na inne serwery, których używasz, lub po prostu użyj go jako nieprzesyłającego serwera DNS, który sam rozpoznaje pełne nazwy - to właśnie skonfigurowałem).
Nie trzeba dodawać, że po raz pierwszy spekulowałeś, że jesteś bardzo daleki od samodzielnego tworzenia tego zestawu, prawie każda rozsądnie rozwinięta korporacyjna sieć LAN i wiele nadmiernie rozwiniętych domowych sieci LAN będzie miało taką konfigurację.
źródło
nslookup oberon
nadal nie działa. Jedną rzeczą, o której nie wspomniałem w tekście mojego oryginalnego postu, było to, że gdy sięnslookup
nie powiedzie, mówi, że serwer, którego używał, byłfe80
adresem IPv6 - który, jak wiem, jest zarezerwowanym adresem lokalnym dla linków. Ale nie wiem, co to oznacza dla DNS. Czy moje okno systemu Windows samo się sprawdza?dnsflush
nie zmienia tego zachowania..lan
domeny, skonfigurowałemdnsmasq
automatyczne rozszerzanie prostych nazw hostów w celu dodania.lan
. Uruchomienienslookup oberon.lan 192.168.1.151
zwraca oczekiwany wynikName: oberon.lan Address: 192.168.1.151
ipconfig /all
, czy używany jest prawidłowy serwer dns, jeśli to prawda, możesz potrzebować opróżnienia. Ale nie mogę myśleć o niczym innym, powinno działać.Może trochę późno, ale załatwienie problemu spowodowało wyłączenie ipv6 na mojej karcie sieci bezprzewodowej.
źródło