Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

Les malheurs du réseau 128.0.0.0/16

Première rédaction de cet article le 13 décembre 2011


Une série de chiffres en vaut une autre, pensez-vous ? Eh bien non. Quoique numériques, toutes les adresses IP ne se valent pas. Le préfixe 128.0.0.0/16, quoique parfaitement légal, est ainsi invisible depuis une bonne partie de l'Internet.

Tentez l'expérience depuis votre machine en visant l'amer mis en place par le RIPE-NCC :

%  ping -c 3 128.0.0.1
PING 128.0.0.1 (128.0.0.1) 56(84) bytes of data.
64 bytes from 128.0.0.1: icmp_req=1 ttl=55 time=83.6 ms
64 bytes from 128.0.0.1: icmp_req=2 ttl=55 time=83.8 ms
64 bytes from 128.0.0.1: icmp_req=3 ttl=55 time=83.5 ms

--- 128.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 83.519/83.692/83.890/0.367 ms

Si cela marche (comme ci-dessus), vous faites partie des favorisés. Sinon :

%  ping -c 3 128.0.0.1
PING 128.0.0.1 (128.0.0.1) 56(84) bytes of data.

--- 128.0.0.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2010ms

Mais pourquoi ? Qu'est-ce que ce chiffre a de particulier ? C'est parce qu'une bogue des routeurs Juniper traite ce réseau différemment et, par défaut, le considère comme « martien » (anormal sur l'Internet) et refuse les annonces BGP pour lui (ce préfixe était réservé, mais le RFC 3330 l'a libéré en 2002). Le numéro (interne) de bogue chez Juniper est le PSN-2011-10-393. Le problème est bien expliqué dans un article des RIPE labs et son effet mesuré par les sondes Atlas. Aujourd'hui, un tiers de l'Internet ne peut pas joindre ce réseau 128.0.0.0/16. Autre façon de mesurer le même problème, regarder la propagation des annonces BGP, par exemple au RIS qui, en décembre 2011, voit une propagation de seulement 80 %.

Une mise à jour existe désormais chez Juniper. On peut aussi changer la configuration par défaut (qui est incorrecte). Si votre routeur Juniper affiche 128.0.0.0/16 en réponse à show route martians, c'est que vous avez la mauvaise configuration. Changez-la  :

set routing-options martians 128.0.0.0/16 orlonger allow 
set routing-options martians 191.255.0.0/16 orlonger allow 
set routing-options martians 223.255.255.0/24 exact allow 

(Trois préfixes sont concernés, même si c'est surtout le premier qui a fait parler de lui.)

Si vous n'arivez pas à pinguer l'adresse de l'amer ci-dessus, tapez sur votre FAI jusqu'à ce qu'il mette à jour ses routeurs (et ainsi de suite récursivement car cela dépend également de l'opérateur qui connecte le FAI).

Avant la mise à jour, sur la console du routeur :

admin@m7i-2-sqy> show route 128.0.0.1

admin@m7i-2-sqy> show route 128.0.0.1 hidden

SERVICE.inet.0: 395145 destinations, 730370 routes (394162 active, 0
holddown, 1051 hidden)
+ = Active Route, - = Last Active, * = Both

128.0.0.0/21        [BGP/170] 1w5d 21:07:00, localpref 100
                      AS path: 2200 20965 1103 12654 I
                    > to 193.51.182.46 via ge-1/3/0.0

Après la mise à jour :

admin@m7i-2-sqy> show route 128.0.0.1

SERVICE.inet.0: 369404 destinations, 369404 routes (368357 active, 0
holddown, 1047 hidden)
+ = Active Route, - = Last Active, * = Both

128.0.0.0/21       +[BGP/170] 00:01:55, localpref 100
                      AS path: 2200 20965 1103 12654 I
                    > to 193.51.182.46 via ge-1/3/0.0

Merci à Sylvain Busson pour sa prompte mise à jour des routeurs.

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)