我正在嘗試在本地網路和互聯網之間建立工作連接。首先,我在 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