Environnement
Ma configuration LAN est assez basique:
- Un routeur connecté au modem du FAI et à Internet
- Mon PC de développement directement connecté au routeur
Le routeur fournit DHCP mais n'exécute pas son propre serveur DNS. En fait, il n'y a aucun serveur DNS hébergé sur mon réseau local (configuration de réseau domestique typique). Le routeur est configuré pour envoyer les serveurs DNS du FAI dans le cadre des informations de bail DHCP.
J'ai installé une machine VirtualBox sur mon PC de développement et y ai installé Debian Squeeze (6.0.4). Le mode réseau VirtualBox consiste Bridged Adapterà simuler un serveur autonome sur mon LAN. Être un serveur VirtualBox au lieu d'un serveur physique n'est pas vraiment important, mais je le mentionne pour être complet.
Le problème
Chaque fois qu'une opération réseau exécute une recherche DNS inversée d'une IP LAN avant de s'exécuter, le serveur a de longs délais. Quelques exemples d'opérations réseau lentes:
- Connexion SSH au serveur depuis mon PC de développement
- Connexion au port d'administration du serveur Glassfish
- netstat -l(- netstat -nlest très rapide)
- Starting MTA: exim4au démarrage prend beaucoup de temps pour terminer
Certains d'entre eux ont des solutions de contournement comme l'ajout de l'Ip de mon PC de développement /etc/hostsou l'ajout d'une option spécifique à la commande pour éviter de faire des recherches inverses DNS. Évidemment, l'utilisation /etc/hostsne va que jusqu'à présent car elle est en contradiction avec DHCP.
Cependant, je ne peux pas m'empêcher de penser que je manque quelque chose. Dois-je vraiment configurer un serveur DNS quelque part sur mon LAN? Cela semble être un effort énorme et inutile pour mes besoins et je ne peux pas croire qu'il n'y ait pas d'autre option dans un environnement DHCP comme le mien.
J'ai beaucoup cherché sur le net pour cela et peut-être que je n'ai pas les bons termes de recherche, mais je ne trouve pas la solution ...
mise à jour 1 suite à la réponse de BillThor
Utilisation de l'hôte (dig donne les mêmes résultats):
# 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
Mon /etc/resolv.conf (a été créé automatiquement lors de l'installation)
nameserver 192.168.1.1
L'hôte et la fouille reviennent très rapidement pour une adresse IP publique, mais prennent 10 secondes pour expirer pour une adresse IP LAN. Je suppose que 10s est ma valeur de timeout actuelle.
mise à jour 2
Avec le dev-pcfichier / etc / hosts:
$ time getent hosts 192.168.1.50
192.168.1.50    dev-pc
real    0m0.001s
user    0m0.000s
sys     0m0.000s
Sans dev-pcfichier / etc / hosts:
$ time getent hosts 192.168.1.50
real    0m10.012s
user    0m0.004s
sys     0m0.000s
Il semble de plus en plus que je devrais trouver des options de programme par morceaux ou des paramètres pour chacun essayant de faire des recherches DNS inversées! Aucune des machines (virtuelles ou non) ne peut agir comme un serveur DNS sur mon LAN car elles ne sont pas toujours actives. Malheureusement, le firmware du routeur ne comprend pas de serveur DNS.