동일한 호스트에서 대규모 UDP 멀티캐스트 패킷 전송 및 수신을 시뮬레이션하기 위해 veth를 9000 MTU로 설정하려면 어떻게 해야 합니까?

동일한 호스트에서 대규모 UDP 멀티캐스트 패킷 전송 및 수신을 시뮬레이션하기 위해 veth를 9000 MTU로 설정하려면 어떻게 해야 합니까?

발신자는 큰 패킷을 수신자(1500 MTU의 동일한 호스트)에 전송해야 합니다. 제가 읽은 바에 따르면 이는 9000 MTU의 veth를 사용하여 시뮬레이션할 수 있다고 생각합니다. 하지만 이 작업을 수행하는 방법을 정확히 알 수는 없습니다. 인터넷에 있는 대부분의 튜토리얼/기사에는 네트워크 네임스페이스가 언급되어 있으며 이를 달성하기 위해 네임스페이스를 만들어야 하는지 잘 모르겠습니다. 어떤 조언이나 조언이라도 도움이 될 것입니다. 감사합니다!

답변1

Linux에서 이 설정은 다음에 국한되지 않습니다.와이즈그래서 녹음이 안됐지와이즈, 그러나 일반적으로ip link주문하다:

ip link add [ link DEVICE ] [ name ] NAME
[ txqueuelen PACKETS ]
[ address LLADDR ] [ broadcast LLADDR ]
[ mtu MTU ] [ index IDX ] 

...

ip link set { DEVICE | group GROUP } 
...
[ mtu MTU ] 

...

당신은 그것을 사용할 수 있습니다 ip link set ... mtu 9000:

ip link set veth0 mtu 9000

일부 인터페이스는 다음과 같이 대답할 수 있습니다. Error: mtu greater than device maximum.하드웨어 제한 때문입니다. 가상 머신의 경우에는 그렇지 않습니다.와이즈최대 MTU가 65535인 인터페이스:

# ip -details link show veth0
68: veth0@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 9000 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 2a:93:f8:8e:bc:b6 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 65535 
    veth addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 

관련 부품:

minmtu 68 maxmtu 65535 

이것이 유용하려면 다른 쪽 끝이 다른 네임스페이스에 있어야 한다는 점에 유의하세요. 예를 들어 여기 반대편은veth0veth1:

ip netns add experiment
ip link set veth1 peer netns experiment
ip -n experiment link set veth1 mtu 9000

등(인터페이스 시작, 주소 추가, 경로...)

멀티캐스트 부분의 경우 다음 사항에 관심이 있을 수 있습니다.

Socat을 사용한 IP 멀티캐스트

관련 정보