[Résolu]Utilité, utilisation d'un serveur DNS sur un serveur

Bonjour,
[intro] je suis chargé - personne d’autre ne veut le faire - de la maintenance à distance d’un petit serveur public du genre de ceux que l’on installe dans la cuisine sur une freebox.
Je n’ai ni installé, ni configuré ce serveur (Etch), je n’ai pas accès au compte chez le registrar, ni au routeur (netgear) installé entre la freebox et le serveur. Ce serveur fait tourner Apache2-Mysql-Php.[/intro]

A l’origine j’ai découvert que le serveur DNS, en fonctionnement, installé sur la machine n’était pas configuré pour le nom du domaine (appelons le domaine.org) ni pour les autres domaines hebergés (disons domaine1.org etc.) et que le /etc/resolv.conf pointait sur deux serveurs dns de Free.
Chez le registrar l’enregistrement domaine.org pointait correctement sur l’ip publique du serveur.
Tant qu’a faire je l’ai donc arreté puis désinstallé.
Ca a fonctionné pendant 1 mois (avec trois reboot).
Puis quelqu’un a arreté le serveur pendant 12 heures et au redemarrage plus rien.
L’accès au serveur était devenu quasi impossible. e.g.

~$ ssh (login/port) domaine.org -> ssh: domaine.org: Name or service not known
~$ ssh (login/port) Ip publique -> accès ok.
~N’importe quel sous-domaine genre http://dupastisdanslemuguet.domaine.org demandé par FireFox renvoyait (qq chose comme) un “Serveur ou nom inconnu, vérifiez que etc.”
~La page d’accueil http://domaine.org elle s’affichait (avec beaucoup d’erreur de résolution de nom).
~$ host domain.org -> (2) SERVFAIL

J’ai réinstallé bind, configuré les zones dans /etc/bind/named.conf.local et configuré les fichiers de zones décrits, demarré bind et tout est rentré dans l’ordre (magie ?)
Par curiosité j’ai réarreté bind et bien ca marche toujours… maintenant.

C’est peu de dire que je ne comprends rien, ni que je ne sais même pas par où commencer pour y comprendre quelque chose.
J’ai lu des dizaines de pages sur la configuration de bind.

Mes questions sont :
Comment ce serveur a fait sans bind jusqu’à son arret ?
Pourquoi a t’il eut besoin de bind pour que ses sous-domaines (et l’accès ssh) soient de nouveau accessibles ?
Comment fait-il sans bind maintenant ?

Questions annexes :
Un serveur dns est-il obligatoire ?
Y a t’il un cache quelque part ?
Pourquoi moi ?

des détails (je ne sais pas bien lequels donner) :

/etc/resolv.conf
dns2 de free
dns3 de free

/etc/hosts
127.0.0.1 domaine.org
192.168.0.100 domaine.org
82.etc. (une_ip_publique_free) domaine.org

/etc/hostname
Nomdelamachine

/etc/network/interface
auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 212.27.54.252 212.27.53.252

Une directive (ServerName domaine.org) dans le fichier apache2.conf indique à apache le FQDN (sinon il pleure)

Apache utilise les virtualhosts pour pointer sur les sousdomaines et les autres domaines hebergés.

J’avoue que j’ai du mal à trouver de la cohérence entre tous les faits décrits.
Par exemple :

[quote]~La page d’accueil domaine.org elle s’affichait (avec beaucoup d’erreur de résolution de nom).
~$ host domain.org -> (2) SERVFAIL[/quote]
Si la résolution DNS du nom du site retourne une erreur, aucune page du site ne devrait pouvoir être affichée, sauf si elle est encore dans le cache du navigateur.

Pour quelles zones ? Cela inclut-il les zones du domaine et de ses sous-domaines ?

La machine elle-même n’a pas besoin d’un BIND local, elle a besoin de serveurs DNS récursifs pour résoudre ses requêtes DNS. S’il n’y a aucune adresse locale dans /etc/resolv.conf mais seulement les adresses de DNS du FAI, alors elle n’utilise pas son BIND local comme serveur DNS récursif.

La seule explication que je vois à ces problèmes est que le BIND local intervient d’une façon ou d’un autre dans la gestion du domaine, mais cela contredit ce que tu as écrit. Tu es sûr que ce sont seulement les DNS du registrar qui gèrent la zone du domaine ?

Et moi donc…

Ca pourrait être un probleme de cache, mais le mien, je n’ai pas pensé une seconde à le vider. Un autre admin. (enfin admin… autant que moi donc, arf.) a observé à peu-près le même comportement.
~ La page d’accueil (avec erreurs liés au fait que celle-ci regroupe des liens vers les ss-domaines)
~ Aucun sous-domaine.
~ par contre accès possible en ssh avec le NDD (et moi avec l’IP publique)
Sauf, sauf… sauf que ca n’a pas empeché les accès au serveur pour d’autres personnes. Un billet sur un blog, un commentaire sur un autre, même un achat sur une librairie OsCommerce etc. et des crawlers.

