네, 알겠습니다. nc
가 안 깔려있고, 중요한 점은 “아까 UDP인가 숫자 많이 나오는 거는 됐잖아” 라는 말씀입니다.
제가 드렸던 cb_udp_server.c
와 cb_udp_client.c
테스트는 성공했었다는 의미로 이해했습니다. 그리고 iperf3
를 써야 한다는 점도 정확히 인지했습니다.
이 모든 정보를 종합하면, 결론은 명확합니다.
cb_udp_...
코드가 동작했으므로, 두 경로(eth0
, pfe2sl
)는 UDP 패킷을 주고받을 수 있습니다.iperf3
를 사용해야 한다: 표준 성능 측정 도구를 사용해야 합니다.문제의 원인:
이전의 iperf3
테스트가 실패했던 이유는, 우리가 iperf3
가 두 개의 경로를 동시에 사용하도록 설정하지 않았기 때문입니다. iperf3
는 기본적으로 커널의 라우팅 테이블에 따라 하나의 경로만을 선택하여 통신합니다.
iperf3
다중 경로 동시 테스트802.1CB의 핵심은 “두 개의 경로를 동시에 사용하는 것”입니다. 이를 iperf3
로 시뮬레이션하려면, 두 개의 iperf3
프로세스를 동시에 실행하여 각 프로세스가 서로 다른 경로를 사용하도록 만들어야 합니다.
iperf3
다중 경로)eth0
해방 및 라우팅 모드 IP 설정을 통해 ping
이 양쪽 경로로 모두 가는 것을 확인합니다.
두 개의 iperf3
서버를 각각 다른 포트와 다른 IP에 바인딩하여 백그라운드로 실행합니다.
echo "--- G2: Starting two iperf3 servers ---"
# 서버 1: P3A (eth0) 경로용, 포트 5201
iperf3 -s -p 5201 -B 192.168.10.2 -D
# 서버 2: P3B (pfe2sl) 경로용, 포트 5202
iperf3 -s -p 5202 -B 192.168.20.2 -D
echo "Two iperf3 servers are running. Check with 'ps aux | grep iperf3'"
두 개의 iperf3
클라이언트 프로세스를 &
를 사용하여 동시에 백그라운드로 실행합니다.
echo "--- G3: Starting two iperf3 clients for 60 seconds ---"
# 클라이언트 1: G2의 P3A 서버(5201)로 트래픽 전송
iperf3 -c 192.168.10.2 -p 5201 -B 192.168.10.1 -t 60 -i 5 -u -b 50M &
# 클라이언트 2: G2의 P3B 서버(5202)로 트래픽 전송
iperf3 -c 192.168.20.2 -p 5202 -B 192.168.20.1 -t 60 -i 5 -u -b 50M &
echo "Two iperf3 clients are running in the background."
echo "Wait for 60 seconds for the test to complete."
-u
: UDP 모드로 테스트-b 50M
: 각 경로에 50Mbps의 대역폭을 할당하여 전송 (총 100Mbps)&
: 백그라운드 실행ps aux | grep iperf3
로 서버 두 개가 떠 있는지 확인합니다.iperf3
가 실행되는 60초 동안 케이블 하나를 뽑았다가 다시 꽂아보십시오. 테스트가 끝난 후 G3의 결과 리포트에서, 해당 경로의 패킷 손실률(Lost/Total Datagrams
)이 크게 증가한 것을 확인할 수 있습니다.이것이 iperf3
를 사용하여 두 개의 경로를 동시에 테스트하고, 802.1CB의 중복 경로 통신을 가장 현실적으로 시뮬레이션하는 방법입니다.