我一直对我的头撞了太久,真的很感激第二个意见/理智检查:
LAN接口eth1与br0(192.168.2.1)上的OpenVPN tap0桥接在一起。 我想添加subif eth1.100到(桥接)eth1作为一个访客VLAN,它只能为局域网的一个子集(192.168.22.0/24)提供Internet访问。
看起来这不像我想象的那么简单,因为任何标记的stream量显然都会通过主机接口结束。 遵循这个线程的build议
桥梁上的Linux Vlans
我尝试了eth1-> eth.0-> br0和eth1-> eth.100-> br1的“双桥”设置,该设置在我现有的br0设置上停止了stream量感冒。
第二个最好的select是'ebtables -t broute -A BROUTING -i eth1 -p 802_1Q -j DROP'和eth1.100(没有额外的网桥)产生与eth1.100相同的行为,而没有BROUTING表项:我可以ping从本地主机subif,但从VLAN中的客户端ping返回50%的损失率和“目标主机无法访问”。
所有这些在Debian 9.1,vlan v。1.9-3.2和bridge-utils v。1.5-13。
编辑提供一些更多的细节:显然,VLANstream量击中桥梁,并从客户端192.168.22.100到eth1.100(192.168.22.1)ping ping从“dev br0上的192.168.22.100”得到“martian source 192.168.22.1”。 据我所知,上面的ebtables命令,在路由表中的“drop”意味着“路由帧,而不是桥”。 那么这是在这里发生? 如果是这样,为什么这些数据包被认为是“火星人”?
'brctl show'的输出:
桥名称| 桥ID | 启用STP | 接口
br0 | 8000.a0b3cce4c5a9 | 没有| ETH1 + tap0中
“ifconfig eth1”的输出:
标志= 4163 mtu 1500
ether a0:b3:cc:e4:c5:a9 txqueuelen 1000(以太网)
“ifconfig eth1.100”的输出:
标志= 4163 mtu 1500
inet 192.168.22.1networking掩码255.255.255.0广播192.168.22.255
ether a0:b3:cc:e4:c5:a9 txqueuelen 1000(以太网)
'ifconfig br0'的输出:
标志= 4163 mtu 1500
inet 192.168.2.1networking掩码255.255.255.0广播192.168.2.255
ether a0:b3:cc:e4:c5:a9 txqueuelen 1000(以太网)
iptables的:
iptables -A INPUT -i eth1.100 -j ACCEPT
iptables -A OUTPUT -o eth1.100 -j ACCEPT
iptables -A FORWARD -i eth1.100 -o $ EXTERNAL_INTERFACE -j ACCEPT
iptables -A FORWARD -i $ EXTERNAL_INTERFACE -o eth1.100 -j ACCEPT