Auteur Sujet: Bascule DNS primaire vers DNS secondaire  (Lu 7738 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 183
    • Twitter LaFibre.info
Bascule DNS primaire vers DNS secondaire
« le: 12 juin 2015 à 18:13:04 »
Dans tous les systèmes d’exploitation, on rentre deux serveurs DNS, appelés parfois primaire et secondaire(s).

Je cherche a comprendre le fonctionnement recommandé pour la bascule sur le secondaire : Au bout de combien de ms une requête est envoyée sur le serveur secondaire ?

En cas de réussite sur le secondaire, cela reste pendant combien de temps le serveur interrogé par le système d'exploitation avant de faire une nouvelle tentative sur le 1er ?

Je cherche a comprendre les bonnes pratiques, pour vérifier que les box de nos FAI l'implèmente bien : En effet aujourd'hui la majorité des personnes ont un seul DNS sur leur système d'exploitation : celui de la box qui relai vers le DNS primaire et secondaire du FAI.

C'est donc au relai DNS de la box de gérer le fait que le primaire ne répond plus et de ne pas lui envoyer les requêtes pendant un certains temps.

Damien

  • Expert
  • *
  • Messages: 1 917
Bascule DNS primaire vers DNS secondaire
« Réponse #1 le: 12 juin 2015 à 18:31:22 »
En cas de réussite sur le secondaire, cela reste pendant combien de temps le serveur interrogé par le système d'exploitation avant de faire une nouvelle tentative sur le 1er ?

Sur ce point, j'imagine que c'est lié au TTL. Le système a eu sa réponse, il s'en cogne certainement de savoir comment il l'a eu et ne cherchera à renouveler l'info qu'à l'expiration du TTL

vivien

  • Administrateur
  • *
  • Messages: 47 183
    • Twitter LaFibre.info
Bascule DNS primaire vers DNS secondaire
« Réponse #2 le: 12 juin 2015 à 18:39:09 »
Je parlais des autres requêtes DNS effectuées par le client.

Exemple : Le serveur DNS primaire du FAI est HS. Si a chaque requête demandée par le PC, la box va faire une requête sur le serveur primaire, attendre un time-out de 4 secondes avant de faire la requête sur le secondaire, le client va voir son surf quasi impossible, vu que chaque requête DNS mettra plus de 4 secondes à être résolue.

Damien

  • Expert
  • *
  • Messages: 1 917
Bascule DNS primaire vers DNS secondaire
« Réponse #3 le: 12 juin 2015 à 19:49:24 »
Ah oui effectivement

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
Bascule DNS primaire vers DNS secondaire
« Réponse #4 le: 12 juin 2015 à 20:35:53 »
En théorie, on est pas limité a 2 serveurs, ca dépend des OS.

Pour Windows le comportement pour 2 serveurs est le suivant (https://support.microsoft.com/en-us/kb/2834226 ):

au debut (T=0), requete au primaire
si apres 1 seconde (T=1) pas de réponse: requete au secondaire et nouvelle requete au primaire
si une seconde apres (T=2) toujours pas de réponse: nouvelle requête au secondaire
si 2 secondes apres (T=4) toujours pas de réponse: nouvelle requete a tout les serveurs
si 4 secondes apres (t=8)   toujours pas de réponse: nouvelle requete a tout les serveurs
si 2 secondes apres (t=10) toujours pas de réponse: échec de la résolution, le client arrete

Le comportement peut se changer en modifiant la base de registre.

si on a configué 3 ou plus serveurs DNS, le comportement est un peu différent mais le temps total avant échec le meme (10).

Pour Linux, c'est different et ca se configure dans resolv.conf (voir le man). Il y a 3 options: timeout, rotate et attempts.


vivien

  • Administrateur
  • *
  • Messages: 47 183
    • Twitter LaFibre.info
Bascule DNS primaire vers DNS secondaire
« Réponse #5 le: 12 juin 2015 à 21:25:51 »
J'avais mis un s entre parenthèse à secondaire(s) car les systèmes permettent généralement d'en mettre plusieurs.

En fait ce qu'il me manque comme information, c'est le temps après un échec sur le serveur primaire où il va aller directement au secondaire.

Si tu fais l'essai en déclarant un mauvais serveur primaire, il ne va pas a chaque requête DNS envoyer une requête et attendre le time-out avant de passer sur le secondaire.
Pendant un certain temps, il va aller directement sur le secondaire, car il suppose que le primaire est HS. Cela fait gagner de précieuses secondes au client.

Pour linux, voici le man :

timeout:n
                     définit le temps que la bibliothèque de résolution doive attendre la réponse d'un serveur de noms distant avant  de  ressayer  une
                     requête  sur  un  serveur  de  noms  différent.  Exprimée  en secondes, la valeur par défaut est RES_TIMEOUT (actuellement 5, voir
                     <resolv.h>). La valeur de cette option est tronquée à 30 sans produire d'erreur.

attempts:n
                     définit le nombre de fois que la bibliothèque de résolution enverra une requête à ses serveurs de noms avant d'abandonner et  ren‐
                     voyer  une erreur à l'application appelante. La valeur par défaut est RES_DFLRETRY (actuellement 2, voir <resolv.h>). La valeur de
                     cette option est tronquée à 5 sans produire d'erreur.

rotate
                     configure RES_ROTATE dans _res.options, qui provoquera une sélection en tourniquet (« round-robin ») des serveurs  de  noms  parmi
                     ceux  qui sont listés. Cela a pour effet de diffuser la requête vers tous les serveurs listés plutôt que tous les clients essayent
                     le premier serveur listé chaque fois.


Donc en configuration par défaut cela fait ça, non ?

- au debut (T=0), requete au primaire
- si après 5 secondes (T=5) pas de réponse: requete au secondaire et nouvelle requete au primaire
- si après 5 secondes après (T=10) pas de réponse: 2ème requête au primaire
- si après 5 secondes (T=15) pas de réponse: 2ème requête au secondaire
- si après 5 secondes (T=20) pas de réponse: échec de la résolution, le client arrête

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
Bascule DNS primaire vers DNS secondaire
« Réponse #6 le: 13 juin 2015 à 01:12:09 »
je le vois plutot comme ca:
Citer
- au debut (T=0), requete au primaire (A=1)
- si après 5 secondes (T=5) pas de réponse: requete au secondaire et nouvelle requete au primaire (A=2)
- si après 5 secondes après (T=10) pas de réponse: comme A=2 on stop 2ème requête au primaire
- si après 5 secondes (T=15) pas de réponse: 2ème requête au secondaire
- si après 5 secondes (T=20) pas de réponse: échec de la résolution, le client arrête

Il ne retente pas le primaire tout de suite comme fait Windows. Il alterne l'un après l'autre les serveurs.
et A = attempts = 2 par défaut, est global et pas par serveur.

donc de base: il requete le 1er, attend 5 secondes, requête le 2eme, attend 5 secondes et échec.
Ce qui veut dire que mettre 3 serveurs ou plus ne sert a rien car il n'utilisera que les 2 premiers.
Il faut activer 'rotate' ou augmenter 'attempts' pour exploiter plus de 2 serveurs.