37.3. iproute2를 사용하여 MPTCP 애플리케이션에 대해 여러 경로를 일시적으로 구성하고 활성화
각 MPTCP 연결은 일반 TCP와 유사한 단일 하위 흐름을 사용합니다. MPTCP 이점을 얻으려면 각 MPTCP 연결에 대한 최대 하위 흐름 수에 더 높은 제한을 지정합니다. 그런 다음 추가 엔드포인트를 구성하여 해당 하위 흐름을 생성합니다.
이 절차의 구성은 시스템을 재부팅한 후 유지되지 않습니다.
MPTCP는 동일한 소켓에 대해 혼합 IPv6 및 IPv4 끝점을 아직 지원하지 않습니다. 동일한 주소 제품군에 속하는 엔드포인트를 사용합니다.
사전 요구 사항
-
mptcpd패키지가 설치되어 있어야 합니다. -
iperf3패키지가 설치되어 있습니다. 서버 네트워크 인터페이스 설정:
-
enp4s0:
192.0.2.1/24 -
enp1s0:
198.51.100.1/24
-
enp4s0:
클라이언트 네트워크 인터페이스 설정:
-
enp4s0f0:
192.0.2.2/24 -
enp4s0f1:
198.51.100.2/24
-
enp4s0f0:
프로세스
서버에서 제공하는 대로 최대 1개의 추가 원격 주소를 수락하도록 클라이언트를 구성합니다.
# ip mptcp limits set add_addr_accepted 1서버의 새 MPTCP 엔드포인트로 IP 주소
198.51.100.1을 추가합니다.# ip mptcp endpoint add 198.51.100.1 dev enp1s0 signal신호옵션을 사용하면ADD_ADDR패킷이 3방향 핸드셰이크 후에 전송됩니다.iperf3서버를 시작하고 TCP 소켓 대신 MPTCP 소켓을 생성하도록 강제 적용합니다.# mptcpize run iperf3 -s Server listening on 5201클라이언트를 서버에 연결하고 TCP 소켓 대신 MPTCP 소켓을 생성하도록 합니다.
# mptcpize iperf3 -c 192.0.2.1 -t 3
검증
연결이 설정되었는지 확인합니다.
# ss -nti '( sport :5201 )'연결 및 IP 주소 제한을 확인합니다.
# ip mptcp limit show새로 추가된 엔드포인트를 확인합니다.
# ip mptcp endpoint show서버에서
nstat MPTcp*명령을 사용하여 MPTCP 카운터를 확인합니다.# nstat MPTcp* #kernel MPTcpExtMPCapableSYNRX 2 0.0 MPTcpExtMPCapableACKRX 2 0.0 MPTcpExtMPJoinSynRx 2 0.0 MPTcpExtMPJoinAckRx 2 0.0 MPTcpExtEchoAdd 2 0.0