Środowisko
Konfiguracja mojej sieci LAN jest dość prosta:
- Router podłączony do modemu usługodawcy internetowego i Internetu
- Mój komputer programistyczny podłączony bezpośrednio do routera
Router zapewnia DHCP, ale nie uruchamia własnego serwera DNS. W rzeczywistości w mojej sieci LAN nie ma serwera DNS (typowa konfiguracja sieci domowej). Router jest skonfigurowany do wysyłania serwerów DNS usługodawcy internetowego w ramach informacji o dzierżawie DHCP.
Skonfigurowałem maszynę VirtualBox na moim komputerze programistycznym i zainstalowałem na niej Debian Squeeze (6.0.4). Tryb sieci VirtualBox polega Bridged Adapter
na symulacji samodzielnego serwera w mojej sieci LAN. Bycie serwerem VirtualBox zamiast serwera fizycznego nie jest tak naprawdę ważne, ale wspominam o nim dla kompletności.
Problem
Za każdym razem, gdy operacja sieci wykonuje odwrotne wyszukiwanie DNS adresu IP sieci LAN przed wykonaniem, serwer ma duże opóźnienia. Niektóre przykłady powolnych operacji sieciowych:
- Połączenie SSH z serwerem z mojego komputera deweloperskiego
- Połączenie z portem administracyjnym serwera Glassfish
netstat -l
(netstat -nl
jest bardzo szybki)Starting MTA: exim4
po uruchomieniu zajmuje dużo czasu
Niektóre z nich mają obejścia, takie jak dodanie IP mojego dewelopera do komputera /etc/hosts
lub dodanie opcji specyficznej dla polecenia, aby uniknąć wyszukiwania wstecznego DNS. Oczywiście używanie /etc/hosts
tylko idzie tak daleko, ponieważ jest sprzeczne z DHCP.
Nie mogę jednak nie myśleć, że coś mi umknęło. Czy naprawdę muszę skonfigurować serwer DNS gdzieś w mojej sieci LAN? To wydaje się być ogromnym i bezużytecznym wysiłkiem dla moich potrzeb i nie mogę uwierzyć, że nie ma innej opcji w środowisku DHCP takim jak moje.
Często szukałem tego w sieci i może nie mam odpowiednich wyszukiwanych haseł, ale nie mogę znaleźć rozwiązania ...
aktualizacja 1 po odpowiedzi BillThora
Używanie hosta (dig daje te same wyniki):
# ip of stackoverflow.com
$ time host -v 64.34.119.12
Trying "12.119.34.64.in-addr.arpa"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15537
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;12.119.34.64.in-addr.arpa. IN PTR
;; ANSWER SECTION:
12.119.34.64.in-addr.arpa. 143 IN PTR stackoverflow.com.
Received 74 bytes from 192.168.1.1#53 in 15 ms
real 0m0.020s
user 0m0.008s
sys 0m0.000s
# ip of dev pc
$ time host -v 192.168.1.50
Trying "50.1.168.192.in-addr.arpa"
;; connection timed out; no servers could be reached
real 0m10.004s
user 0m0.004s
sys 0m0.000s
Mój /etc/resolv.conf (został automatycznie utworzony podczas instalacji)
nameserver 192.168.1.1
Zarówno host, jak i dig zwracają się bardzo szybko dla publicznego adresu IP, ale potrzeba 10 sekund na przekroczenie limitu czasu dla adresu IP LAN. Chyba 10s to moja bieżąca wartość limitu czasu.
aktualizacja 2
W dev-pc
pliku / etc / hosts:
$ time getent hosts 192.168.1.50
192.168.1.50 dev-pc
real 0m0.001s
user 0m0.000s
sys 0m0.000s
Bez dev-pc
w pliku / etc / hosts:
$ time getent hosts 192.168.1.50
real 0m10.012s
user 0m0.004s
sys 0m0.000s
Wygląda coraz bardziej, że będę musiał znaleźć częściowe opcje programu lub parametry dla każdego, kto próbuje wykonać odwrotne wyszukiwanie DNS! Żadna z maszyn (wirtualnych lub nie) nie może działać jako serwer DNS w mojej sieci LAN, ponieważ nie zawsze działają. Niestety oprogramowanie układowe routera nie obejmuje serwera DNS.