Umgebung
Mein LAN-Setup ist ziemlich einfach:
- Ein Router, der mit dem Modem des Internetdienstanbieters und dem Internet verbunden ist
- Mein Entwicklungs-PC ist direkt mit dem Router verbunden
Der Router bietet DHCP, führt jedoch keinen eigenen DNS-Server aus. Tatsächlich gibt es in meinem LAN keinen DNS-Server (typisches Heimnetzwerk-Setup). Der Router ist so konfiguriert, dass er die DNS-Server des Internetdienstanbieters als Teil der DHCP-Lease-Informationen sendet.
Ich habe eine VirtualBox-Maschine auf meinem Entwicklungs-PC eingerichtet und Debian Squeeze (6.0.4) darauf installiert. Im VirtualBox-Netzwerkmodus wird Bridged Adapter
ein eigenständiger Server in meinem LAN simuliert. Ein VirtualBox-Server anstelle eines physischen Servers zu sein, ist nicht wirklich wichtig, aber ich erwähne es der Vollständigkeit halber.
Das Problem
Jedes Mal, wenn ein Netzwerkvorgang vor der Ausführung eine DNS-Reverse-Suche einer LAN-IP ausführt, hat der Server lange Verzögerungen. Einige Beispiele für langsame Netzwerkoperationen:
- SSH-Verbindung zum Server von meinem Entwicklungs-PC
- Verbindung zum Admin-Port des Glassfish-Servers
netstat -l
(netstat -nl
ist sehr schnell)Starting MTA: exim4
Der Startvorgang dauert lange
Einige davon haben Problemumgehungen wie das Hinzufügen der IP-Adresse meines Entwicklungs-PCs /etc/hosts
oder das Hinzufügen einer befehlsspezifischen Option, um DNS-Reverse-Lookups zu vermeiden. Offensichtlich geht die Verwendung /etc/hosts
nur so weit, weil sie im Widerspruch zu DHCP steht.
Ich kann jedoch nicht anders, als zu glauben, dass mir etwas fehlt. Muss ich wirklich irgendwo in meinem LAN einen DNS-Server einrichten? Das scheint eine enorme und nutzlose Anstrengung für meine Bedürfnisse zu sein, und ich kann nicht glauben, dass es in einer DHCP-Umgebung wie meiner keine andere Option gibt.
Ich habe viel im Internet danach gesucht und vielleicht habe ich nicht die richtigen Suchbegriffe, aber ich kann die Lösung nicht finden ...
Update 1 nach der Antwort von BillThor
Verwenden des Hosts (dig liefert die gleichen Ergebnisse):
# 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
Meine /etc/resolv.conf (wurde während der Installation automatisch erstellt)
nameserver 192.168.1.1
Sowohl Host als auch Dig kehren für eine öffentliche IP sehr schnell zurück, benötigen jedoch 10 Sekunden, um für eine LAN-IP eine Zeitüberschreitung zu erzielen. Ich denke 10s ist mein aktueller Timeout-Wert.
Update 2
Mit dev-pc
in / etc / hosts Datei:
$ time getent hosts 192.168.1.50
192.168.1.50 dev-pc
real 0m0.001s
user 0m0.000s
sys 0m0.000s
Ohne dev-pc
in / etc / hosts Datei:
$ time getent hosts 192.168.1.50
real 0m10.012s
user 0m0.004s
sys 0m0.000s
Es sieht immer mehr so aus, als müsste ich stückweise Programmoptionen oder -parameter für jeden finden, der versucht, umgekehrte DNS-Lookups durchzuführen! Keine der Maschinen (virtuell oder nicht) kann als DNS-Server in meinem LAN fungieren, da sie nicht immer aktiv sind. Leider enthält die Firmware des Routers keinen DNS-Server.