我已经安装br0
了包含两个接口的以太网桥,eth0
并且tap0
brctl addbr br0
brctl addif eth0
brctl addif tap0
ifconfig eth0 0.0.0.0 promisc up
ifconfig tap0 0.0.0.0 promisc up
ifconfig br0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255
我的默认FORWARD
连锁政策是DROP
iptables -P FORWARD DROP
当我不添加以下规则时,流量不会通过网桥。
iptables -A FORWARD -p all -i br0 -j ACCEPT
据我了解,iptables
它仅负责IP层。
ebtables
应该负责过滤以太网桥上的流量。
那么,为什么我必须在iptable的FORWARD链中添加ACCEPT规则?
即使在完成之后,该功能也无法在4.4.0-22-通用(ubuntu 16.04)上运行
echo "1" > /sys/devices/virtual/net/br0/bridge/nf_call_arptables
。有任何想法吗?回答自己:#加载br_netfilter modprobe br_netfilter#添加到BROUTING链规则,以将所有ipv4数据包转发到iptables ebtables -t broute -A BROUTING -p ipv4 -i br0 -j DROP