Choisissez les nœuds les plus proches du réseau



Les latences du réseau ont un impact significatif sur les performances des applications ou des services qui interagissent avec le réseau. Moins la latence est élevée, plus les performances sont élevées. Cela est vrai pour tout service réseau, à partir d'un site normal et se terminant par une base de données ou un stockage réseau.

Un bon exemple est le système de noms de domaine (DNS). Le DNS est intrinsèquement un système distribué, dont les nœuds racines sont dispersés à travers la planète. Pour accéder à n'importe quel site, vous devez d'abord obtenir son adresse IP.

Je ne décrirai pas tout le processus de passage récursif à travers «l'arborescence» des zones de domaine, mais je me limiterai au fait que pour convertir un domaine en adresse IP, nous avons besoin d'un résolveur DNS qui fera tout ce travail pour nous.

Alors, où obtenir l'adresse DNS du résolveur?

  1. Le FAI fournit l'adresse de son résolveur DNS.
  2. Trouvez l'adresse d'un résolveur public sur Internet.
  3. Élevez votre propre ou utilisez le routeur intégré dans votre maison.

Chacune de ces options vous permettra de surfer sans soucis sur le World Wide Web, mais si vous avez besoin de convertir un grand nombre de domaines en IP, le choix du résolveur doit être abordé plus attentivement.

Comme je l'ai déjà écrit, en plus du résolveur du fournisseur Internet, il existe de nombreuses adresses publiques, par exemple, vous pouvez trouver cette liste ici. Certains d'entre eux peuvent être beaucoup plus préférables car ils ont une meilleure connectivité réseau que le résolveur par défaut.

Lorsque la liste est petite, vous pouvez facilement la «cingler» avec vos mains et comparer le temps des retards, mais même si vous prenez la liste mentionnée ci-dessus, cette leçon devient déjà désagréable.

Par conséquent, pour faciliter cette tâche, moi, plein de syndrome d'imposteur, j'ai esquissé une preuve de concept de mon idée sur le pouce appelée rapprochement .

Par exemple, je ne vérifierai pas la liste complète des résolveurs, mais je me limiterai aux plus populaires.

$ get-closer ping -f dnsresolver.txt -b=0 --count=10 Closest hosts: 1.0.0.1 [3.4582ms] 8.8.8.8 [6.7545ms] 1.1.1.1 [12.6773ms] 8.8.4.4 [16.6361ms] 9.9.9.9 [40.0525ms] 

À un moment donné, lorsque j'ai choisi un résolveur pour moi-même, je me suis limité à vérifier les adresses principales (1.1.1.1, 8.8.8.8, 9.9.9.9), car elles sont si belles et à quoi s'attendre de réserver des adresses laides.

Mais comme il y avait un moyen automatisé de comparer les retards, pourquoi ne pas élargir la liste ...

Comme le test l'a montré, l'adresse Cloudflare de «sauvegarde» me convient mieux, car elle est bloquée dans spb-ix, qui est beaucoup plus proche de moi que msk-ix, dans laquelle le beau 1.1.1.1 est coincé

La différence, comme vous le voyez, est significative, car même le rayon de lumière le plus rapide ne parvient pas à courir de Saint-Pétersbourg à Moscou en moins de 10 ms.

En plus d'un simple ping, PoC a également la possibilité de comparer les retards à l'aide d'autres protocoles, tels que http et tcp, ainsi que le temps nécessaire pour convertir des domaines en IP via un résolveur spécifique.

Les plans ont pour tâche de comparer le nombre de nœuds entre les hôtes à l'aide de traceroute, afin qu'il soit plus facile de trouver des hôtes vers lesquels il existe un chemin plus court.

Le code est brut, il n'y a pas assez de tas de vérifications, mais il fonctionne assez bien sur des données propres. Je serais reconnaissant pour tout commentaire, étoiles sur le github , et si quelqu'un aimait l'idée du projet, alors bienvenue aux contributeurs.

Source: https://habr.com/ru/post/fr451866/


All Articles