Bonding avec vlan

Bonjour,

Je suis confronté à un problème pour aggréger des interfaces vlan. Je m’explique :

j’ai deux liaisons transportées en vlan que je dois aggréger pour doubler les débits et assurer une tolérance aux pannes.

Par conséquent, j’ai monté un bond avec eth0.100 et eth0.101 sur les deux points de terminaison des liaisons. La continuité se fait correctement. En revanche, si je perds une liaison (vlan 100 par exemple), le bond ne voit pas que le lien est HS. L’interface slave eth0.100 reste UP dans l’aggrégat. Les flux continuent donc a être émis sur l’interface ce qui génère donc des pertes de paquets.

Avez-vous déjà rencontré ce type de problème et si oui, avez-vous pu résoudre cela?

Cordialement,

En quel mode le bonding est il fait? Sinon j’ignore comment cela se passe pour un vlan au niveau de la détection de panne. Si celle ci se fait sur l’état du lien physique, ça coincera car sur le vlan, il n’y a qu’un lien physique. Je pense qu’il faut regarder de ce coté en jouant sur les modes du bonding. Attention, je n’ai jamais fait du bonding sur du vlan donc je peux dire des âneries.

Merci pour la réponse rapide.

J’ai testé sur tous les types de bond et j’obtiens le meme résultat.

Réctification, j’étais sur un mode miimon. je suis passé en détection ARP et là, tout est passé down alors que les liaisons sont UP. Sur un tcpdump, je vois les ARP request dans les deux sens mais je n’ai pas de ARP reply. Le bond ne semble donc pas recevoir ce ARP.

Je n’en sais pas assez sur les vlans pour t’aider efficacement, je suspecte que l’écrouelement d’une carte est liée au lien actif ou non, et donc ne marche pas sur une interface VLAN ou l’interface physique est toujours active. J’essayerais bien le mode 5 ou 6 (plutôt le 6) mais bon. Si Pascal Hambourg passe par là, je pense qu’il pourrait t’aider.

Ayant manipulé un peu de bonding au boulot, je ne comprends pas pourquoi tu agrèges deux fois la même interface physique eth0 ?
(certes ce sont des vlans différents mais c’est le même port physiquement).

Au boulot j’agrégeais par exemple eth0 et eth1 qui sont deux interfaces physiquement distinctes fonctionnant chacune à 1Gbps donc cela me créé une interface nommée bond0 redondée et à 2Gbps (après cela dépend du mode de bonding choisit).

Si le goulot d’étranglement est après, cela peut être rentable.

François : En fait j’ai assez peu joué avec l’agrégation de liens, et c’était il y a longtemps.

skalarache : Qu’entends-tu exactement par “si je perds une liaison” ? Pourrais-tu décrire l’architecture entre les deux points de liaison ? Comme les deux interfaces VLAN sont sur la même interface physique eth0, j’imagine qu’il ne s’agit pas juste d’un câble ethernet entre deux machines.

Bonjour,

Je suis actuellement en stage chez un opérateur et l’objectif est de réaliser une offre d’agrégation de liens. Nous collectons des liens SDSL via un revendeur de liens internet. Ces liens SDSL nous sont livré vlan. Sur nos infrastructures, ces liaisons sont transportées via un vlan particulier. Par conséquent, le lien SDSL A arrive sur nos infrastructures sur le vlan A et le lien SDSL B sur le vlan B. Pour le transport dans notre backbone, ces deux vlan deviennent vlan1000.A (qinq) et vlan1000.B. Ces deux liens arrivent sur un routeur linux debian qui va servir a aggréger les liens. J’ai donc deux interfaces, eth0.1000.A et eth0.1000.B. Je monte un bond avec ces deux interfaces en monitoring ARP et mode 0.
Coté client, j’ai la meme chose. Les sdsl sont connecté à un switch qui transporte en vlan jusqu’au routeur, faisant le vlan A et le vlan B. J’aggrège les deux vlan via le bond.

Pour mes tests, j’ai monté deux machines virtuelles. Les deux ont les interfaces eth0.1000.10 et eth0.1000.20 qui sont aggrégé via bond. Les interfaces restent down dans l’aggrégat. De ce que je vois, les paquets ARP Request sont correctement émis mais personne n’y répond.

Merci pour votre aide.

Cdt

Petite question, j’ai une différence avec ce que je peux lire sur internet dans les interfaces slaves:

Slave Interface: eth2.1000.10
MII Status: down
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:fe:93:55
Slave queue ID: 0

J’ai “Speed” et “Duplex”. Cela ne pourrait-il pas venir d’un paramètre manquant ?

Tu veux dire que les lignes Speed et Duplex ne contiennent pas de valeurs ?

J’ai fait un essai avec deux machines réelles Debian Squeeze reliées par un bête switch fast ethernet.

La détection par miimon n’est pas applicable si l’interruption peut se situer au-delà du lien physique.
J’ai utilisé comme slaves du bond une interface VLAN simple + une interface VLAN dans VLAN, sur la même interface physique.

A priori ça marche. Les requêtes et réponses ARP circulent, et l’état des slaves est actif. Si je désactive un slave, l’état du slave en face passe inactif au bout de quelques secondes.

Le seul problème que j’ai eu est qu’au moins une des interfaces (ou son pilote) ne supportait pas les trames de 1508 octets nécessaires pour le double VLAN avec charge utile max en émission ou réception; j’ai donc dû réduire le MTU des bonds à 1496 pour que la taille des trames ethernet sur les liens physiques ne dépasse pas 1504 octets.