From: Alexandre Derumier Date: Wed, 21 Nov 2018 16:34:29 +0000 (+0100) Subject: Network : veth pair : fix mtu X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=d6a2cdcb762b37833dcebf91d4842018b956a63f Network : veth pair : fix mtu 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: mtu 9000 qdisc pfifo_fast master fwbr160i1 state UNKNOWN group default qlen 1000 223: fwbr160i1: mtu 1500 qdisc noqueue state UP group default qlen 1000 224: fwpr160p1@fwln160i1: mtu 9000 qdisc noqueue state UP group default qlen 1000 225: fwln160i1@fwpr160p1: mtu 1500 qdisc noqueue state UP group default qlen 1000 fwpr160p1@fwln160i1 is correctly created with mtu 9000 but fwln160i1@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: mtu 9000 qdisc pfifo_fast master fwbr160i1 state UNKNOWN group default qlen 1000 223: fwbr160i1: mtu 9000 qdisc noqueue state UP group default qlen 1000 224: fwpr160p1@fwln160i1: mtu 9000 qdisc noqueue state UP group default qlen 1000 225: fwln160i1@fwpr160p1: mtu 9000 qdisc noqueue state UP group default qlen 1000 --- diff --git a/src/PVE/Network.pm b/src/PVE/Network.pm index 3421532..8dfc9c2 100644 --- a/src/PVE/Network.pm +++ b/src/PVE/Network.pm @@ -291,7 +291,7 @@ sub veth_create { # create veth pair if (! -d "/sys/class/net/$veth") { - my $cmd = "/sbin/ip link add name $veth type veth peer name $vethpeer mtu $bridgemtu"; + my $cmd = "/sbin/ip link add name $veth mtu $bridgemtu type veth peer name $vethpeer mtu $bridgemtu"; $cmd .= " addr $mac" if $mac; system($cmd) == 0 || die "can't create interface $veth\n"; }