首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用VLAN感知桥时如何允许VLAN无标记数据包通过

使用VLAN感知桥时如何允许VLAN无标记数据包通过
EN

Unix & Linux用户
提问于 2022-11-28 09:54:16
回答 1查看 394关注 0票数 2

我用的是VLAN感知桥。我有一个接口,我需要只有VID 10和20的数据包才能通过,任何其他的VID都应该被丢弃。我将接口配置成这样:

代码语言:javascript
运行
复制
bridge vlan add vid 10 dev wlan2.2
bridge vlan add vid 20 dev wlan2.2

我的问题是,我希望允许无标记的通信也通过,而不修改/添加标记到数据包。

能办到吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-11-28 16:43:06

您可以将端口配置为对所有接收到的未标记帧使用特定的port (pvid),并将此相同的VLAN配置为以无标记帧(untagged)发出。虽然可以以无标记的形式发出多个VLAN,但没有真正的用途,因为在这种情况下,其他不是此端口上的PVID的VLAN将永远不会看到流量响应,因为任何可能的无标记应答流量都只存在于PVID:对于给定的桥接端口,通常只为一个VLAN ID出现两个标志。只需选择任何随机的VLAN ID (它永远不会出现在线路上),例如42:

代码语言:javascript
运行
复制
bridge vlan add vid 42 dev wlan2.2 pvid untagged

并配置以相同方式与其通信的任何其他端口,如上面所述或根据需要标记PVID+untagged (如果在这条线路上显示了标记VLAN 42 )。

最后一部分确实很重要:没有任何其他端口(包括桥接器接口),了解VLAN的42帧就会被丢弃。例如,使用新添加的桥端口foo0

代码语言:javascript
运行
复制
bridge vlan delete vid 1 dev foo0
bridge vlan add vid 42 dev foo0 pvid untagged

其他标记的VLAN也是:

代码语言:javascript
运行
复制
bridge vlan add vid 10 dev foo0
bridge vlan add vid 20 dev foo0

实际上,如果您从未像上面所做的那样删除这个默认的VLAN 1,那么这种行为已经按照您使用VLAN 1描述的那样进行了:所有端口默认为PVID 1。因此,如果桥(我将命名为bridge0)和端口wlan2.2按照您编写的那样配置,其中VLAN 1从未被删除,那么没有什么可做的来获得此行为。下面是一个模型:

代码语言:javascript
运行
复制
ip link add name bridge0 up type bridge vlan_filtering 1
ip link add wlan2.2 up master bridge0 type dummy
bridge vlan add vid 10 dev wlan2.2
bridge vlan add vid 20 dev wlan2.2

# bridge vlan show
port              vlan-id  
bridge0           1 PVID Egress Untagged
wlan2.2           1 PVID Egress Untagged
                  10
                  20

在默认情况下,所有接口/端口都已经取消了PVID 1的标记,因此按照预期的方式工作,没有任何更改,包括没有我前面所写的更改。

关于桥本身和路线

请注意,桥接口的行为与桥端口略有不同,因为它参与路由。除了其他设置之外,更改桥接口本身的VLAN还需要关键字self ( self的这种用法在手册页中似乎缺乏明确的文档),这还会影响桥接口的路由连接性。路由需要无标记帧,因此只有一个VLAN可以直接与桥接口进行适当的路由(可以在桥接接口上使用经典的VLAN接口,也可以使用一侧设置为桥接端口的veth接口和具有IP地址的另一侧)。和其他端口一样,它也默认为PVID 1,如上面所示。您可以选择将其切换到VLAN 42,以路由在端口wlan2.2上接收到的无标记通信量(并失去可能来自其他地方的默认VLAN 1的任何以前的流量/连接):

代码语言:javascript
运行
复制
bridge vlan delete vid 1 dev bridge0 self
bridge vlan add vid 42 dev bridge0 pvid untagged self
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/726542

复制
相关文章

相似问题

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