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

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

Auteur(s) du RFC: E. Haleplidis (University of Patras), K. Ogawa (NTT 
Corporation), W. Wang (Zhejiang Gongshang University), J. Hadi Salim (Mojatatu 
Networks)


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



C'est bien joli de spécifier des protocoles réseau, encore faut-il 
qu'ils soient implémentés. Une des raisons pour lesquels les protocoles 
de la famille TCP/IP ont battu à plate couture les protocoles ISO, 
pourtant soutenus par divers moyens bureaucratiques, est l'accent mis 
sur la disponibilité de programmes mettant en oeuvre les spécifications, 
les RFC. Ces programmes permettent de vérifier que la norme est 
implémentable (contrairement à beaucoup de normes qui sont restés sur 
le papier car irréalistes) et que les différentes implémentations 
*interopèrent*. Ce RFC 6053 est le rapport décrivant trois mises en 
oeuvre du protocole ForCES ("Forwarding and Control Element Separation", 
un protocole de communication à l'intérieur d'un routeur, entre ses 
divers éléments). Il suit donc les règles et principes du RFC sur les 
rapports d'implémentation, le RFC 5657.

Un petit rappel d'abord. ForCES ("Forwarding and Control Element 
Separation"), normalisé dans le RFC 5810, définit un modèle (RFC 3746) 
où le routeur est composé de *CE* ("Control Element") qui pilotent des 
*FE* ("Forwarding Element"). Les CE parlent les protocoles de routage 
comme OSPF, les FE font la transmission des paquets. Entre CE et FE, 
les messages ForCES peuvent être transmis par plusieurs protocoles, le 
plus utilisé (car le seul qui soit obligatoire) étant SCTP-TML 
("SCTP-based Transport Mapping Layer") normalisé dans le RFC 5811 et 
fondé sur SCTP. (Voir la section 2 pour des rappels plus complets.)

Place aux tests, maintenant. Trois mises en oeuvre indépendantes ont été 
testées (section 3) : celle de NTT, celle de l'université de Patras, et 
celle de l'université de Zhejiang Gongshang (aucune des trois n'est 
distribuée publiquement pour l'instant). Les tests ont été globalement 
couronnés de succès, la plupart des bogues ont été corrigées 
immédiatement, les manques ayant été identifiés et les programmeurs 
ayant promis qu'ils les combleraient bientôt. Le test 
d'interopérabilité a été fait en juillet 2009. Les chinois n'étaient 
pas présents physiquement sur le lieu du test, ce qui a été l'occasion 
de tester ForCES sur une longue distance, et à travers le NAT. Outre 
les trois implémentations citées, le test mettait en jeu des 
modifications locales de deux analyseurs réseaux répandus, Wireshark et 
tcpdump. (Le travail sur Wireshark a été publié dans « "Method and 
implementation of building ForCES protocol dissector based on 
wireshark" » par Feng Luo, Ligang Dong et Fenggen Jia, à la conférence 
"Information Management and Engineering (ICIME), 2010". Le "patch" se 
trouve dans la bogue #3534 
(https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3534). Quant à 
tcpdump, la gestion de ForCES a été intégrée à partir de la 4.1.1. Vous 
pouvez voir des exemples en ligne 
(http://www.ietf.org/mail-archive/web/forces/current/msg03688.html).)

Comment se fait un tel test d'interopérabilité ? La section 4 résume la 
méthodologie suivie. Les développeurs ont d'abord rempli un 
questionnaire où ils devaient indiquer quelle étaient les fonctions de 
ForCES que leur programme gérait. Les différents programmes ont ensuite 
été mis l'un en face =de l'autre dans le labo et ont échangé des 
messages. Le bon fonctionnemement a été vérifié à la fois par les 
réactions des programmes et par l'examen des "sniffers". Quelques 
raccourcis ont été pris (section 5). Par exemple, bien qu'IPsec soit 
obligatoire pour SCTP-TML, il n'a pas été testé, en considérant 
qu'IPsec était un protocole suffisamment mûr pour qu'on puisse se 
dispenser de le tester.

La section 6 donne tous les détails des tests, des messages testés, et 
de leurs résultats. Par exemple, un des tests était d'activer le 
"heartbeat" (l'envoi de messages réguliers, permettant de vérifier que 
le système fonctionne toujours) sur un FE (section 6.1.2.6), puis de 
changer l'intervalle d'émission des battements.

On l'a dit, le test a été globalement réussi. Mais il y a eu quelques 
petits problèmes, listés dans la section 6.2.3. Par exemple, une 
ambiguité est apparue dans la section 4.2.1.2 du RFC 5811 (qui n'était 
pas encore publié au moment du test, et qui a finalement été publié en 
corrigeant l'ambiguité) quant au niveau de priorité à donner à une 
réponse lorsque la question n'avait pas le niveau de priorité standard. 
Il y avait aussi de franches bogues, comme le FE et le CE attendant 
tous les deux une action et se bloquant mutuellement ou bien comme un 
mauvais calcul du champ « longueur » des messages (qui ne doit pas 
inclure les bits de remplissage). Il y avait aussi des problèmes qui 
n'étaient de la faute, ni de la norme, ni du programme mais qui 
reflétaient des limites de ForCES (comme la détection trop lente, dans 
certains cas, des coupures de la liaison entre CE et FE : SCTP-TML 
n'est pas forcé de réagir en temps réel à une telle coupure).

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

Répondre à