What I did so far:
1. Setup network namespace along with veth pair:
Code: Select all
ip netns add vnet0
ip link add veth0 type veth peer name eth0 netns vnet0
Code: Select all
ip netns exec vnet0 ip link set lo up
ip netns exec vnet0 ip addr add 192.168.8.2/24 dev eth0
ip netns exec vnet0 ip link set eth0 up
ip netns exec vnet0 ip route add default via 192.168.8.1 dev eth0
Code: Select all
ip link add name br0 type bridge
ip addr add 192.168.8.1/24 brd 192.168.8.255 dev br0
ip link set veth0 master br0
ip link set br0 up
Code: Select all
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 2e:9e:3f:99:fc:c9 brd ff:ff:ff:ff:ff:ff
3: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
4: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether e4:7f:b2:17:26:49 brd ff:ff:ff:ff:ff:ff
5: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 80:19:34:c0:e6:8a brd ff:ff:ff:ff:ff:ff
inet 192.168.1.120/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp3s0
valid_lft 41981sec preferred_lft 41981sec
inet6 fd63:61e4:95ff::f97/128 scope global dynamic noprefixroute
valid_lft 85184sec preferred_lft 85184sec
inet6 fd63:61e4:95ff:0:1cdd:1f29:e279:ca55/64 scope global dynamic noprefixroute
valid_lft 5984sec preferred_lft 584sec
inet6 fe80::5957:17e5:842f:3cd8/64 scope link noprefixroute
valid_lft forever preferred_lft forever
8: veth0@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP group default qlen 1000
link/ether ae:de:a7:6d:0d:dd brd ff:ff:ff:ff:ff:ff link-netns vnet0
inet6 fe80::d04:c570:6e2d:fdc3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
9: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether ae:de:a7:6d:0d:dd brd ff:ff:ff:ff:ff:ff
inet 192.168.8.1/24 brd 192.168.8.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::acde:a7ff:fe6d:ddd/64 scope link
valid_lft forever preferred_lft forever
# ip route
default via 192.168.1.1 dev wlp3s0 proto dhcp metric 600
192.168.1.0/24 dev wlp3s0 proto kernel scope link src 192.168.1.120 metric 600
192.168.8.0/24 dev br0 proto kernel scope link src 192.168.8.1
Code: Select all
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
3: eth0@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 3a:d2:8c:56:cc:6b brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 192.168.8.2/24 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::38d2:8cff:fe56:cc6b/64 scope link
valid_lft forever preferred_lft forever
# ip route
default via 192.168.8.1 dev eth0
192.168.8.0/24 dev eth0 proto kernel scope link src 192.168.8.2
e.g.:
Code: Select all
# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2082ms
Code: Select all
# iptables -t filter -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
# ebtables -t filter -L
Bridge table: filter
Bridge chain: INPUT, entries: 0, policy: ACCEPT
Bridge chain: FORWARD, entries: 0, policy: ACCEPT
Bridge chain: OUTPUT, entries: 0, policy: ACCEPT
# ebtables -t nat -L
Bridge table: nat
Bridge chain: PREROUTING, entries: 0, policy: ACCEPT
Bridge chain: OUTPUT, entries: 0, policy: ACCEPT
Bridge chain: POSTROUTING, entries: 0, policy: ACCEPT
Code: Select all
# brctl showstp br0
br0
bridge id 8000.aedea76d0ddd
designated root 8000.aedea76d0ddd
root port 0 path cost 0
max age 20.00 bridge max age 20.00
hello time 2.00 bridge hello time 2.00
forward delay 15.00 bridge forward delay 15.00
ageing time 300.00
hello timer 0.00 tcn timer 0.00
topology change timer 0.00 gc timer 201.75
flags
veth0 (1)
port id 8001 state forwarding
designated root 8000.aedea76d0ddd path cost 2
designated bridge 8000.aedea76d0ddd message age timer 0.00
designated port 8001 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
Any idea?

