带有 veth 桥的网络命名空间不工作 - ICMP 已发送但无回复

带有 veth 桥的网络命名空间不工作 - ICMP 已发送但无回复

我正在尝试使用 veth 对实现一个有点标准的桥接网络设置,其中一端在 ns 中,另一端在桥上:

iptables -t nat -A POSTROUTING -o eth0  -j MASQUERADE
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -o eth0 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

sysctl -w net.ipv4.ip_forward=1

ip netns add sns
ip link add br0 type bridge
ip addr add 10.10.10.1/24 dev br0
ip link set br0 up 

ip link add veth0 type veth peer name br0-veth0 
ip link set br0-veth0 master br0
ip link set veth0 netns sns 
ip link set br0-veth0 up 

ip -n sns link set lo up
ip -n sns addr add 10.10.10.10/24 dev veth0
ip -n sns link set veth0 up
ip -n sns route add default via 10.10.10.1

我使用的是 ubuntu 18.04 linux 4.15.0-210-generic 的旧版本,但我希望它能正常工作!我已清除了 iptables 中的所有其他规则,并且此安排在其他地方有效。

如果我通过 IP ping 外界,则tcpdump显示 ICMP 请求已发送,但未返回:

# tcpdump -i eth0 | grep ICMP
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enxe8ea6a751298, link-type EN10MB (Ethernet), capture size 262144 bytes
16:05:32.434563 IP 10.10.10.2 > lhr25s34-in-f14.1e100.net: ICMP echo request, id 4160, seq 13, length 64
16:05:33.454709 IP 10.10.10.2 > lhr25s34-in-f14.1e100.net: ICMP echo request, id 4160, seq 14, length 64
16:05:34.478543 IP 10.10.10.2 > lhr25s34-in-f14.1e100.net: ICMP echo request, id 4160, seq 15, length 64
16:05:35.506559 IP 10.10.10.2 > lhr25s34-in-f14.1e100.net: ICMP echo request, id 4160, seq 16, length 64
16:05:36.526576 IP 10.10.10.2 > lhr25s34-in-f14.1e100.net: ICMP echo request, id 4160, seq 17, length 64

并且似乎有一条返回路线:

ip route # ip route
default via [redacted ip] dev eth0 proto dhcp metric 100 
10.10.10.0/24 dev br0 proto kernel scope link src 10.10.10.1 

如果您能提供关于如何进一步诊断的任何线索/建议,我们将不胜感激!

谢谢,

西蒙

相关内容