Linux VLAN 桥接

Linux VLAN 桥接

我的家庭网络有多个 VLAN,一个用于 LAN,一个用于 WLAN,一个用于 Internet。我想使用桥接,这样就不必为每台机器配置相同的 VLAN,它们都有自己的 VLAN ID 和桥梁分别是LAN、WLAN和互联网。

我已尝试过,但由于某种原因,keep-alive/ttl 似乎被破坏了,因为 SSH 会话等突然断开连接。

我们在工作场所使用了同样的设置,已经工作了 4 年多,拥有 100 多个客户,但它是定制的防火墙/路由器硬件,因此无法访问。我知道它运行的是 Linux。

那么 Debian/Ubuntu 默认网络设置到底哪里出了问题,还是只是 NIC 驱动程序/硬件问题?我尝试过各种 ttl 等设置,但都无济于事。桥接器中发生了问题,因为当前的 VLAN 专用设置工作正常。

接口:

 auto lo
 iface lo inet loopback

 # The primary network interface
 allow-hotplug eth0
 allow-hotplug eth1

 iface eth0 inet static
 iface eth1 inet static

 auto vlan111
 auto vlan222
 auto vlan333
 auto vlan444
 auto br0
 auto br1
 auto br2

 # LAN
 iface vlan111 inet static
         vlan_raw_device eth0

 # WLAN
 iface vlan222 inet static
         vlan_raw_device eth0

 # ADSL Modem
 iface vlan333 inet static
         vlan_raw_device eth1

 # Internet
 iface vlan444 inet static
         vlan_raw_device eth0

 # LAN bridge
 iface br0 inet static
         address 192.168.0.1
         netmask 255.255.255.0
         bridge_ports eth0.111
         bridge_stp on

 # Internet bridge
 iface br1 inet static
         address x.x.x.x
         netmask x.x.x.x
         gateway x.x.x.x
         bridge_ports eth1.333 eth0.444
         bridge_stp on
         post-up iptables -t nat -A POSTROUTING -o br1 -j MASQUERADE
         pre-down iptables -t nat -D POSTROUTING -o br1 -j MASQUERADE

 # WLAN bridge
 iface br2 inet static
         address 192.168.1.1
         netmask 255.255.255.0
         bridge_ports eth0.222
         bridge_stp on

系统控制:

net.ipv4.conf.default.forwarding=1

答案1

对于vlan,我们使用以下方法:

自动 eth0.6
        iface eth0.6 inet 静态
        地址 192.168.6.13
        网络掩码 255.255.255.0
        广播 192.168.6.255
        预先 vconfig add eth0 6
        关闭后 vconfig rem eth0.6

桥接接口上的 VLAN 的情况没有太大区别:

自动 br0
iface br0 inet 静态
        地址 192.168.0.11
        网络掩码 255.255.255.0
        广播 192.168.0.255
        bridge_stp 开启
        bridge_ports eth0 eth1
        bridge_bridgeprio 60000

自动 br0.6
iface br0.6 inet 静态
        地址 192.168.6.11
        网络掩码 255.255.255.0
        广播 192.168.6.255
        网关 192.168.6.1
        预先 vconfig 添加 br0 6
        停机后 vconfig rem br0.6

但是,查看您的设置,您似乎试图在不同接口上桥接两个不同的 VLAN。我真的认为您的意思是在您的网络之间进行路由。

您的交换机能识别 VLAN 吗?您可能希望设置交换机,以便将连接到该端口的机器的正确 VLAN 上的正确端口设置为未标记。

答案2

我认为桥接 VLAN 不是一个好主意。VLAN 基本上将一台交换机(或多台交换机)拆分成多个虚拟网段。通过桥接两个 VLAN,您可以将它们拆分的广播域重新连接在一起,从而有效地使它们再次属于同一个网段。那么,为什么要使用 VLAN 呢?

正如许多人建议的那样,您需要在 VLAN 中的不同子网之间进行路由

答案3

您正在合并该文件中的语法。

我的第一个建议是确保您已经安装了 ifupdown-scripts-zg2 以获得正确的 vlan 支持,然后切换到更合理的 ethX.VLAN 命名,并记得添加自动 ethX.VLAN 行以便它们在启动时启动。

答案4

“SSH 在一段时间后断开连接”问题听起来像是我的老敌人,rp_filter。

http://www.tolaris.com/2009/07/13/disabling-reverse-path-filtering-in-complex-networks/

尝试这个:

net.ipv4.conf.lo.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0

对任何仍有 1 组的接口手动设置相同的内容。

相关内容