Utilisation avancé de Bind

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Bind c'est bien, mais des fois ça devient un peu complexe. Surtout quand on veut gérer des serveurs DNS à la façon providers. Bref, voici quelques astuces que j'ai trouvé pour améliorer la bête.

2 Forcer les mises à jour de ses zones

2.1 Méthode 1

On peut avoir rapidement besoin de mettre à jour ses zones sans attendre que Bind le fasse lui même (voir les SOA, refresh etc... de chaque zone). Pour cela, il faut freezer les mises à jour de Bind sur la zone en questions :

Command rndc
rndc freeze deimos.fr in internalview

  • deimos.fr : la zone
  • internalview : la vue dans laquelle la zone est située

Il est possible d'enlever "in <view>" si vous n'avez pas de vue de définie. Si l'action s'est bien déroulée, au niveau des logs, vous trouverez :

Oct  2 19:05:42 star1 named[8403]: freezing zone 'deimos.fr/IN' internalview: success

Maintenant, faites les modifications que vous souhaitez sur votre fichier de zone.

Une fois terminé, lancez ces commandes :

Command rndc
rndc reload deimos.fr in internalview
rndc thaw deimos.fr in internalview

  • reload :reload configuration file and zones.
  • thaw : Enable updates to a frozen dynamic zone and reload it.

Si tout ce passe bien, vous verrez quelquechose du genre dans les logs :

Oct  2 19:09:50 star1 named[8403]: zone deimos.fr/IN/internalview: loaded serial 2008100208
Oct  2 19:09:50 star1 named[8403]: zone deimos.fr/IN/internalview: sending notifies (serial 2008100208)
Oct  2 19:09:50 star1 named[8403]: client 192.168.0.27#47874: view internalview: transfer of 'deimos.fr/IN': AXFR-style IXFR started
Oct  2 19:09:50 star1 named[8403]: client 192.168.0.27#47874: view internalview: transfer of 'deimos.fr/IN': AXFR-style IXFR ended
Oct  2 19:09:54 star1 named[8403]: unfreezing zone 'deimos.fr/IN' internalview: success

2.2 Méthode 2

Voici une deuxième méthode, permettant de faire de même :

Command rndc
rndc retransfer deimos.fr

3 Round Robin : Load balancer

Tout d'abord il faut savoir qu'on ne peut load balancer qu'avec des enregistrements A (sauf apparemment pour BIND v4 ou l'on peut en faire avec des CNAME). Puis voici une exemple de comment gérer une configuration d'un domaine :

Configuration File /etc/bind/db.deimos.fr
; Round Robin / Load Balancing
www    60   IN  A      x.x.x.1
www    60   IN  A      x.x.x.2

  • 60 : correspond au TTL, et il est très important, car c'est lui qui va décider quand basculer
  • x.x.x.x : IP des serveurs. Vous ne pouvez malheureusement pas mettre de noms DNS.

Vous pouvez également choisir le type de load balancing parmis ceux là :

  • fixed - records are returned in the order they are defined in the zone file
  • random - records are returned in a random order
  • cyclic - records are returned in a round-robin fashion

Pour ce faire, ajoutez ce type de lignes et adaptez selon vos besoins :

Configuration File /etc/bind/named.conf
...
rrset-order { order cyclic; };
...

Pour plus d'informations, regardez les sites références plus bas.

4 FAQ

4.1 journal rollforward failed: journal out of sync with zone

Si vous avez cette erreur, c'est du à un problème de synchronisation de zone. Regardez dans vos logs la ou les zones qui posent problème, puis supprimer le fichier de syncro :

Command rm
rm /etc/bind/db.deimos.fr.jnl

Il ne reste plus qu'a reloader ou redémarrer votre bind et la syncro va repartir correctement.

5 Ressources

http://jon.netdork.net/2008/08/21/bind-dynamic-zones-and-updates
http://www.zytrax.com/books/dns/
http://www.zytrax.com/books/dns/ch7/queries.html#rrset-order
http://www.zytrax.com/books/dns/info/ttl.html
http://www.zytrax.com/books/dns/ch9/rr.html