Uniquement historiques mais intéressants à lire pour avoir une
perspective à l'heure où on rediscute d'une nouvelle architecture de
routage pour l'Internet.


RFC 5772 : A set of possible requirments for a future routing architecture

Date de publication du RFC : Février 2010. Première rédaction de cet article le 
19 Février 2010

http://www.bortzmeyer.org/5772.html

----------------------------

Auteur(s) du RFC: A. Doria (LTU), E. Davies (Folly
consulting), F. Kastenholz



----------------------------


Ce RFC qui expose un cahier des charges pour le routage global de 
l'Internet est essentiellement un document historique. Écrit il y a pas 
mal d'années, il est publié aujourd'hui (avec quelques mises à jour et 
annotations) dans le cadre des efforts de définition d'une future 
architecture de routage. Il accompagne le RFC 5773 qui décrivait 
l'existant et se focalise sur les deux cahiers des charges qui avaient 
été redigés par deux groupes de travail en 2001. (Attention, donc, en 
le lisant, une bonne partie a été écrite au tout début du siècle.)

La section 1 résume la genèse compliquée de ce document. Il est issu 
d'un travail d'un groupe de l'IRTF qui devait travailler sur le routage 
« en partant d'une page blanche », c'est-à-dire sans être gêné par la 
nécessité de rester proche des mécanismes actuels. Un autre groupe, 
nommé Babylon, travaillait au même moment sur le même sujet, mais avec 
une perspective différente puisque Babylon se limitait aux solution 
incrémentales, ne nécessitant pas de tout jeter. Les contributions des 
deux groupes ont été réunis dans ce RFC 5772 (le « groupe A » est celui 
de l'IRTF et le « groupe B » est Babylon). Les deux groupes n'ont pas 
été fusionnés car ils partaient de principes trop différents pour 
qu'une fusion puisse marcher. La liste des membres des deux groupes 
figure dans la section 6.

Leurs contributions ont été un peu éditées pour la publication dans ce 
RFC mais, à part cela, elles reflètent en gros le point de vue du début 
des années 2000. Dans les deux cas (groupe A et groupe B), il s'agit 
d'une liste au Père Noël, de tout ce qu'il serait bien d'avoir dans le 
routage et la section 1 note qu'il n'est pas forcément possible de 
rééaliser toutes ces exigences (surtout simultanément).

La section 2 est rédigée par le groupe A, celui qui partait d'une 
feuille blanche. On y trouve tous les bons principes de conception, par 
exemple qu'une *architecture* doit être définie et bien documentée, 
avant de se plonger dans les détails des protocoles (section 2.1.1). 
Idéalement, les changements des composants de cette architecture 
devraient pouvoir se faire séparement pour chaque composant. Et, encore 
plus vœu pieux, l'*adressage* devrait être séparé de la *topologie* du 
réseau (actuellement, sans être complètement liés, les deux sont 
fortement connectés ; cela explique les bonnes performances de 
l'Internet, malgré sa taille, mais c'est aussi dans cette forte 
connexion que se trouvent souvent les conflits, par exemple autour des 
adresses PI, ces adresses qui ne suivent pas la topologie).

L'architecture vue par le groupe A doit passer à l'échelle, 
c'est-à-dire accepter des réseaux bien plus grands qu'aujourdhui 
(« idéalement, pour les vingt prochaines années »), par exemple pour 
plusieurs dizaines de milliers d'AS, chiffre qu'une note d'un éditeur 
en 2005 prévient qu'il a déjà été atteint. Une autre prévision est déjà 
dépassée dans la même section 2.1.3. Le texte de 2001 prenait le risque 
de pronostiquer que, en raison de certaines limites physiques, les 40 
Gb/s d'OC768 seraient difficiles à dépasser alors qu'ils le sont déjà.

La section 2.1.6 demande que l'architecture nouvelle gère proprement le 
"multi-homing". La 2.1.9, encore plus ambitieuse, demande que le 
nouveau système de routage soit sûr. Par exemple, une des exigences est 
la possibilité de dissimuler aux regards extérieurs la topologie de son 
réseau ce qui, pris au pied de la lettre, veut dire qu'il faut pouvoir 
empêcher traceroute de fonctionner.

Bien que le point de départ originel du projet du groupe A était de 
partir de zéro, une section, la 2.1.12 est quand même consacrée au 
déploiement incrémental de la nouvelle architecture, le considérant 
comme impératif. C'est compréhensible (l'expérience de beaucoup 
d'autres *objets techniques* complexes montre la vanité qu'il y a à 
vouloir faire table rase de l'investissement financier, technique et 
social) mais cela rend l'ensemble du cahier des charges encore plus... 
Comment dire ? Ambitieux ? Irréaliste ?

