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:37] – [OpenVPN] 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 et réseau différentes entre le client et le serveur ?__ | |
\\ | |
\\ | |
Le bonding utilisé ici (round-robin avec interfaces //tap//) vérifie la connectivité des liens avec des requêtes ARP pour activer/désactiver à la volée les interfaces. Or avec un kernel 4.9, une debian jessie et/ou strech les requêtes ARP ne passent plus dans le sens serveur distant => serveur local si monitoring ARP est activé sur le serveur local. Je n'ai pas encore trouvé le temps de vérifeir pourquoi. Ce souci n'existait pas avec des kernels < 4.1 | |
\\ | |
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 côté serveur local. Côté serveur distant on laisse le monitoring ARP activé. | |
</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 ; |