Eviter le temps de propagation des DNS lors d’une migration

Bonsoir 🙂

Lors d’une migration de serveur, ou globalement lors du changement de l’ip lié à vos nom de domaines, il y a une période de propagation des DNS qui peut être assez longue selon les fournisseur d’accès.

D’ailleurs en passant, vous pouvez utiliser un meilleur prestataire de DNS en prenant ceux de Google ou encore OpenDns.

Bref, pour éviter cette période de propagation des Dns et donc rendre un changement d’ip immédiat, voici une petite astuce:

Tout se passe sur l’ancien serveur, il va forwarder tout les paquets qu’il reçois directement vers la nouvelle ip.

  • Autoriser l’IP Forwarding
    echo 1 >/proc/sys/net/ipv4/ip_forward
  • On ajoute une règle de PREROUTING au niveau d’IPTables afin de rediriger tous ce qui rentre sur le port 80 vers le nouveau
    iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 255.255.255.128
    N’oubliez pas d’adapter l’ip et/ou le port selon vos choix.

  • Sur même principe, on ajoute une règle de POSTROUTING permettant de faire apparaitre les redirections vers le nouveau serveur comme provenant du client et pas de l’ancien serveur.
    iptables -t nat -A POSTROUTING -p tcp -d 255.255.255.128 --dport 80 -j MASQUERADE

Et voila 🙂

Petite astuce supplémentaire, si vous désirez ensuite enlevé ce forwarding :

  • On va listé les règles de PREROUTING et POSTROUTING
    iptables -L -vt nat --line-numbers
  • Vous allez donc avoir un affichage avec les règles que vous aviez entrée précédemment ainsi qu’en début de ligne le numéro de cette ligne. C’est avec ce numéro que nous allons pouvoir supprimer la règle. Dans les commandes suivante, 1 représente donc le numéro de la ligne.
    iptables -t nat -D POSTROUTING 1
    iptables -t nat -D PREROUTING 1
  • On bloque ensuite l’IP Forwarding
    echo 0 >/proc/sys/net/ipv4/ip_forward

N’hésitez pas à me faire pars de vos retours 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *