首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Linux桥上过滤VLAN标记的数据包

在Linux桥上过滤VLAN标记的数据包
EN

Stack Overflow用户
提问于 2016-11-07 20:32:31
回答 1查看 9.3K关注 0票数 0

如果配置如下:

代码语言:javascript
复制
eth0 --- br0 --- eth1 

我在eth1上接收udp广播传输(端口20000),不希望桥将它转发到eth0 (我的有线接口)。因此,我申请

代码语言:javascript
复制
ebtables -t filter -A FORWARD -o eth0 -p 0x0800 --ip-protocol udp --ip-destination-port 20000 -j DROP

这对我很有用。当我以VLAN模式运行设备时,即使用以下配置,

代码语言:javascript
复制
eth0 --- br0 --- eth1 
          |
       br0.100

这里我增加了一个支持VLAN的网桥来管理VLAN 100上的无线电.在eth1上标记的流量到达时,当它通过桥时,我无法使用相同的规则来检测它。

尝试用iptable检测数据包,并使用vlan选项检测退潮。无法通过udp端口通过ebtables过滤它们。此外,无法找到通过iptables通过端口标记它们的方法。此外,也尝试使用物理学家标记,但没有成功。

是否有正确的方法对标记的流执行此操作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-08 02:03:13

默认情况下,您可能无法看到带有iptables的802.1Q封装的桥接数据包。

若要启用此功能,请执行以下操作:

代码语言:javascript
复制
echo 1 > /proc/sys/net/bridge/bridge-nf-filter-vlan-tagged

请参阅http://ebtables.netfilter.org/documentation/bridge-nf.html

现在,您可以使用iptables过滤这些数据包。您应该了解如何将数据包中的目的端口与以下内容匹配:

代码语言:javascript
复制
iptables -A FORWARD -m u32 --u32 "W&0xFFFF=0x4E20" -j DROP

其中0x4E20是您的端口(20000),W是4字节匹配的偏移量(请注意,您只将最后两个字节与0x0000FFFF匹配)。你得弄清楚W是什么。

有关u32匹配的详细信息,请参阅iptables手册页。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40474073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档