Cela semble très bien en principe.
Merci Stéphane pour l'effort de communication au sujet de ForCES.

Est-ce qu'il y a qqpart une présentation plus facile à avaler pour des étudiants ( bac+4/5 )?

William


Le Fri, 19 Mar 2010 09:24:33 +0100, Stephane Bortzmeyer <bortzme...@nic.fr> a écrit:

Avec la publication hier des RFC 5810 (le protocole), 5811 (le transport),
5812 (le modèle de routeur), etc, le groupe de travail ForCES de
l'IETF a quasiment terminé son travail qui était de normaliser un
protocole de communication entre les éléments d'un routeur, permettant
de créer des routeurs modulaires et de faire son marché librement.

Reste plus qu'à l'implémenter et à le déployer :-)

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


Ce RFC conclut, après un très long travail, les efforts du groupe de
travail Forces (http://tools.ietf.org/wg/forces) de l'IETF. Ce groupe
était chargé de produire un protocole permettant la communication entre
les différents éléments d'un routeur, afin de permettre d'acheter ces
éléments chez des vendeurs différents. Un tel protocole pourrait
permettre d'ouvrir le monde actuellement très fermé des routeurs de
haut de gamme, mais il n'est pas sûr du tout qu'il soit un jour
effectivement mis en &#339;uvre.

Le travail de Forces avait commencé il y a de nombreuses années et le
premier RFC, le RFC 3654 avait été publié en 2003. Maintenant, grâce à
ce RFC 5810 (et quelques compagnons comme le RFC 5811 sur le protocole
de transport), le travail est quasiment terminé et la partie
Normalisation de Forces avec lui. Il reste à l'implémenter et à faire
en sorte qu'il soit disponible dans les routeurs...

Conformément au cahier des charges du RFC 3654, et au cadre général de
Forces exposé par le RFC 3746, ce nouveau protocole permet la
communication entre deux catégories d'élements qui composent un
routeur, les CE ("Control Element") et les FE ("Forwarding Element").
(La section 3 rappelle le vocabulaire de Forces.) Les premiers, les CE,
font tourner des algorithmes compliqués comme OSPF ou BGP, ils prennent
des décisions « de haut niveau » et les seconds, les FE, font le
travail « bête » mais ultra-rapide, de commutation de chaque paquet.
Aujourd'hui, dans un routeur (Forces dit NE, pour "Network Element", et
pas routeur) haut de gamme, le CE est typiquement un processeur
standard, avec un système d'exploitation (parfois un Unix),le FE est un
ASIC aux capacités bien plus limitées mais aux performances
fantastiques. Comme le protocole de communication entre le CE et le FE
est privé, pas question de faire tourner du logiciel libre sur le CE,
pas question d'acheter le processeur à un vendeur et les ASIC à un
autre. C'est ce problème que Forces veut résoudre.

Dans Forces, la relation entre les CE et les FE est simple : le CE est
le maître et le FE l'esclave. Les informations nécessaires au FE sont
regroupées dans des LFB ("Logical Function Block") dont la description
est faite en XML (cf. RFC 5812). Le protocole lui-même n'utilise pas
XML. Le protocole ne spécifie que la communication entre FE et CE, pas
celles qui pourraient exister entre FE ou bien entre CE, ni celle qui
relie les CE à leur gérant (l'interface d'administration du routeur).
(La section 4 rappelle le cadre général de Forces, exposé dans le RFC
3746.) Le protocole Forces est également responsable de l'établissement
et de la terminaison des associations entre un routeur (NE) et des CE
ou FE (section 4.4). Une fois l'association faite, le CE envoie des
ordres au FE, ordres exprimés avec le protocole Forces, et encapsulés
dans un protocole de transport, le TLM ("Transport Layer Mapping") qui
fait l'objet d'un RFC séparé (RFC 5811).

La section 4.3.1 du RFC détaille la question de l'atomicité des
requêtes Forces. Le protocole permet des requêtes atomiques (toutes
sont exécutées, ou bien aucune ne l'est, section 4.3.1.1.1) mais aussi
des requêtes exécutées séquentiellement jusqu'au premier échec (section
4.3.1.1.3) ou encore des requêtes exécutées même si la précédente était
un échec (section 4.3.1.1.2). Mieux, Forces permet des transactions
ACID (section 4.3.1.2).

L'encodage des paquets sur le câble fait l'objet de la section 6. Tous
les paquets ont un en-tête commun, suivi d'un ou plusieurs TLV. Parmi
les champs de l'en-tête commun, un numéro de version sur 4 bits
(actuellement 1), le type du message, sur 8 bits (les différents types
sont décrits en section 7 et le tableau complet est dans l'annexe A.1)
et les adresses (nommées ID) de l'expéditeur et du destinataire. Ces
ID, ces adresses, sont codés sur 32 bits et doivent être uniques à
l'intérieur du routeur (mais pas forcément pour tout l'Internet).
Rappelez-vous qu'un des buts de Forces est de pouvoir gérer des
équipements très complexes, où CE et FE ne sont pas forcément dans la
même boîte. À noter que les adresses des CE et des FE sont séparées
(les premières commencent toujours par 00 et les secondes par 01).

Une fois passé l'en-tête commun, viennent les TLV, décrits dans la
section 6.2. Le choix de TLV permet de simplifier l'analyse des
messages, certains FE n'apprécieraient en effet pas forcément de devoir
analyser du XML. À noter que le champ Valeur d'un TLV peut contenir
d'autres TLV.

Le contenu légal d'un message (quels TLV, en fonction de son type) est
le sujet de la section 7. Par exemple (section 7.1.6), si le type est
Config (créer ou bien mettre à jour un attribut du FE) ou Query
(récupérer la valeur d'un attribut du FE), il ne peut pas y avoir de
TLV de réponse dans le message (mais il y a un TLV PATH-DATA qui
contient l'identificateur de l'attribut qu'on vise). Si le type est
QueryResponse (réponse à une question posée), en revanche, le TLV de
réponse (section 7.1.7) est obligatoire. Comme le protocole Forces est
très asymétrique (les CE commandent et les FE obéissent), la plupart
des messages ne peuvent être émis que dans une seule direction (par
exemple, un GET ne peut être que d'un CE vers un FE, le FE, en bon
subordonné, ne doit pas poser des questions à son supérieur). Les
questions et réponses sont détaillées en section 7.7 et un registre
IANA
(http://www.iana.org/assignments/forces-parameters/forces-parameters.xht
ml) stocke les valeurs possibles. L'annexe C donne plusieurs exemples
d'encodage.

La traditionnelle section sur la sécurité est la 9. Les menaces contre
Forces ont été décrites dans le RFC 3746. Forces peut être configuré
avec zéro sécurité (section 9.1), notamment si tous les composants, CE
et FE, sont dans une seule boîte fermée (ce qui est le cas de la
plupart des routeurs aujourd'hui). Autrement, la sécurité dépend
essentiellement des services du TML (section 5).

Notre RFC 5810 ne normalise que les bits qui seront transportés entre
CE et FE, pas la manière dont ils seront encapsulés dans un protocole
de transport. La section 5 ne spécifie pas de telles règles mais expose
le cahier des charges que devront respecter celles-ci (appelé le TML
pour "Transport Mapping Layer"). Au moins une encapsulation est
obligatoire pour Forces, celle du RFC 5811 mais d'autres sont
possibles.

Parmi les exigences de cette section, la fiabilité de la délivrance des
paquets (au moins pour certains d'entre eux), la sécurité (au minimum
la possibilité d'authentifier CE et FE, de préférence avec des
mécanismes existants comme TLS ou IPsec), le contrôle de congestion
(cf. RFC 2914), la possibilité de haute disponibilité (section 8), etc.
Je ne connais pas encore d'implémentation de niveau « production ». Ce
n'est pas un travail évident, Forces est riche et complexe, peut-être
trop.

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


--

William Gacquer


Architecte Réseau


France Citévision
---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à