Red Hat Training
A Red Hat training course is available for RHEL 8
28.4. MPTCP アプリケーションの複数パスの永続的な設定
nmcli
コマンドを使用してマルチパス TCP (MPTCP) を設定し、ソースシステムと宛先システムの間に複数のサブフローを永続的に確立できます。サブフローは、さまざまなリソース、宛先へのさまざまなルート、さまざまなネットワークを使用できます。たとえばイーサネット、セルラー、wifi などです。その結果、接続が組み合わされ、ネットワークの回復力とスループットが向上します。
ここで使用した例では、サーバーは次のネットワークインターフェイスを使用します。
- enp4s0: 192.0.2.1/24
- enp1s0: 198.51.100.1/24
- enp7s0: 192.0.2.3/24
ここで使用した例では、クライアントは次のネットワークインターフェイスを使用します。
- enp4s0f0: 192.0.2.2/24
- enp4s0f1: 198.51.101.2/24
- enp6s0: 192.0.2.5/24
前提条件
- 関連するインターフェイスでデフォルトゲートウェイを設定している
手順
カーネルで MPTCP ソケットを有効にします。
# echo "net.mptcp.enabled=1" > /etc/sysctl.d/90-enable-MPTCP.conf # sysctl -p /etc/sysctl.d/90-enable-MPTCP.conf
サーバーで、追加のサブフロー制限を
2
に設定します。次の内容で
/etc/systemd/system/set_mptcp_limit.service
ファイルを作成します。[Unit] Description=Set MPTCP subflow limit to 2 After=network.target [Service] ExecStart=ip mptcp limits set subflows 2 Type=oneshot [Install] WantedBy=multi-user.target
RHEL 8 では、
nmcli
ユーティリティーを使用してサブフロー制限を設定することはできません。また、RHEL カーネル設定で定義されているサブフロー制限もありません。代わりに、すべての起動プロセスでネットワーク (network.target
) が動作可能になった後にip mptcp limits set subflows 2
コマンドを実行する同様の oneshot ユニットを使用します。ip mptcp limits set subflows 2
コマンドは、各接続の 追加 サブフローの最大数を設定するため、合計が 3 になります。set_mptcp_limit
サービスを有効にします。# systemctl enable --now set_mptcp_limit
接続のアグリゲーションに使用するすべての接続プロファイルで MPTCP を有効にします。
# nmcli connection modify <profile_name> connection.mptcp-flags signal,subflow,also-without-default-route
connection.mptcp-flags
パラメーターは、MPTCP エンドポイントと IP アドレスフラグを設定します。MPTCP が NetworkManager 接続プロファイルで有効になっている場合、設定により、関連するネットワークインターフェイスの IP アドレスが MPTCP エンドポイントとして設定されます。デフォルトでは、デフォルトゲートウェイがない場合、NetworkManager は MPTCP フラグを IP アドレスに追加しません。そのチェックをバイパスしたい場合は、
also-without-default-route
フラグも使用する必要があります。
検証
MPTCP カーネルパラメーターが有効になっていることを確認します。
# sysctl net.mptcp.enabled net.mptcp.enabled = 1
サブフロー制限を正しく設定したことを確認します。
# ip mptcp limit show add_addr_accepted 1 subflows 2
アドレスごとの MPTCP 設定が正しく設定されていることを確認します。
# 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 ...