Le caier des charges du groupe A ne s'arrête pas là. Il demande encore 
une complète portabilité des adresses IP (section 2.1.14), que 
l'architecture soit simple à comprendre (« en moins d'une heure », dit 
la section 2.1.17 mais il est vrai que sa simplicité conceptuelle fut 
une des raisons de la victoire d'IP contre OSI). l'indépendance du 
système de routage par rapport aux autres composants de l'architecture 
(comme le DNS cf. section 2.1.20), et bien d'autres choses.
 
La liste est donc impressionnante. Et pourtant, tout n'a pas été 
inclus. La section 2.2 liste les non-buts, ce que le groupe A n'a pas 
considéré comme faisant partie des objectifs. On y trouve l'ingéniérie 
de trafic (section 2.2.2), terme très flou et trop vaste pour avoir été 
inclus dans les objectifs. la « sécurité absolue » (section 2.2.6), qui 
pourrait, en cas de problème, empêcher les opérateurs de faire leur 
travail, le routage dynamique en fonction de la charge du réseau 
(section 2.2.7), une vieille idée de l'Arpanet qui s'est toujours 
avérée très « casse-gueule », et, naturellement, la compatibilité avec 
l'existant (section 2.2.10) puisque l'idée de départ était une approche 
« table rase ».

La section 3 donne ensuite la parole au groupe (alias Babylon). Après 
un résumé du contexte, les exigences commencent en 3.2.3 qui note que 
tout cahier des charges laisse en général en blanc la question de 
l'évaluation des résultats : comment savoir qu'on a réussi ?

Parmi les demandes, l'exigence que le routage fournisse suffisamment 
d'informations pour pouvoir être utilisé par plusieurs services, autres 
que la délivrance de datagrammes au meilleur effort (section 3.2.3.2), 
le passage à l'échelle (section 3.2.3.3, où le RFC note que, dans ce 
secteur, l'échec est bien plus facile à détecter que le succès), etc. 
La sécurité fait l'objet de la demande 3.2.3.8,qui réclame une 
protection contre les DoS en notant que, dans l'Internet actuel, le 
fait de connaître une route sert également d'autorisation à y envoyer 
un paquet et qu'il faudrait changer cela (les notes récentes du RFC 
critiquent le groupe B en se demandant si ce ne serait pas une 
violation de la transparence du réseau).

