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 -nl
est très rapide)Starting MTA: exim4
au 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/hosts
ou l'ajout d'une option spécifique à la commande pour éviter de faire des recherches inverses DNS. Évidemment, l'utilisation /etc/hosts
ne 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-pc
fichier / 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-pc
fichier / 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.