29.2. MPTCP サポートを有効にするための RHEL の準備

デフォルトでは、RHEL で MPTCP サポートが無効になっています。この機能に対応するアプリケーションを使用できるように、MPTCP を有効にします。また、アプリケーションにデフォルトで TCP ソケットがある場合は、MPTCP ソケットを強制的に使用するように、ユーザー空間アプリケーションを設定する必要があります。

前提条件

以下のパッケージがインストールされている。

  • iperf3
  • mptcpd
  • systemtap

手順

  1. カーネルで MPTCP ソケットを有効にします。

    # echo "net.mptcp.enabled=1" > /etc/sysctl.d/90-enable-MPTCP.conf
    # sysctl -p /etc/sysctl.d/90-enable-MPTCP.conf
  2. iperf3 サーバーを起動し、TCP ソケットの代わりに MPTCP ソケットを強制的に作成する場合は、次のコマンドを実行します。

    # mptcpize run iperf3 -s
    
    Server listening on 5201
  3. クライアントをサーバーに接続し、TCP ソケットの代わりに MPTCP ソケットを強制的に作成する場合は、次のコマンドを実行します。

    # mptcpize iperf3 -c 127.0.0.1 -t 3
  4. 接続が確立されたら、ss 出力を確認し、サブフロー固有のステータスを確認します。

    # ss -nti '( dport :5201 )'
    
    State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
    ESTAB 0      0      127.0.0.1:41842    127.0.0.1:5201
    cubic wscale:7,7 rto:205 rtt:4.455/8.878 ato:40 mss:21888 pmtu:65535 rcvmss:536 advmss:65483 cwnd:10 bytes_sent:141 bytes_acked:142 bytes_received:4 segs_out:8 segs_in:7 data_segs_out:3 data_segs_in:3 send 393050505bps lastsnd:2813 lastrcv:2772 lastack:2772 pacing_rate 785946640bps delivery_rate 10944000000bps delivered:4 busy:41ms rcv_space:43690 rcv_ssthresh:43690 minrtt:0.008 tcp-ulp-mptcp flags:Mmec token:0000(id:0)/2ff053ec(id:0) seq:3e2cbea12d7673d4 sfseq:3 ssnoff:ad3d00f4 maplen:2
  5. MPTCP カウンターを確認します。

    # nstat MPTcp*
    
    #kernel
    MPTcpExtMPCapableSYNRX          2                  0.0
    MPTcpExtMPCapableSYNTX          2                  0.0
    MPTcpExtMPCapableSYNACKRX       2                  0.0
    MPTcpExtMPCapableACKRX          2                  0.0

関連情報

  • tcp(7) man ページ
  • mptcpize(8) man ページ