发送方需要将大数据包传输到接收方(位于同一台具有 1500 MTU 的主机上),根据我的阅读,我认为这可以使用具有 9000 MTU 的 veth 进行模拟。但我无法弄清楚到底如何做到这一点 - 互联网上的大多数 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
请注意,要使其有用,您需要另一端位于其他命名空间中。例如这里的另一边veth0是veth1:
ip netns add experiment
ip link set veth1 peer netns experiment
ip -n experiment link set veth1 mtu 9000
等等(启动接口、添加地址、路由...)
对于多播部分,您可能对此感兴趣: