[pve-devel] [PATCH pve-common] Network : veth pair : fix mtu

Alexandre Derumier aderumier at odiso.com
Wed Nov 21 16:26:20 CET 2018


The ip link set command which create the veth pair is not setting mtu on both peers

example:
vm 106 is on a bridge with mtu 9000

222: tap160i1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast master fwbr160i1 state UNKNOWN group default qlen 1000
223: fwbr160i1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
224: fwpr160p1 at fwln160i1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default qlen 1000
225: fwln160i1 at fwpr160p1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

fwpr160p1 at fwln160i1 is correctly created with mtu 9000
but
fwln160i1 at fwpr160p1 is created with mtu 1500.
(and then vmbr106i1 is lowered to 1500 too).

This is doing network problem, as tap160i1 is mtu9000.

After this patch:

222: tap160i1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast master fwbr160i1 state UNKNOWN group default qlen 1000
223: fwbr160i1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default qlen 1000
224: fwpr160p1 at fwln160i1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default qlen 1000
225: fwln160i1 at fwpr160p1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default qlen 1000
---
 src/PVE/Network.pm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/PVE/Network.pm b/src/PVE/Network.pm
index 3421532..7cd6fc0 100644
--- a/src/PVE/Network.pm
+++ b/src/PVE/Network.pm
@@ -296,6 +296,8 @@ sub veth_create {
 	system($cmd) == 0 || die "can't create interface $veth\n";
     }
 
+    PVE::Tools::run_command(['/sbin/ip', 'link', 'set', $veth, 'mtu', $bridgemtu]);
+
     # up vethpair
     disable_ipv6($veth);
     disable_ipv6($vethpeer);
-- 
2.11.0




More information about the pve-devel mailing list