Le groupe B souhaite également que les erreurs de configuration des 
routeurs (comme celle d'un routeur Microtik tchèque 
(http://www.renesys.com/blog/2009/02/longer-is-not-better.shtml)) ne 
puissent plus avoir des conséquences poiur l'Internet entier (section 
3.2.3.10).

L'Internet n'est pas un objet purement technique. Il nécessite beaucoup 
de moyens humains et financiers, qui n'arrivent pas tout seuls. La 
section 3.4 se lance dans l'étude des contraintes extérieures, qui 
limitent les solutions possibles. Un des exemples le plus simple est 
celui de la très forte dépendance du soi-disant « cyberespace » 
vis-à-vis du monde physique (section 3.4.3). Combien d'entreprises ont 
acheté leur connectivité Internet à deux fournisseurs « pour la 
redondance » avant de découvrir que leurs câbles passaient dans la même 
tranchée et pouvaient tous être tranchés par la même pelleteuse ? 
(Comme ce fut le cas lors de la coupure égyptienne 
(http://www.renesys.com/blog/2008/12/deja-vu-all-over-again-cables.shtml
).)

Les exigences détaillées apparaissent ensuite en section 3.6. Groupées 
en sections, chacune reçoit un numéro, chaque section faisant 
l'objection d'une discussion groupée. Ainsi, l'exigence R(13) 
("Requirment 13"), « Le routage doit pouvoir gérer différents chemins 
selon le service demandé » (nécessaire pour la QoS) fait partie de la 
section 3.6.2.2 sur les annonces de routes.

Il y a en tout 64 de ces exigences. Quelques exemples :
* R(26) ne tranche pas entre les différentes familles d'adresses et 
demande que le futur système de routage sache gérer IPv4 *et* IPv6 et 
également des familles non-IP.
* R(55) demande qu'il ne soit pas nécessaire de prévoir un "flag day" 
pour le déploiement du futur système de routage.
* R(62) voudrait que le futur système de routage permette 
d'authentifier les annonces de route (un problème brûlant aujourd'hui 
(http://www.bortzmeyer.org/securite-bgp-et-reaction-rapide.html)).

La section 3.10 couvre ensuite les questions « contestables », celles 
où le consensus du groupe B est moins fort. Cela va de questions très 
vagues (3.10.1 regrette qu'on modélise toujours les réseaux sous forme 
de graphes et demande qu'on accepte d'autres modèles - sans donner 
aucune idée de ce qu'ils pourraient être) à des considérations sur des 
problèmes transversaux comme le général byzantin (section 3.10.10).


RFC 5773 : Analysis of Inter-Domain Routing Requirements and History

Date de publication du RFC : Février 2010. Première rédaction de cet article le 
19 Février 2010

http://www.bortzmeyer.org/5773.html

----------------------------

Auteur(s) du RFC: E. Davies (Policy
consulting), A. Doria (LTU)



----------------------------


Ce RFC est essentiellement un document historique. Écrit il y a pas mal 
d'années, il est publié aujourd'hui (avec quelques mises à jour et 
annotations) dans le cadre des efforts de définition d'une future 
architecture de routage inter-domaine dans l'Internet.

Sur Internet, il existe en effet deux sortes de routage, 
l'*intra-domaine* qui concerne les opérations se déroulant à 
l'intérieur d'un unique système autonome, donc sous une direction 
commune, et l'*inter-domaine*, qui traite du routage *entre* systèmes 
autonomes (les « domaines »), lorsqu'il faut franchir des frontières 
administratives, ce qui est bien plus complexe que de simplement 
pousser des paquets. Aujourd'hui, l'essentiel du routage inter-domaine 
est fait avec le protocole BGP (RFC 4271, et BGP avait été 
originellement conçu, en 1989, en réponse aux exigences du RFC 1126) et 
l'architecture sur laquelle il repose montre des sérieuses limites, 
notamment en matière de passage à l'échelle : pourrons-nous faire 
ecnore croître l'Internet, et à un coût raisonnable ? (La section 2 du 
RFC résume l'état actuel du routage inter-domaine et de ses limites. 
Elle est complétée sur ce dernier point par la section 5. Le routage 
intra-domaine est, lui, considéré comme globalement satisfaisant.)

Il existe en ce moment beaucoup d'activité à l'IETF et à l'IRTF autour 
de ce thème d'une future architecture de routage. Elle porte, par 
exemple, sur des idées comme la séparation de l'identificateur et du 
localisateur 
(http://www.bortzmeyer.org/separation-identificateur-localisateur.html).
 Le groupe de l'IRTF concerné est le "Routing Research Group 
(http://www.irtf.org/charter?gtype=rg&group=rrg)" et ce groupe 
travaille à la définition d'un cahier des charges pour la future 
architecture. Parmi les travaux étudiés à cette occasion, figurent les 
discussions qui ont eu lieu il y a plusieurs années, à partir du RFC 
1126, et qui sont désormais synthétisées dans ce RFC. (Attention, donc, 
en le lisant, une bonne partie a été écrite au tout début du siècle.)

La section 1 résume la longue genèse de ce document, qui prend sa 
source dans les travaux d'un groupe informel nommé Babylon 
(http://www.cdt.luth.se/babylon/) en 2001. Le texte original a été 
préservé, des ajouts indiquent ce qui a pu changer dans l'Internet 
depuis.

La section 3 du RFC détaille chacune des exigences du RFC 1126, dans 
l'ordre du RFC original, en expliquant dans quelles mesures elles sont 
satisfaites aujourd'hui, avec un Internet radicalement différent de ce 
qu'il était en 1989, où sa taille était minuscule, selon les critères 
d'aujourd'hui, et où sa connectivité était encore très hiérarchique, 
avec NSFnet au sommet.

Ainsi, l'exigence indiquée en section 3.1 e) du RFC 1126, "Provide 
paths sensitive to user policies" est décrite dans notre RFC 5773 en 
section 3.1.2.1.5 comme toujours valide (selon le texte écrit en 2001 
par Babylon) mais très imparfaitement faite ("loose source routing", 
QoS) et les notes de 2006 à nos jours ajoutent qu'il faut plutôt parler 
d'échec complet que de déploiement insuffisant.

Mais il y a aussi des succès, le principal étant évidemment que 
l'Internet marche. Des points qui semblaient primordiaux en 1989 et 
même encore en 2001 ont sombré dans une relative indifférence (comme la 
QoS, justement).

Les plus gros problèmes sont peut-être quantitatifs. Le RFC 1126, 
section 3.4 c) demandait innocemment que le futur (à l'époque) 
protocole permette 10 000 systèmes autonomes et 100 000 réseaux. Ces 
nombres ont été largement dépassés mais il n'est pas garanti, loin de 
là, que cette croissance pourra durer éternellement. En 2001, Babylon 
s'inquiétait pour l'épuisement de l'espace de numérotation des systèmes 
autonomes (16 bits à l'époque) et cette inquiétude se retrouve dans 
notre RFC en section 3.1.2.4.3. Le RFC a finalement une note disant que 
le déploiement du RFC 4893 est en train de résoudre ce problème mais 
que ce déploiement prend plus de temps que prévu.

Dans tout exercice d'ingéniérie, le plus dur n'est pas en général de 
définir les buts (« Que ça marche bien ! Que ça ne soit pas cher ! Que 
n'importe qui puisse s'en servir ! Que cela fasse le café ! ») mais les 
« non-buts », ce qu'on renonce à obtenir car cela nous entrainerait 
trop loin et condamnerait le projet. Il est rare que les non-buts 
soient explicites, car cela focaliserait la critique. Mais le RFC 1126 
avait une telle section, la numéro 4, analysée en section 3.1.3 de 
notre RFC 5773. Par exemple, le RFC 1126 expliquait que la connectivité 
de tous n'était pas un but. En effet, elle nécessite la coopération de 
systèmes autonomes intermédiaires, coopération qui ne peut pas être 
obtenue par des moyens techniques. Ce simple non-but déclenche une 
grande discussion dans le RFC 5773 en section 3.1.3.1. N'est-il pas 
contraire à la mission de connectivité totale de l'Internet ? Le RFC 
1126 n'était-il pas excessivement prudent car il avait été écrit dans 
un monde où IP n'était pas encore le protocole universel qu'il était 
devenu en 2001 ? (Et qu'il n'est plus depuis que IPv4 et IPv6 
coexistent.) Faut-il chercher la connectivité universelle (qu'on n'a 
pas, même avec IPv4 seul, notamment à cause du NAT) ou le « routage 
universel » ?

De même, la répartition de charges était considérée par le RFC 1126 
comme un nom but, même si la section 3.1.3.3 du RFC 5773 fait observer 
que le désir de faire passer le trafic d'un domaine par plusieurs 
fournisseurs est une des causes de la désagrégation des préfixes 
annoncés, et donc de la croissance de la table de routage.

La section 3 remet les choses dans le contexte de l'époque. En 1989, 
lorsque le RFC 1126 a été écrit, la famille de protocoles OSI était 
encore considérée sérieusement par certains (elle sera abandonnée au 
début des années 1990, sans jamais avoir connu de déploiement 
significatif). Le développement de BGP s'est donc fait dans un contexte 
marqué par la présence d'un concurrent, IDRP (alias ISO 10747, section 
3.2 de notre RFC). La section revient donc sur l'histoire tourmentée 
(et parfois contestée) de cette époque, marquée par l'émergence du 
concept de système autonome et par celle de l'idée de routage 
non-hiérarchique. Parmi les documents importants cités par le RFC, il y 
a, par exemple, "Internet Architecture Workshop: Future of the Internet 
System Architecture and TCP/IP Protocols 
(http://www.eecis.udel.edu/~mills/database/papers/inarc.pdf)" ou bien 
le chapitre 14 (http://www.interisle.net/OSN/Chapter_14.pdf) du livre 
"Open Systems Networking (http://www.interisle.net/OSN/OSN.html)". Le 
RFC considère que, si IDRP n'a jamais été réellement déployé, du moins 
certaines des idées qu'il contenait ont inspiré les développements dans 
le monde Internet. (Beaucoup d'autres ont été abandonnées : pensez au 
chapitre sur les non-buts. Comme tous les protocoles OSI, IDRP ne 
pouvait pas résister à la conception en comité, où toute fonction 
demandée était forcément incluse, de peur de fâcher quelqu'un.) 
D'autres idées d'IDRP, comme l'utilisation de certificats X.509 pour 
signer les annonces, n'ont pas encore percé, bien qu'elles soient 
régulièrement évoquées pour BGP.

BGP a donc suivi son bonhomme de chemin, première version dans le RFC 
1105 en juin 1989, deuxième dans le RFC 1163, en juin 1990, troisième 
dans le RFC 1267 publié en octobre 1991 et enfin quatrième dans le RFC 
1771 en mars 1995 (BGP-4 est désormais normalisé dans le RFC 4271). 
IDRP est, lui, bien oublié, il n'a même pas d'article dans Wikipédia .

Parmi les autres efforts pour développer un mécanisme de routage 
inter-domaine, une place particulière doit être faite à Nimrod 
(http://ana-3.lcs.mit.edu/~jnc/nimrod/) (RFC 1753 et RFC 1992, section 
3.3 de notre RFC). Le projet Nimrod, de 1994 à 1996, visait à créer une 
architecture de routage complètement nouvelle. S'il n'a pas débouché, 
les idées explorées à ce moment ont néanmoins beaucoup influencé les 
recherches ultérieures. Par exemple, Nimrod, contrairement à pas mal de 
projets « table rase » qui croient naïvement qu'on les laissera tout 
détruire et repartir de zéro, mettait explicitement au premier plan la 
nécessité d'être *déployable progressivement*, c'est-à-dire de ne pas 
rester bloqué dans le dilemne de l'œuf et de la poule, où personne 
n'adopte le nouveau système car il n'y a aucun intérêt à le faire, tant 
qu'on reste tout seul. Cette exigence de déploiement progressif reste 
essentielle aujourd'hui : l'Internet n'est plus un jouet de chercheurs, 
on ne peut plus l'arrêter pour voir, ni imposer un changement d'un seul 
coup, comme l'avait été l'abandon de NCP.

À noter que l'architecture de Nimrod faisait partie des projets 
concurrents pour le système « IPng », qui devait prendre la suite 
d'IPv4. Trop ambitieux, Nimrod avait été rejeté au profit du futur IPv6 
qui se limitait au format des paquets IP et ne tentait pas de réformer 
l'architecture de routage inter-domaine (qui reste donc la même qu'avec 
IPv4).

Si Nimrod est relativement connu des gens de l'IETF, PNNI, résumé en 
section 3.4, l'est beaucoup moins. Il venait des travaux de l'"ATM 
forum" et n'avait guère eu de succès, peut-être parce que trop lié à 
une architecture vite dépassée, ATM.

Le travail des chercheurs sur le routage interdomaine ne s'est jamais 
arrêté. La section 4 est donc consacrée aux travaux récents en ce 
domaine. Ces recherches sur un objet très mouvant, le gigantesque 
Internet d'aujourd'hui, doivent s'adapter sans cesse. Ainsi, rappelle 
notre RFC, la connexion d'un site à plusieurs FAI devient de plus en 
plus fréquente et il est urgent de trouver un mécanisme qui permette de 
la faire dans de bonnes conditions.

Parmi les travaux de recherche des dernières années, le RFC cite 
NewArch (http://www.isi.edu/newarch/) (section 4.2). Datant de 
2000-2001, financé par une agence gouvernementale états-unienne, 
NewArch avait, dans son cahier des charges, des préoccupations 
inquiétantes comme la protection des rapaces détenteurs de « propriété 
intellectuelle » ou comme la nécessité de développer des systèmes de 
surveillance plus perfectionnés.

Sans doute trop récents, puisque l'essentiel du RFC 5773 avait été fait 
avant 2006, les projets comme Clean Slate et GENI qui, pour l'instant, 
ont surtout produit du vent, ne sont pas mentionnés.

Quel est l'état de la réflexion sur les limites et défauts du modèle 
actuel de routage inter-domaine ? La section 5 répond à cette question, 
dans la suite du RFC 3221. Parmi les nombreux problèmes identifiés dans 
cette section, la propagation mondiale des erreurs locales (section 
5.3), magnifiquement illustrée par l'attaque involontaire contre 
YouTube (http://www.bortzmeyer.org/pakistan-pirate-youtube.html), 
l'absence de solution satisfaisante à la forte demande des utilisateurs 
pour les connexions à plusieurs FAI (section 5.4 et RFC 4116), la 
question de la sécurité, puisque n'importe quel routeur BGP peut 
annoncer n'importe quelle route (section 5.11, RFC 4593 pour le cahier 
des charges des efforts actuels visant à normaliser une solution et 
certification et, pour un exemple récent d'alerte de sécurité, la 
faille Kapela & Pilosov 
(http://www.bortzmeyer.org/faille-bgp-2008.html).

Comme toutes les listes de problèmes, celle-ci peut donner l'impression 
que BGP est fichu et on peut se demander, en la lisant, pourquoi 
l'Internet marche encore. C'est parce que les faiblesses de BGP, 
notamment la propagation mondiale de n'importe quelle annonce, même 
fausse, même mensongère, sont aussi ses forces. Elles permettent à tous 
de détecter le problème et de réagir rapidement 
(http://www.bortzmeyer.org/securite-bgp-et-reaction-rapide.html). C'est 
bien à tort que le RFC prétend, dans sa section 5.14, qu'il n'existe 
pas d'outils de détection en temps réel des changements BGP, il y en a 
au contraire une pléthore (http://www.bortzmeyer.org/alarmes-as.html) !


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à