You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(This should probably go upstream, but it's not clear whether iproute2 bug reports are welcome on the netdev mailing list. So I thought I'd start here because I first noticed the problem when pulling in iproute 5.11.0 on one of my Void Linux boxen today.)
Iproute2 batch mode should be able to build a working network namespace. See below in "how to reproduce" section for the example script netns-test.sh.
Expected usage and output (works in 5.10.0):
$ sudo ./bin/netns-test.sh
$ sudo ip netns exec netns-test ip route
default via 192.168.5.1 dev netns-test-1
192.168.0.0/24 via 192.168.5.1 dev netns-test-1
192.168.5.0/24 dev netns-test-1 proto kernel scope link src 192.168.5.2
192.168.5.1 dev netns-test-1 proto kernel scope link src 192.168.5.2
Actual behavior
The inner veth doesn't come up properly:
$ sudo ./bin/netns-test.sh
$ sudo ip netns exec netns-test ip route
$ sudo ip netns exec netns-test ip link
Password:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
39: netns-test-1@if40: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 1a:96:4e:4f:84:31 brd ff:ff:ff:ff:ff:ff link-netnsid 0
Steps to reproduce the behavior
Put this into a script such as ~/bin/netns-test.sh:
#! /bin/bash
gw=192.168.5.1
ip=192.168.5.2
ns=netns-test
veth0=${ns}-0
veth1=${ns}-1
/usr/local/sbin/ip -b - << EOF
link add $veth0 type veth peer name $veth1
addr add $gw peer $ip dev $veth0
link set dev $veth0 up
netns add $ns
link set $veth1 netns $ns
netns exec $ns ip link set dev lo up
netns exec $ns ip link set dev $veth1 up
netns exec $ns ip addr add $ip/24 dev $veth1
netns exec $ns ip addr add $ip peer $gw dev $veth1
netns exec $ns ip route add default via $gw dev $veth1
netns exec $ns ip route add 192.168.0.0/24 via $gw dev $veth1
EOF
Run the script and then check whether it works with commands such as ip netns exec netns-test ip link and ip netns exec netns-test ip route.
Note that git bisect identifies 1d9a81b8c9f30f9f4abeb875998262f61bf10577 as the offending commit.
The text was updated successfully, but these errors were encountered:
cryptarch
changed the title
iproute2 bug
iproute2 batch-mode fails to bring up veth
Mar 15, 2021
Note that running the commands manually, one at a time, seems to work okay even in 5.11.0. Afaict, the problem only affects batch mode, which makes sense, because the commit identified by git-bisect was purely focused on refactoring batch mode.
Hi,
(This should probably go upstream, but it's not clear whether iproute2 bug reports are welcome on the netdev mailing list. So I thought I'd start here because I first noticed the problem when pulling in iproute 5.11.0 on one of my Void Linux boxen today.)
System
Void 5.10.23_1 x86_64 AuthenticAMD uptodate rrrmFFFFFFF
iproute2-5.11.0_1
Expected behavior
Iproute2 batch mode should be able to build a working network namespace. See below in "how to reproduce" section for the example script
netns-test.sh
.Expected usage and output (works in 5.10.0):
Actual behavior
The inner veth doesn't come up properly:
Steps to reproduce the behavior
Put this into a script such as
~/bin/netns-test.sh
:Run the script and then check whether it works with commands such as
ip netns exec netns-test ip link
andip netns exec netns-test ip route
.Note that
git bisect
identifies1d9a81b8c9f30f9f4abeb875998262f61bf10577
as the offending commit.The text was updated successfully, but these errors were encountered: