6135 links
  • GuiGui's Show
  • Home
  • Login
  • RSS Feed
  • ATOM Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
 
  • GitHub - farrokhi/dnsdiag: DNS Diagnostics and Performance Measurement Tools

    Quelques outils pour du debug plus ou moins avancé du DNS.

    • dnseval : comparer les temps de réponse d'un panel de résolvers DNS histoire d'identifier celui qui est le plus rapide à répondre depuis votre réseau ;

    • dnsping : temps de réponse d'un serveur. Comme ping pour la pile IP ;

    • dnstraceroute : comparer le chemin réseau d'une requête DNS. Ça permet de mettre en évidence une censure par le réseau qui porte uniquement sur certains noms de domaine (le chemin change pour ces noms-là). Ça permet aussi de constater si le trafic DNS est redirigé vers un autre résolveur que celui que vous avez configuré : le chemin n'est pas identique entre un traceroute (IP) et un dnstraceroute (DNS, si on peut dire ça comme ça) ;



    Avant la version du 12 avril, dnstraceroute utilise une socket de type DGRAM (UDP) + ICMP. Par défaut, sous Debian GNU/Linux (et sous Ubuntu et Fedora, visiblement), ces sockets ne peuvent pas être créées. Par personne, même pas par root. Python sort de la manière suivante :

    File "/usr/lib/python3.4/socket.py", line 123, in __init__
    _socket.socket.__init__(self, family, type, proto, fileno)
    PermissionError: [Errno 13] Permission denied

    Ce refus est piloté depuis net.ipv4.ping_group_range. Voir https://lkml.org/lkml/2011/5/18/305 . 1 0 est la valeur par défaut et indique que personne ne peut créer une socket de ce type. 1000 1000 autorise uniquement mon utilisateur (qui a un guid = 1000). 0 0 autorise root. Etc.

    C'est la ressource suivante qui m'a permis de remonter à cette clé sysctl : https://sturmflut.github.io/linux/ubuntu/2015/01/17/unprivileged-icmp-sockets-on-linux/



    Attention, il ne faut pas confondre avec une socket de type RAW + ICMP comme ce qu'utilise ping. Ces sockets-là peuvent être créées par root ou par tout programme qui a la capability cap_net_raw, ce qui est le cas de ping :

    $ sudo getcap /bin/ping
    /bin/ping = cap_net_raw+ep



    Je note qu'en utilisant les sockets DGRAM, dnstraceroute ne reçoit visiblement pas les messages ICMP TTL expired puisque les IPs n'apparaissent pas alors que Wireshark voit très bien les ICMP TTL expired. Rien à redire en mode RAW.

    Via https://twitter.com/bortzmeyer

    October 28, 2016 at 11:37:30 PM UTC - permalink - https://github.com/farrokhi/dnsdiag
Links per page: 20 50 100
 
Mentions légales identiques à celles de mon blog | CC BY-SA 3.0

Shaarli - The personal, minimalist, super fast, database-free, bookmarking service by the Shaarli community