Première rédaction de cet article le 29 mars 2025
Dans les discussions au sujet du réseau Internet, on voit souvent passer des demandes sur l'AS associé à une adresse IP ou bien le contraire. Mais les questions simples du genre « de quel AS dépend une adresse IP ? » sont… trop simples.
Il n'y a en effet pas d'association simple : une adresse IP peut être annoncée via BGP par plusieurs AS (même si ce n'est pas le cas le plus courant) et, surtout, surtout, il faut différencier l'association administrative (quel opérateur s'est fait allouer quelle adresse IP) et l'association technique (que voit-on avec BGP).
Commençons par la partie administrative. Un opérateur réseau est
typiquement LIR, membre d'un RIR, un registre d'adresses IP, dont
il obtient des adresses IP (ou plus exactement des préfixes
regroupant de nombreuses adresses). On peut obtenir l'information
sur ces allocations de préfixe avec des protocoles comme
whois ou RDAP (comme
pour les noms de domaine) ou simplement via le site Web du
registre. whois est très ancien, a plusieurs limites sérieuses (pas
de jeu de caractères normalisé, zéro
sécurité, il n'est même pas chiffré, etc). RDAP convient
mieux pour programmer. Ici, comme je suis vieux et
conservateur, je vais utiliser whois, d'autant plus que, dans
certains RIR, de l'information sur l'AS d'origine est distribuée en
whois mais pas en RDAP (qui n'a pas de réponse normalisée pour cette
information). Je me demande quel opérateur a
obtenu l'adresse 18.220.219.93
(choisie car
elle héberge un ramasseur d'une boite d'IA, qui vient de passer
sur ce blog).
% whois 18.220.219.93 … NetRange: 18.32.0.0 - 18.255.255.255 CIDR: 18.128.0.0/9, 18.64.0.0/10, 18.32.0.0/11 Organization: Amazon Technologies Inc. (AT-88-Z) …
OK, c'est une machine d'AWS. Je connais donc l'opérateur. La base de l'ARIN ne stockait apparemment pas le numéro d'AS de AWS. Celle du RIPE-NCC est en général de meilleure qualité donc on va réessayer avec une adresse européenne (un autre visiteur de ce blog, un ramasseur pour un moteur de recherche).
% whois 91.242.162.6 … inetnum: 91.242.162.0 - 91.242.162.255 netname: QWANT-NET org-name: QWANT SAS … route: 91.242.162.0/24 descr: QWANT SAS origin: AS199064
Cette fois, dans l'objet de type route
(qui,
comme indiqué plus haut, n'est pas encore disponible pour RDAP), on a le
numéro de l'AS
associé à cette adresse. On peut obtenir des informations sur cet AS
via whois (whois AS199064
…), RDAP, etc. Cette
information peut être utilisée pour bâtir automatiquement des règles
de filtrage pour les routeurs BGP (on utilise alors la base du RIR
comme IRR, Internet Routing
Registry) en considérant que seul cet AS peut annoncer ce
préfixe 91.242.162.0/24
. Un exemple d'IRR
public, qui agrège les informations des RIR et en ajoute certaines,
est celui de
NTT. Rappelez-vous que toutes ces bases de données sont de
qualité… variable.
Mais tout ceci, c'est purement administratif. Ce sont des bases
de données relativement statiques qui sont stockées par les
RIR. Dans l'Internet vivant et dynamique, c'est autre chose. Là, il
faut regarder ce que contiennent les tables BGP, remplies par ce protocole de
routage. Là, ce sera bien plus dynamique (mais pas plus
« réel »). On peut consulter ces tables si on gère un routeur BGP
situé dans la DFZ
mais, comme ce n'est probablement pas le cas de la majorité des
lecteurices de ce blog, on va utiliser les
outils disponibles en ligne. Servons-nous par exemple du
service en bgp.bortzmeyer.org
.
% curl -s https://bgp.bortzmeyer.org/18.220.219.93 18.220.0.0/14 16509
L'adresse IP allouée à Amazon est annoncée en
BGP par l'AS 16509. C'est l'AS d'Amazon, ce qui ne nous surprendra
pas mais, bien sûr, un préfixe peut être annoncé par un autre
opérateur que celui qui l'a réservé. Regardez par exemple
2001:678:4c::1
, réservé par
l'Afnic, mais annoncé en BGP par son
hébergeur, PCH (dont le numéro d'AS, que je
vous laisse trouver, donne une bonne idée de la culture et de
l'ancienneté de cette organisation).
Ah, et j'avais dit qu'une adresse IP pouvait être annoncée par
plusieurs AS. C'est surtout le cas pour les services
anycastés. Regardez avec le
script bgproute
(présenté dans la page citée plus haut).
% bgproute 2001:678:c::1 2001:678:c::/48 2486 2484 % bgproute 2001:503:d2d::30 2001:503:d2d::/48 36617 21313 40647 396599 397196 396566 396576 19836 397193 396555 396550
Le premier est annoncé par deux AS, le deuxième par pas moins de onze AS différents.
J'insiste sur le fait que les deux visions, l'administrative dans les bases des RIR, et la technique dans les tables BGP, sont aussi « authentiques » ou « correctes » l'une que l'autre. Ce sont simplement deux visions différentes de l'objet socio-technique assez complexe qu'est l'Internet.
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)