在未标记的 VLAN1 和标记的 VLAN100 之间添加 Linux 网桥设备

在未标记的 VLAN1 和标记的 VLAN100 之间添加 Linux 网桥设备

我想在标记的 vlan 设备和未标记的 vlan1 之间添加一个网桥。但这并不像我预期的那样有效。首先,我想展示当前的网络配置。然后,我解释我想做什么以及我是如何做到的(但没有成功)。

这是网络:

  ____________    ______________
 |   IP-Cam   |  |   WinPC      |
 |            |  | autoIP e.g   |
 | 172.16.0.3 |  | 169.254.1.23 |
 | 0.0.0.0    |  | 255.255.0.0  |
 |____________|  |______________|  
    | V1U         | V1U
 ___|_____________|_        _______________
|                   | V100U|               |
|      Switch       |------| Service Port  |
|                   |      | 192.168.25.x  |
|___________________|      |_______________|
                | V1U, V100T
                | (eth0)
            ------------------------------------
           | Linux Box                          |
           | eth0 Service (V100T): 192.168.25.99|
           | eth0 autoip: 169.254.31.23         |
            ------------------------------------

我有一个系统,里面有网络交换机、IP 摄像头、Linux 机箱、服务端口(交换机)和用于其他用途的 Windows PC。交换机配置为服务端口有一个带标签的 VLAN100。VLAN100 在 Linux 机箱端口上有一个标签,用于提供具有特殊服务地址的独立接口。交换机删除并在 V100U 端口上添加此标签,这样服务端口(PC)就不需要任何 VLAN 知识了。WinPC 和 Linux 机箱一样具有自动 IP 地址并提供特殊服务。

Linux 机器上的配置如下。

auto eth0
iface eth0 inet manual
   # get an auto ip by avahi e.g. 169.254.31.23
   up avahi-autoipd -D --force-bind eth0
   # add route for the IP-Cam
   post-up ip route add 172.16.0.0/16 dev eth0

# service port
auto vlan100
iface vlan100 inet static
   vlan_raw_device eth0
   address 192.168.25.99
   netmask 255.255.255.0

该配置有效。因此,我可以从 Linux 机器访问 IP-Cam 和 WinPC。服务端口也发挥了作用,并且可以通过 192.168.25.99 上的 vlan100 设备访问 Linux 机器。

系统要求发生了变化,我需要另一种配置。首先,我无法更改交换机设置,因为它是预编程的嵌入式交换机。我需要知道的是,交换机上的服务端口 (V100U) 的行为类似于 IP-Cam/Win-PC 的端口。这意味着要将 V1U 与 V100T 设备桥接。因此,连接到服务端口的设备可以访问所有 V1U 端口,而无需了解 VLAN。服务端口不再用作服务端口 :)。

于是我把配置改成如下,觉得没什么特别的:

# V1U network
auto eth0
iface eth0 inet manual


# V100T network
auto vlan100
iface vlan100 inet manual
   vlan_raw_device eth0  

auto br0
iface br0 inet manual
   bridge_ports eth0 vlan100
   # get an auto ip by avahi e.g. 169.254.31.23
   up avahi-autoipd -D --force-bind br0
   # add route for the IP-Cam
   post-up ip route add 172.16.0.0/16 dev br0

将设置更改为此之后。网络表现为有线。所以有时我可以从 Linux 机器 ping IP-Cam,有时不能。此外,连接到服务端口的设备有时可以 ping Linux 机器,有时不能。从服务端口 ping IP-Cam 永远不起作用。所以我想我添加了一个循环或其他东西。有什么想法可以让系统运行吗?

答案1

我能找到最接近的线索是这个:

https://bridge.linux-foundation.narkive.com/KYSQbc1f/bridging-untagged-and-tagged-vlans#post5

基本上,它不起作用,您必须强制 ebtables 使其工作,每个人都同意这一点,但未经测试的示例不起作用。并且有一个 Linux-2.4 补丁可以满足我们的要求,但显然它没有被接受。

我最终使用具有 vlan 功能的交换机来标记出 VLAN 1,并使用 eth0.1 作为桥接成员。

该线程已经足够旧了,我希望有一个更好的答案,但没有找到。

相关内容