我有一台 Linux 3.14 PC,带有三个 NIC 和两个 NIC 之间的桥接器(eth1
和eth2
)。
我的问题
为什么没有流量通过 POSTROUTING 规则?仅供参考,流量通过(转发)网桥一切正常。有人能给我一些建议,让它正常工作吗?
ifconfig eth1 down
ifconfig eth2 down
ifconfig eth1 up
ifconfig eth1 0.0.0.0
ifconfig eth2 up
ifconfig eth2 0.0.0.0
brctl addbr sm0
brctl addif sm0 eth1
brctl addif sm0 eth2
ifconfig sm0 up
iptables -t mangle -A POSTROUTING -o eth1 -p all -j CLASSIFY --set-class 1:99
iptables -t mangle -A POSTROUTING -o eth2 -p all -j CLASSIFY --set-class 2:99
规则
o iptables -t mangle -nvL
Chain PREROUTING (policy ACCEPT 38914 packets, 2954K bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 38210 packets, 2791K bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 38072 packets, 2844K bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 38072 packets, 2844K bytes)
pkts bytes target prot opt in out source destination
0 0 CLASSIFY all -- * eth1 0.0.0.0/0 0.0.0.0/0 CLASSIFY set 1:99
0 0 CLASSIFY all -- * eth2 0.0.0.0/0 0.0.0.0/0 CLASSIFY set 2:99
系统配置文件
net.ipv4.ip_forward=1
将以下值设置为 0 或 1 对 iptables 没有影响
net.bridge.bridge-nf-call-arptables=1
net.bridge.bridge-nf-call-ipv6tables=1
net.bridge.bridge-nf-call-ipv4tables=1
答案1
您的网桥不路由流量,因此无需遵守任何规则POSTROUTING
。
请参阅 netfilter 文档桥接网络过滤器有关详细信息和更改此配置的方法(内核 3.2.0):
modprobe bridge # Enable bridge-netfilter
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables