네임스페이스를 생성하고 veth 쌍(veth1 및 veth2)을 사용하여 네임스페이스를 호스트와 연결했습니다. 또한 호스트에 Linux 브리지를 만들고 eth0 및 veth1을 인터페이스로 브리지에 추가했습니다. 그녀의 명령은 다음과 같습니다.
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
호스트에서 핑 아웃하면 작동합니다.
ping 8.8.8.8
하지만 내 네임스페이스에서 핑을 하면 실패합니다.
ip netns exec namespace2 ping 8.8.8.8
게이트웨이에서 핑을 시도했습니다.
ip netns exec namespace2 ping 192.168.91.254
패키지 손실은 약 70%였습니다.
왜 그런 상황이 있습니까?