Pour quelles zones ? Cela inclut-il les zones du domaine et de ses sous-domaines ?[/quote]
Un fichier .zone par domaine (normalement l’extension c’est .db)
Avec (entre-autres) ses NS (= ns), MX, A puis la liste des sous-domaines :
sousdomaine1 CNAME ns
sousdomaine2 etc.

Je ne suis plus sur que ce soit vrai en fait. Je m’étais basé sur un
~$ Whois domaine.org
qui m’a retourné dans la section serveur de noms:
Name Server:NS6.GANDI.NET -> le registrar (et si je ne m’abuse gandi c’est de dns1 à dns4 maintenant)
Name Server:NS1.unautredomaine.ORG -> perimé! ce serveur n’existe plus.
Name Server:NS.DOMAINE.ORG -> le serveur

Je comprends bien que n’ayant pas toutes les clés en mains (pas d’accès registrar, pas de possibilité de réeteindre cette machine pendant qq heures) je suis d’un faible secours à qui voudrait m’aider.

D’autres personnes ont pu continuer à obtenir la résolution DNS si les enregistrements demandés étaient dans le serveur cache DNS qu’ils interrogeaient suite à une requête précédente et n’avaient pas encore expiré. Les données relatives à un enregistrement donné stockées dans différents caches DNS de par le monde n’expirent pas toutes en même temps.

Peu importe le nom des fichiers de zones et leur contenu, je demandais si les zones du domaine en question et le cas échéant de ses sous-domaines (si définis dans des zones séparées) étaient définis dans la configuration de BIND (sections “zone” dans /etc/bind/named.conf.local ou autre). Je crois comprendre que oui.

La réponse du whois n’est pas totalement fiable, elle n’a pas de valeur technique. Il faut regarder la configuration du domaine chez le registrar (mais apparemment tu n’as pas d’accès), ou à défaut demander la liste des enregistrements NS ayant délégation pour le domaine à un des serveurs DNS faisant autorité pour le domaine parent.

Explication possible :
Si les NS définis sont cette machine et un serveur de Gandi, alors il se peut que le serveur de Gandi soit configuré en esclave de la machine pour cette zone. Ça veut dire que quand le BIND de la machine a été arrêté, le serveur de Gandi a continué à servir la zone pendant un certain temps jusqu’à ce que le délai d’expiration spécifié dans le SOA soit atteint. C’est pour cela que le domaine continuait à fonctionner. Passé ce délai, le serveur esclave n’arrivant plus à joindre le maître pour rester en synchronisation a arrêté de servir la zone.
Quand tu as redémarré BIND, le serveur esclave s’est resynchronisé et a réactivé la zone. Quand tu as arrêté BIND à nouveau, l’esclave a continué a servir la zone mais pour un certain temps seulement.

Oui c’est le cas.
Après les configurations par défaut de named.conf :

[quote]// prime the server with knowledge of the root servers
blabla.
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
blabla.[/quote]
Commence
// add entries for other zones below here
Ici (ailleurs mais peu importe) sont décrites (pointant sur les fichiers correspondants)
4 zones type master (les NDD hebergés) avec un allow-transfer { Ip_ns6_gandi_net; Ip_ns7_unautredomaine.org; localhost; };
1 zones type slave avec un masters { Ip_ns7_unautredomaine.org };

[quote=“PascalHambourg”]
Explication possible :
Si les NS définis sont cette machine et un serveur de Gandi, alors il se peut que le serveur de Gandi soit configuré en esclave de la machine pour cette zone. Ça veut dire que quand le BIND de la machine a été arrêté, le serveur de Gandi a continué à servir la zone pendant un certain temps jusqu’à ce que le délai d’expiration spécifié dans le SOA soit atteint. C’est pour cela que le domaine continuait à fonctionner. Passé ce délai, le serveur esclave n’arrivant plus à joindre le maître pour rester en synchronisation a arrêté de servir la zone.
Quand tu as redémarré BIND, le serveur esclave s’est resynchronisé et a réactivé la zone. Quand tu as arrêté BIND à nouveau, l’esclave a continué a servir la zone mais pour un certain temps seulement.[/quote]

Ca colle au niveau des délais, l’expire est de 4W (4 semaines j’imagine ?)
Et ca colle avec le serveur secondaire de type slave (pas gandi mais l’autre, correctement configuré lui).

En résumé, je dois comprendre (?) :
Qu’au niveau du registrar le serveur (domaine.org) est supposé servir lui-même son NDD (for any raisons) et que je dois donc configurer correctement et completement un serveur DNS (bind9) sur le serveur (domaine.org).

On dirait. Au moins tu as la main sur le contenu de la zone, c’est toi le patron. Si la zone avait été gérée par les serveurs DNS du registrar en maîtres, il aurait fallu avoir accès à l’interface d’administration du compte.