创建具有 vlan 接口类型名称的非 vlan 接口

创建具有 vlan 接口类型名称的非 vlan 接口

我有 2 个接口:bond0 和 bond1。

bond0 连接到一个中继端口,也就是说,将被分配像 bond0.10 这样的 vlan。bond1
连接到 vlan 20 的静态端口。因此,就连接而言,bond1 的处理方式与 bond0.20 相同。

问题是我希望将接口 bond1 称为 bond0.20。这可能吗?从我目前的实验来看,Linux 似乎自动假设 devX.Y 始终是 vlan 设备,并且需要如此处理,而在本例中我并不想这样。但是,所有其他 bond0 设备(如 bond0.50)都应被视为 vlan 设备,因此我不能只更改 vlan 接口命名方案。

这有可能吗?我可以让 Linux 接受这种情况吗?目标是实现完全透明的网络设置,而所有 VLAN 都应该可用作 bond0.X

答案1

首先,普通 VLAN 端口会标记传出的数据包,并且只接受带标记的数据包,但在“内部”它会删除标记,但我猜桥接器可能不会遵循这种逻辑。我知道您可以将一台不理解 VLAN 的机器连接到机器上的接口,然后将其桥接到 VLAN 接口,到达“正常”端的机器的数据包不会有任何 VLAN 标记,但传出的数据包会。

我没有办法测试这一点,但我看到它被列为您所说的问题的可能解决方案。您需要安装ebtables,然后设置类似这样的规则:

ebtables -t broute -A BROUTING -i bond1.20 -p 802_1Q -j DROP

它基本上应该剥离 802.1q 标签,并将数据包重新提交给网桥(如果 VLAN 到 VLAN 网桥不剥离标签,则可能需要这样做)。

这家伙谈论的是类似的情况,有很多人有和你类似的需求

相关内容