Project

General

Profile

Bibliographie du projet

http://framapad.org/1OuW0Br2vr

Agrégation en général

Deux objectifs :
augmenter la bande passante
redondance (failover)

Enjeux :
répartition efficace (utiliser au mieux la capacité totale)
résilience rapide et transparente en cas de panne (failover)

Agrégation locale

Fonctionement master/slave :
les slaves sont les liens physiques (les différents points de sortie)
le master décide de la répartition du trafic entre les slaves

Peut s'opérer à plusieurs niveaux :
niveau 1 : ex: utiliser plusieurs cannaux wifi ex: MiMo (hors-contexte pour nous)
niveau 2 "Bonding", norme IEEE http://en.wikipedia.org/wiki/802.1AX-2008
niveau ?? MLPP
IPtables mark random

Approches logicielles :
Agrego http://code.google.com/p/agrego/

Agrégation via un TUN : tout ce qui est écrit dans l'interface tun est gérée par agrego

Agrégation

Le chanel bonding

http://downloads.sourceforge.net/project/bonding/Documentation/12%20November%202007/bonding.txt?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fbonding%2Ffiles%2FDocumentation%2F12%2520November%25202007%2F&ts=1317896490&use_mirror=heanet

Il s'agit sous linux du module "bonding". Une interface virtuelle est présentée au système, elle utilise de manière sous-jacente N interfaces physiques, soit en load-balancing, soit en fallback. Il faut bien être conscient que l'agrégation doit-être mise en place des 2 côtés.

Soit :
Fallback (mode 2) : une seule interface est utilisée, avec basculement en cas de panne ;
Load-balancing (inclut de base la redondance)
  • mode 0 : round-robin
  • mode 2 : toute communication avec un hôte pair (= adresse MAC du correspondant) utilisera une et une seule interface (choisie de manière déterministe par XOR). Les cartes utilisent leurs adresses MAC physiques (2 différentes).
  • mode 3 : broadcast (inintéressant)
  • mode 4 (802.3ad) load-balancing intelligent : prend en compte dynamiquement la capacité des liens et leur duplex (intéressant pour les liens sans-fil). Le switch doit supporter le mode 802.3ad. Nécessite un switch compatible
  • mode 5 : une seule addr. MAC, on envoie en round-robbin, on ne reçoit que sur une carte
  • mode 6 : 2 addr. MAC différentes : l-b en émission (idem que 5) et réception aussi, en émettant des réponses ARP pour assigner tel ou tel pair à telle ou telle interface
  • Fallback simple :
  • mode 1

La détection de panne se fait par le module de bonding, de deux manières différentes :
vérifier que la liaison de niveau 1 est "branchée" (MII), passif, ne génère pas de trafic réseau ;
vérifier que la passerelle répond (via une requête ARP) (actif, consomme de la BP). En mode 0 ou 2, les réponses ARP n'arrivent que sur un des esclaves si le switch ne prend pas soin de distribuer les réponses ARP sur tous les liens.

/!\ Il y aurait problème à utiliser du bonding avec DHCP (car correspondances MAC/IP instables ?, cf doc) (pas très grave, le DHCP ne se pose que pour les clients finaux).

Les deux problématiques évoquées plus tôt nécessitent l'usage d'un protocole pour que les liens communiquent entre eux (s'informer de leur état, éventuellement de leur débit…).
-> LACP (ieee, normalisé) PaGP (cisco, proprio).

Agrégation distante

Métriques
propagation des métriques
répartition (paquet par paquet, destination/destination… ?)

Point technique

Tun et tap sont des cartes réseaux virtuelles. TAP opère au niveaux deux. TUN opère au niveaux 3. TAP est utiliser pour créer un réseau bridgé alors que TUN est utilisé pour le routage.
Source: http://en.wikipedia.org/wiki/TUN/TAP

Implémentation technique

Utilisation d'IPTables pour router (détermine le next-hop à l'aide de la pondération).
Utilisation d'IPv6 et de sa gestion native d'aggrégation (à approfondir)

métrologie

Que mesurer ?
On mesure au niveau du paquet. (et non d'un flot). Le paquet étant l'unité élémentaire traitée par la couche « réseau ».
Bande passante ?
Ping ?
Jitter ? //Variation du délai du transfert de l'information

Source

http://igm.univ-mlv.fr/~dr/XPOSE2006/PICARD/definitions.htm

h2.Pourquoi mesurer la capacité et la charge des liens ?

Le but est de pouvoir hiérarchiser les routes vers internet en fonction de leur capacité. Une mesure ultra-précise n'a pas forcément d'intérêt, en revanche,

Deux choses :
  • mesurer la capacité du lien:
  • La bande passante du lien
  • mesurer la charge du lien:
  • La bande passante utilisé à l'instant t

Il n'est pas dit que la prise en compte de la charge du lien soit pertinente : si le système a autorité sur la répartition de charge, la charge devrait être distribuée proportionellement à la capacité…

mesure de la capacité du lien

*Passif naïf *, on se fie à ce que donne le driver (informations reportées par iwconfig, ou dans sysfs), à quelle vitesse se fait la synchro en somme. Problème, c'est très approximatif et c'est plus une borne supérieure qu'autre chose…

Passif estimé on peut certainement prendre en compte le SNR d'une liaison, des articles sur le sujet :
http://citeseer.ist.psu.edu/viewdoc/download;jsessionid=D8D74970F81D4957F250F4357BB6CCC9?doi=10.1.1.15.5673&rep=rep1&type=pdf (dont approche adaptative)

-> Quel modèle utilisent les protocoles de routage mesh de type BATMAN/OLSR ?

Une comparaison de l'efficacité des différentes méthodes : http://www.thlab.net/~thsalon/papers/wons09.pdf

Hypothèse de travail

Tous les clients/bornes ont une IP public
La répartition de charge se fait de manière aléaloitre distribué de manière équiprobable.
La pondération (métrique), s'effectue sur la capacité total d'un lien (et non la capacité disponible d'un lien)

Fonctionnement général

Simple: Sorties Internet de Rhizome relié par tunnel PPP (couche 2) vers une machine de Tetaneutral.net. La machine tetaneutral fait du routage BGP. Donc annonce BGP.
Réel: tunnel transporte IP(passerelle dans le coeur tetaneutral)+UDP/TCP+IP(paquet original). Machine fait toujours du BGP.

Réseau de test

Réseau N: 192.168.0./24&

ToDo: regarder comment fonctionne BATMAN
Questions auxquelles il nous faut répondre concernant BATMAN:
De quelle manière BATMAN pondère-t-il les liens radio ?
BATMAN conserve-t-il une liste des routes possibles vers une adresse (ce qui nous serait utile pour faire du load-balancing) ou seulement la meilleure ?
BATMAN fait-il du load-balancing (pas à ma connaissance mais à creuser)
Comment fonctionne le routage LAN (radio/filaire) -> WAN (sachant que BATMAN a une gestion de l'annonce des points de sortie vers internet) ? Les liens vers internet (ex: xDSL) sont-ils pondérés en eux-même ou seul le réseau radio est pris en compte pour trouver le meilleur point de sortie vers internet ?

Annexe : différents liens sur le fonctionnement 802.11x

Des vitesses de synchro et de restransmission, cas pratique : http://mobilesociety.typepad.com/mobile_life/2008/05/sniffing-wifi-p.html