橋接、VLAN 和網際網路存取。如何?

橋接、VLAN 和網際網路存取。如何?

我正在嘗試在本地網路和互聯網之間建立工作連接。首先,我在 eth0(LAN)和 eth1(網際網路)之間設定一個橋接器(br0,有一個其他介面沒有的 IP 位址),並在 iptables 中建立一條 nat 規則來偽裝 LAN 中本地 ip 的來源 ip 。一切正常,我可以從子網路 192.168.1.0 存取網路。

現在我想建立兩個 VLAN:100 和 200。來自本地 LAN 的封包到達時標記有 vlan Id 100/200,並且流量通過 eth1。但怎樣才能讓封包回到正確的eth0.x呢?

我考慮過創建兩個網橋,一個用於 vlan 100,一個用於 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

相關內容