SwordArMor

Afficher correctement les AS 32 bits avec mtr

mtr est un outil très pratique qui permet de faire un traceroute, mais en mieux. La sortie est beaucoup plus lisible, et ça utilise de l’ICMP par défaut (au lieu de l’UDP sous Linux/*BSD). Seulement, dans les anciennes versions, les AS 32 bits sont mal gérés : ils sont trop longs et sont collés au nom de la machine, du coup c’est fort peu pratique.


alarig@gourmaleon:~$ mtr -zbwe grifon01.ring.nlnog.net
Start: Mon Sep 24 13:31:22 2018
HOST: gourmaleon                                                                          Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS34019 ve375-rt-std.bb.hivane.net (2001:67c:1740:9032::c1c8:2afd)                    0.0%    10    0.4   0.5   0.4   0.7   0.0
  2. AS???   equinix-th2.quantic-telecom.net (2001:7f8:43::19:8507:1)                      0.0%    10    0.7   1.0   0.7   2.4   0.3
  3. AS198507rennes-rns01-gw1.routers.quantic-telecom.net (2a06:e040:0:7501:1350:aa:0:2)   0.0%    10    9.7  10.0   9.4  13.3   1.2
  4. AS204092budic-vlan41-ibgp.cogent-rns.grifon.fr (2a00:5884:0:4::2)                     0.0%    10    9.8  10.0   9.7  10.4   0.0
  5. AS204092regis.swordarmor.fr (2a00:5884:102::1)                                        0.0%    10   10.0   9.9   9.7  10.3   0.0
  6. AS204092nlnogring-grifon.swordarmor.fr (2a00:5884:102:1::2)                           0.0%    10   10.5  10.2  10.0  10.5   0.0

Avec un petit awk, on peut ajouter de l’espace à chaque ligne contenant un ASN, et plus précisément entre la colonne 13 et 14 :


alarig@gourmaleon:~$ mtr -zbwe grifon01.ring.nlnog.net | awk '{ if(index($2,"AS")) { print substr($0,0,13), substr($0,14) } else print }'
Start: Mon Sep 24 13:31:55 2018
HOST: gourmaleon                                                                          Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS34019  ve375-rt-std.bb.hivane.net (2001:67c:1740:9032::c1c8:2afd)                    0.0%    10    0.4   0.6   0.4   1.0   0.0
  2. AS???    equinix-th2.quantic-telecom.net (2001:7f8:43::19:8507:1)                      0.0%    10    0.7   0.8   0.6   1.0   0.0
  3. AS198507 rennes-rns01-gw1.routers.quantic-telecom.net (2a06:e040:0:7501:1350:aa:0:2)   0.0%    10    9.7   9.6   9.4  10.4   0.0
  4. AS204092 budic-vlan41-ibgp.cogent-rns.grifon.fr (2a00:5884:0:4::2)                     0.0%    10    9.7   9.9   9.7  10.3   0.0
  5. AS204092 regis.swordarmor.fr (2a00:5884:102::1)                                        0.0%    10   10.0  10.1   9.9  10.3   0.0
  6. AS204092 nlnogring-grifon.swordarmor.fr (2a00:5884:102:1::2)                           0.0%    10   10.4  10.1   9.9  10.4   0.0

Ensuite, on peut très bien se faire une fonction dans son ~/.bashrc ou ~/.zshrc pour éviter de devoir se rappeler du awk à chaque fois.
Notons que ça ne marche qu’en mode rapport (-w) mais que les versions récentes de mtr (au moins depuis la 0.87) gèrent correctement les AS 32 bits.

Merci à solene pour ce bout de awk.