DaG*_*aGN 1 iptables vlan linux-networking ubuntu-12.04
我正在 Ubuntu12.04 中运行我编写的一个应用程序,它执行一些远程交换机管理。我只有一个 NIC 连接到托管交换机网络,eth0 设置为 IPv4 10.0.0.1/24。这个 IPv4 地址是这台 Ubuntu 机器可以使用的唯一地址,因为这是分配给 Ubuntu 机器的唯一“全局”可路由地址(由于某些网络管理,而不是由于技术问题......)
我需要交换机管理流量(通过 SSH 的 NetConf,使用 UDP 端口 830)来包含一个带有 VLAN ID 444 的 802.1q VLAN 标签),在发送 NetConf 帧时,也会收到带有此标签的回复。所有其他流量(http、ftp、dhcp、snmp 等)将使用没有 VLAN 标记的 eth0。
我尝试在 eth0 上使用 VLAN 接口 eth0.444,但似乎发送的流量不包含 VLAN 标记。
我可以(以及如何)使用 ebtables/iptables 将特定的 VLAN 标记添加到特定的 UDP 端口流量?ebtables/iptables 解决方案是否也适用于接收路径?
谢谢!
大卫
iptables
并且ebtables
无法在数据包上设置 VLAN 标记。这就是 VLAN 子接口的用途。
Ubunut wiki 上有一篇文章讨论了您可能应该查看的VLAN。总之,您希望:
确保 802.1q 模块加载了modprobe 8021q
.
创建 VLAN 子接口vconfig add eth0 444
。
将 VLAN 444 中使用的子网的 IP 地址和子网掩码添加到eth0.444
子接口ip addr add x.x.x.x/z dev eth0.444
您还需要配置服务器连接的交换机端口以接受 VLAN 444 的标记帧。您没有提到您的交换机品牌,所以我无法在那里提供太多指导,但您可能正在寻找配置为 VLAN 444 的标记成员的“中继”或“通用”端口,以及分配给eth0
接口的子网使用的任何 VLAN 的未标记成员。
请注意,显示 VLAN 标记tcpdump
可能会出现问题,因此如果您只是tcpdump
在主机本身上使用来验证帧是否已标记,则不必假定帧没有被标记。
编辑:
通常,VLAN 和 IP 子网之间存在一对一的关系。如果交换机在 VLAN 444 中有一个管理接口,该接口与您当前eth0
端口所在的任何 VLAN 是相同的 IP 子网,那将是非常不典型的。
归档时间: |
|
查看次数: |
8174 次 |
最近记录: |