Networking
如何使用 9000 MTU 設置 veth 以模擬在同一主機上發送和接收大型 UDP 多播數據包?
發送方需要將大數據包傳輸到接收方(在同一主機上,MTU 為 1500),根據我的閱讀,我認為這可以使用 veth 和 9000 MTU 來模擬。但我無法弄清楚到底該怎麼做——網際網路上的大多數 veth 教程/文章都提到了網路命名空間,我不確定是否需要創建一個網路命名空間來實現這一點。任何指示/建議都會有所幫助,謝謝!
在 Linux 上,此設置不是特定於veth的,因此沒有記錄在veth中,而是在通用
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.
因為硬體限制。虛擬veth介面不會出現這種情況,它的最大 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
請注意,要使此功能有用,您需要另一個名稱空間中的另一端。例如這裡 veth0 的另一邊是veth1:
ip netns add experiment ip link set veth1 peer netns experiment ip -n experiment link set veth1 mtu 9000
等(啟動介面,添加地址,路由……)
對於多播部分,您可能對此感興趣: