我有以下IF配置:
eth0 --- br0 --- eth1
我在eth1上接收udp广播传输(在端口20000上),并且不希望网桥将其转发到eth0(我的有线接口) . 因此,我申请
ebtables -t filter -A FORWARD -o eth0 -p 0x0800 --ip-protocol udp --ip-destination-port 20000 -j DROP
这对我很有用 . 当我在VLAN模式下运行设备时,即使用以下配置,
eth0 --- br0 --- eth1
|
br0.100
这里我添加了一个启用VLAN的网桥来管理VLAN 100上的无线电 . 流量到达标记在eth1上,当它通过网桥时我无法使用相同的规则检测到它 .
试图用iptables和ebtables及其vlan选项检测数据包 . 无法通过ebtables通过udp端口过滤它们 . 而且,找不到通过iptables通过端口标记它们的方法 . 此外,尝试使用physdev标记但没有成功 .
有没有一种正确的方法来为标记流做到这一点?
1 回答
默认情况下,您可能无法使用iptables查看802.1Q封装的桥接数据包 .
要启用此功能,请:
见http://ebtables.netfilter.org/documentation/bridge-nf.html
现在,您可以使用iptables过滤这些数据包 . 您应该了解如何匹配数据包中的目标端口,例如:
其中0x4E20是您的端口(20000),W是您的4字节匹配的偏移量(请注意,您只匹配最后两个字节与0x0000FFFF) . 你必须找出W是什么 .
有关u32匹配的详细信息,请参阅iptables手册页 .