Bon, le cahier des charges est fini, ya plus qu'à terminer la spec' et
développer.

RFC 7337 : Content Distribution Network Interconnection (CDNI) Requirements

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

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

Auteur(s) du RFC: K. Leung (Cisco), Y. Lee (Comcast)


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


Le projet IETF CDNI ("Content Delivery Network Interconnection") vise à 
permettre l'interconnexion de CDN, ces réseaux de serveurs répartis 
dans le monde qui servent à amortir la charge des serveurs Internet les 
plus populaires. CDNI a été expliqué dans le RFC 6707 et trois études 
de cas ont fait l'objet du RFC 6770. Ce troisième RFC du projet décrit 
les exigences formelles, le cahier des charges du projet. (Le cadre 
général de la solution technique adoptée est dans le RFC 7336.)

Le projet est important car, aujourd'hui, les CDN ne coopèrent pas, en 
partie en raison du manque d'interfaces standards. Si un CDN très 
présent en Amérique veut s'associer avec un autre CDN fort en Europe, à 
la grande joie de leurs clients respectifs, qui auront ainsi un 
meilleur service dans les deux cas, ils doivent développer un système 
ad hoc. Le but de CDNI est de développer cette interface standard (RFC 
7336), de manière à ce que plusieurs CDN puissent coopérer et 
apparaître à l'utilisateur comme un seul service. Dans le futur, une 
fois le projet complété, le CDN d'origine (« CDN amont ») pourra faire 
en sorte que le CDN qui l'aide (« CDN aval ») ait accès au même contenu 
et puisse le servir lui-même aux clients.

Les exigences listées par ce cahier des charges sont classées par 
priorité : « haute » signifie que cette exigence est impérative, même 
si elle est compliquée à réaliser, « moyenne » que l'exigence est 
importante, qu'elle doit être satisfaite sauf si, par sa complexité, 
elle entraîne un retard dans le projet et, enfin, « basse » est utilisé 
pour les exigences certes utiles mais pas nécessaires au projet.

Les exigences sont rangées selon l'interface à laquelle elles 
s'applique. Une interface (RFC 7336) est un ensemble de fonctions du 
CDN, qu'on peut appeler en utilisant des mécanismes normalisés, et qui 
correspondent à un ensemble de services proches. Par exemple, LI 
("Logging Interface") regroupe les services de journalisation, 
permettant à un CDN amont d'avoir des informations sur l'activité d'un 
CDN aval associé.

Je ne vais pas ici recopier les nombreuses exigences, me focalisant sur 
celles de niveau élevé, donc impératives à satisfaire.

D'abord, en section 3, les exigences générales, indépendantes de 
l'interface. La solution ne doit évidemment pas nécessiter de changer 
les clients (exigence GEN-2), par exemple les navigateurs Web. Elle ne 
doit pas nécessiter que le fournisseur de contenu change son système de 
publication (GEN-3) : si celui-ci permet de publier dans un CDN, il 
doit permettre de profiter de l'interconnexion. Elle doit être assez 
abstraite pour que chaque CDN soit une « boîte noire » pour les autres, 
sans avoir besoin de publier de l'information interne. Elle doit 
marcher au moins lorsque la délivrance au client est faite en HTTP 
(exigence GEN-5, il existe d'autres protocoles - voir GEN-7 - mais 
moins cruciaux), et elle doit éviter de créer des boucles entre CDN et 
elle doit fonctionner même quand les références à une tierce partie 
sont cassées (exigence GEN-12), par exemple à cause du NAT ou du "split 
DNS".

Suivent en section 4 les exigences pour la CI. CI ("Control Interface") 
est l'interface qui contrôle les autres interfaces, par exemple pour 
les opérations de démarrage. Elle doit permettre au CDN amont de 
demander le nettoyage (la destruction de contenu, exigence CI-1), et 
elle doit fournir un mécanisme de rétroaction par lequel le CDN aval 
informe le CDN amont de ce qu'il a fait (CI-4).

