Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
informatique:reseau:xdsl:xdsl_bonding [2017/11/17 11:30] – ben | informatique:reseau:xdsl:xdsl_bonding [2017/12/05 17:54] (Version actuelle) – ben |
---|
| |
<note> | <note> |
Dernière mise à jour : 14/11/2017 | Dernière mise à jour : 05/12/2017 |
</note> | </note> |
| |
<note tip> | <note warning> |
To do : | Cette solution ne fonctionne qu'avec un kernel 3.x côté serveur. Le monitoring ARP utilisé par le bonding ne fonctionne plus de la même façon avec un kernel 4.x et je n'ai pas eu le temps de tester/vérifier/faire fonctionner. |
| |
* uniformiser les confs OpenVPN entre le client et le serveur (monitoring ARP du bonding) | |
| |
</note> | Donc cette doc est destinée à un kernel 3.x côté serveur et 4.x côté client. |
| </note> |
| |
====== ADSL VPN Bonding ====== | ====== ADSL VPN Bonding ====== |
* Serveur type [[https://www.kimsufi.com/fr/serveurs.xml|Kimsufi]] ou [[https://www.online.net/fr/serveur-dedie#anchor-perso|Dedibox]] : entre 7 et 10€ / mois | * Serveur type [[https://www.kimsufi.com/fr/serveurs.xml|Kimsufi]] ou [[https://www.online.net/fr/serveur-dedie#anchor-perso|Dedibox]] : entre 7 et 10€ / mois |
* Raspberry : 50€ (avec boitier, alim et carte SD) | * Raspberry : 50€ (avec boitier, alim et carte SD) |
| |
| |
===== OpenVPN ===== | |
| |
<note warning>__Pourquoi 2 configs OpenVPN différentes entre le client et le serveur ?__ | |
\\ | |
\\ | |
Le bonding utilise des requêtes ARP pour vérifier la connectivité des liens et activer/désactiver à la volée les interfaces tapX . Or avec un kernel 4.9, une debian jessie et/ou strech les requêtes ARP ne passent plus (je n'ai pas encore trouvé pourquoi). De fait, on a bien l’agrégation de liens mais plus de failover si un des liens ADSL tombe. Le bonding n'est pas notifié de la perte de liens et 1 paquet sur 2 est envoyé sur l'interface down. On se retrouve alors avec un paquet sur 2 de perdu. | |
\\ | |
\\ | |
Pour résoudre ce souci, on laisse OpenVPN gérer le statut de la connectivité des liens et les activer/désactiver, d'où la config différente entre le client (kernel 4.9) et le serveur (kernel 3.13). | |
</note> | |
| |
==== Côté serveur ==== | ==== Côté serveur ==== |
down /root/del_tap0 | down /root/del_tap0 |
up /root/add_tap0 | up /root/add_tap0 |
script-security 2 | |
txqueuelen 1000 | txqueuelen 1000 |
mode p2p | mode p2p |
down /root/del_tap1 | down /root/del_tap1 |
up /root/add_tap1 | up /root/add_tap1 |
script-security 2 | |
txqueuelen 1000 | txqueuelen 1000 |
mode p2p | mode p2p |
Doublement effectif de bande passante si l'appli cliente est capable d'initier plusieurs connexions en parallèle. Une interface est affectée à l'envoi vers une même adresse MAC. Ainsi les transferts sont parallélisés et le choix de l'interface suit la règle : (Adresse MAC de la source XOR Adresse MAC de la destination) modulo nombre d'interfaces. | Doublement effectif de bande passante si l'appli cliente est capable d'initier plusieurs connexions en parallèle. Une interface est affectée à l'envoi vers une même adresse MAC. Ainsi les transferts sont parallélisés et le choix de l'interface suit la règle : (Adresse MAC de la source XOR Adresse MAC de la destination) modulo nombre d'interfaces. |
| |
//xmit_hash_policy// : définit la règle à utiliser pour déterminer l'interface pour les modes balance-xor et 802.3ad. Cette option peut prendre 2 valeur : | //xmit_hash_policy// : définit la règle à utiliser pour déterminer l'interface pour les modes balance-xor et 802.3ad. Cette option peut prendre 2 valeurs : |
| |
* layer2 : utilise XOR de l'adresse MAC dont la formule est : (source MAC XOR destination MAC ) modulo le nombre d'interfaces ; | * layer2 : utilise XOR de l'adresse MAC dont la formule est : (source MAC XOR destination MAC ) modulo le nombre d'interfaces ; |