Eu criei um namespace e usei um par veth (veth1 e veth2) para conectar o namespace ao meu host. Eu também criei uma ponte Linux no meu host e adiciono eth0 e veth1 à bridge como interfaces. O seu é o comando:
ip netns add namespace2
ip link add veth1 type veth peer name veth2
ip link set veth2 netns namespace2
brctl addbr br1
brctl addif br1 ens33
ifconfig ens33 0.0.0.0
ifconfig br1 192.168.90.43/22 up
brctl addif br1 veth1
ip netns exec namespace2 ifconfig veth2 192.168.90.47/22 up
ip netns exec namespace2 route add default gw 192.168.91.254
iptables -t filter -A FORWARD -m physdev --physdev-in ens33 --physdev-out veth1 -j ACCEPT
iptables -t filter -A FORWARD -m physdev --physdev-out ens33 --physdev-in veth1 -j ACCEPT
Quando faço ping fora do host, funciona
ping 8.8.8.8
Mas quando eu faço ping do meu namespace, ele falha
ip netns exec namespace2 ping 8.8.8.8
Eu tento pingar meu gateway de
ip netns exec namespace2 ping 192.168.91.254
Tem cerca de 70% de perda de pacotes.
Por que isso acontece?
Tags networking iptables linux