28.4. Configuration permanente de chemins multiples pour les applications MPTCP
Vous pouvez configurer MultiPath TCP (MPTCP) à l'aide de la commande nmcli
pour établir en permanence plusieurs sous-flux entre un système source et un système de destination. Les sous-flux peuvent utiliser différentes ressources, différents itinéraires vers la destination et même différents réseaux. Il peut s'agir d'un réseau Ethernet, d'un réseau cellulaire, d'un réseau wifi, etc. Vous obtenez ainsi des connexions combinées qui augmentent la résilience et le débit du réseau.
Dans notre exemple, le serveur utilise les interfaces réseau suivantes :
-
enp4s0 :
192.0.2.1/24
-
enp1s0 :
198.51.100.1/24
-
enp7s0 :
192.0.2.3/24
Dans notre exemple, le client utilise les interfaces réseau suivantes :
-
enp4s0f0 :
192.0.2.2/24
-
enp4s0f1 :
198.51.100.2/24
-
enp6s0 :
192.0.2.5/24
Conditions préalables
- Vous avez configuré la passerelle par défaut sur les interfaces concernées.
Procédure
Activer les sockets MPTCP dans le noyau :
# echo "net.mptcp.enabled=1" > /etc/sysctl.d/90-enable-MPTCP.conf # sysctl -p /etc/sysctl.d/90-enable-MPTCP.conf
Facultatif : La valeur par défaut du noyau RHEL pour la limite de sous-débit est de 2. Si vous avez besoin de plus :
Créez le fichier
/etc/systemd/system/set_mptcp_limit.service
avec le contenu suivant :[Unit] Description=Set MPTCP subflow limit to 3 After=network.target [Service] ExecStart=ip mptcp limits set subflows 3 Type=oneshot [Install] WantedBy=multi-user.target
L'unité oneshot exécute la commande
ip mptcp limits set subflows 3
une fois que votre réseau (network.target
) est opérationnel au cours de chaque processus de démarrage.La commande
ip mptcp limits set subflows 3
définit le nombre maximum de sous-flux additional pour chaque connexion, soit 4 au total. Il est possible d'ajouter au maximum 3 sous-flux supplémentaires.Activer le service
set_mptcp_limit
:# systemctl enable --now set_mptcp_limit
Activez MPTCP sur tous les profils de connexion que vous souhaitez utiliser pour l'agrégation de connexions :
# nmcli connection modify <profile_name> connection.mptcp-flags signal,subflow,also-without-default-route
Le paramètre
connection.mptcp-flags
configure les points d'extrémité MPTCP et les drapeaux d'adresse IP. Si MPTCP est activé dans un profil de connexion NetworkManager, le paramètre configure les adresses IP de l'interface réseau concernée en tant que points d'extrémité MPTCP.Par défaut, NetworkManager n'ajoute pas de drapeaux MPTCP aux adresses IP s'il n'y a pas de passerelle par défaut. Si vous souhaitez contourner cette vérification, vous devez également utiliser le drapeau
also-without-default-route
.
Vérification
Vérifiez que vous avez activé le paramètre noyau MPTCP :
# sysctl net.mptcp.enabled net.mptcp.enabled = 1
Vérifiez que vous avez correctement défini la limite de sous-débit, au cas où la valeur par défaut n'était pas suffisante :
# ip mptcp limit show add_addr_accepted 2 subflows 3
Vérifiez que vous avez configuré correctement le paramètre MPTCP par adresse :
# ip mptcp endpoint show 192.0.2.1 id 1 subflow dev enp4s0 198.51.100.1 id 2 subflow dev enp1s0 192.0.2.3 id 3 subflow dev enp7s0 192.0.2.4 id 4 subflow dev enp3s0 ...
Ressources supplémentaires
-
nm-settings-nmcli(5)
-
ip-mptcp(8)
- Section 28.1, « Comprendre MPTCP »
- Comprendre le TCP à trajets multiples : haute disponibilité pour les points d'extrémité et l'autoroute du réseau de l'avenir
- RFC8684 : Extensions TCP pour l'exploitation de chemins multiples avec des adresses multiples
- Utiliser le protocole TCP Multipath pour mieux survivre aux pannes et augmenter la bande passante