En section 5, la RI ("Request routing indirection Interface") est 
l'interface vers le système de routage des requêtes. Elle doit 
fonctionner rapidement quelle que soit la taille du contenu (exigence 
RI-1) ce qui veut dire qu'il faut un mécanisme de redirection 
ultra-léger pour les objets de petite taille (ceux où le temps de 
redirection risque de dépasser le temps de transfert des données), et 
qu'il faut pouvoir choisir le compromis entre fraîcheur des données et 
rapidité. Pour les gros objets (exigence RI-2) où le temps de transfert 
sera long, il faut bien choisir le CDN d'où il sera servi et il faut 
donc que la solution permette un choix précis, lié aux caractéristiques 
de la requête. Autrement dit, un mode où on passe du temps à 
sélectionner la source des données, pour que le transfert aille ensuite 
plus vite.

Il faut aussi que cette redirection puisse être récursive (exigence 
RI-3), c'est-à-dire que la cible d'une redirection va elle-même suivre 
les éventuelles nouvelles redirections, et itérative (RI-4), 
c'est-à-dire que l'initiateur suive lui même les redirections 
multiples. Cela implique que le CDN aval reçoive du CDN amont toutes 
les informations nécessaires (exigence RI-8), comme l'origine 
géographique de la requête, les en-têtes HTTP, etc, et à l'inverse que 
le CDN aval transmette la réponse complète dans le cas d'une 
redirection (l'URI complet en HTTP, exigence RI-10).

En section 6, la FCI ("Footprint & Capabilities Interface"). Elle 
permet l'échange d'informations entre CDN, de manière à permettre le 
routage des requêtes (leur transmission au CDN le plus approprié) par 
l'interface RI. Si on compare RRI ("Request Routing Interface", une 
méta-interface qui regroupe FCI et RI) à IP, FCI est l'équivalent des 
protocoles d'échange de routes comme OSPF et RI est l'équivalent du 
"lookup" dans une table de routage.

La FCI doit au minimum permettre de communiquer au CDN amont que le CDN 
aval est prêt (exigence FCI-1). Idéalement (mais ces exigences sont 
seulement au niveau moyen, donc pas indispensables), il faudrait aussi 
qu'il puisse communiquer des méta-informations comme les formats et 
protocoles qu'il gère, son extension géographique, les protocoles de 
redirection, les capacités de journalisation, etc.

En section 7, l'interface MI ("Metadata Interface"), qui permet 
l'échange de métadonnées sur les contenus servis, comme les 
restrictions géographiques, les durées de vie des contenus, les 
limitations d'accès (par exemple, aux abonnés)... Pour cette interface, 
l'exigence de base (MI-1) est de permettre l'envoi d'informations 
depuis le CDN amont. Parmi ces informations, il y a évidemment 
l'endroit d'où le CDN aval doit tirer le contenu (exigences MI-5 et 
MI-6). Il faut pouvoir ajouter des métadonnées dans le CDN aval 
(exigence MI-7) et en retirer (MI-8). La granularité de ces métadonnées 
doit être au niveau d'un objet (MI-9) mais il faut aussi pouvoir 
regrouper les objets, de manière à gérer ces métadonnées plus 
facilement (MI-10), avec un système d'héritage entre les groupes 
d'objets (MI-11).

L'industrie du contenu étant ce qu'elle est, il n'est pas étonnant 
qu'une longue exigence MI-13 décrive toutes les conditions d'accès au 
contenu, filtrage selon les pays, selon les adresses IP, dans le temps, 
etc.

Enfin, en section 8, la LI ("Logging Interface"), qui permet de 
transmettre les informations sur l'activité du CDN, de manière à avoir 
des journaux d'activité. Le transports des informations de 
journalisation doit être fiable (exigence LI-1, pas question de se 
contentet de syslog sur UDP), doit être exhaustif (le CDN amont veut 
connaître tous les téléchargements faits à partir du CDN aval, exigence 
LI-2), le transferts des journaux doit pouvoir se faire en "batch" 
(LI-4), et utiliser un format standard (LI-6) et un transport standard 
(LI-7).

Il n'y a plus qu'à normaliser la sécurité (section 9). Bien sûr, la 
première exigence, SEC-1, est que toutes les opérations entre CDN 
soient sécurisables, même quand elles s'effectuent au dessus de 
l'Internet normal, non sécurisé. Il faut donc pouvoir fournir 
authentification, intégrité, et confidentialité. Mais il faut aussi se 
défendre contre les attaques par déni de service, dont les CDN sont 
souvent victimes (SEC-2).


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

Répondre à