桥接、VLAN 和 Internet 访问。如何操作?

桥接、VLAN 和 Internet 访问。如何操作?

我正在尝试在本地网络和互联网之间建立有效的连接。首先,我在 eth0(LAN)和 eth1(互联网)之间设置了一个网桥(br0,具有其他接口没有的 IP 地址),并在 iptables 中创建了 nat 规则以伪装 LAN 中本地 IP 的源 IP。一切正常,我可以从子网 192.168.1.0 访问互联网。

现在我想创建两个 vlan:100 和 200。我尝试使用 vconfig 创建 eth0.100 和 eth0.200,但我不知道如何将它们连接到互联网。来自我本地 LAN 的数据包到达时带有 vlan ID 100/200 标签,流量通过 eth1。但我如何才能让数据包返回正确的 eth0.x?

我考虑过创建两个网桥,一个用于 VLAN 100,一个用于 VLAN 200,并将它们连接到 eth1。但是,我该如何路由从互联网接收到的数据包,使其到达正确的网桥呢?

当前设置:

eth0 <--> br0 <--> eth1

建议的:

1.

eth0.100 <--> br100 <--> eth1

eth0.200 <--> br200 <--> eth1

2.

eth0.100 & eth0.200 <--> br0 <--> eth1

答案1

您需要将流量从 LAN 路由到 WAN。

这是由路由器而不是网桥完成的,因此它应该看起来像这样:

eth0 (192.168.1.0/24) <==> eth1 (公共互联网)

对于 VLAN 100 和 200,如何将流量路由到正确的 VLAN?通过为每个 VLAN 创建不同的子网,这样您的主机就知道哪个 VLAN 是正确的输出接口,所以现在应该看起来像这样:

eth0.100 (192.168.100.0/24) <==> eth1 (公共互联网)

eth0.200 (192.168.200.0/24) <==> eth1 (公共互联网)

记住两种情况的 NAT:

iptables -I POSTROUTING -t nat -o eth1 -j MASQUERADE

相关内容