数据包未达到 POSTROUTING 规则,接口未经编辑

数据包未达到 POSTROUTING 规则,接口未经编辑

我正在尝试配置从本地网络到vmbr1公共接口的路由vmbr0。我的计算机192.168.0.1vmbr1接口上有 IP。我已配置以下后路由规则: iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE

作为测试,我正在8.8.4.4从另一台192.168.0.101192.168.0.1配置为默认网关的计算机 ping Google DNS 服务器。

使用iptables -t nat -L -v,我可以看到一些数据包正在击中过滤器,但是从增加的速度来看,显然正确的数据包没有击中。

Chain POSTROUTING (policy ACCEPT 5 packets, 300 bytes)
 pkts bytes target     prot opt in     out     source               destination
   24  8358 MASQUERADE  all  --  any    vmbr0   anywhere             anywhere

tcpdump -i vmbr0,我可以看到数据包未经编辑就离开了接口。

18:41:35.162157 IP 192.168.0.101 > google-public-dns-b.google.com: ICMP echo request, id 1872, seq 996, length 64
18:41:36.170172 IP 192.168.0.101 > google-public-dns-b.google.com: ICMP echo request, id 1872, seq 997, length 64
18:41:37.178164 IP 192.168.0.101 > google-public-dns-b.google.com: ICMP echo request, id 1872, seq 998, length 64

这是我的网络配置:

iface eth0 inet manual

auto vmbr1
iface vmbr1 inet static
        address  192.168.0.1
        netmask  255.255.255.0
        bridge_ports dummy0
        bridge_stp off
        bridge_fd 0
#NAT

auto vmbr0
iface vmbr0 inet static
        address  151.80.1.13
        netmask  255.255.255.0
        gateway  151.80.1.254
        broadcast  151.80.1.255
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        network 151.80.1.0

和路线:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         151.80.1.254    0.0.0.0         UG    0      0        0 vmbr0
151.80.1.0      *               255.255.255.0   U     0      0        0 vmbr0
192.168.0.0     *               255.255.255.0   U     0      0        0 vmbr1

我也尝试过iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE但是也没有用。

编辑:事实证明,将 bridge_ports 设置为 dummy0 是问题所在。有人能解释一下原因吗?

相关内容