我的問題是這樣的設定是否有效:
一個電纜數據機、幾台 LAN 機器以及路由器/伺服器(Linux 盒子,只有 1 個連接埠)連接到廉價的智慧管理交換機,例如 TP-LinkTL-SG108E。 LAN 機器應該能夠透過路由器連接到 Internet。
這樣的交換器是否可以設定為LAN 機器接收未標記的流量,但路由器將接收其流量(例如,帶有VLAN ID 1),且數據機也會接收未標記的流量,但路由器將接收其流量(例如,帶有VLAN ID 2) ?
此外,是否有任何安全性或性能考慮因素*?
*) 我知道,由於路由器僅使用 1 個端口,因此頻寬將在 LAN 和 WAN 流量之間分配。為此,我會根據我的需要在兩個方向上對 eth0 進行整形。
答案1
我發現你的問題是因為我正在研究你提到的特定路由器(TL-SG108E)的 VLAN 廣播問題。暫時把這個問題放在一邊,您所要求的應該可以透過該設備或任何其他支援 VLAN 的「智慧型交換器」上的 VLAN 實現。
您可以將電纜數據機插入的連接埠定義為給定 VLAN 的“未標記”,並設定 PVID 以進行匹配。在此模式下,交換器將自動插入和刪除流向該連接埠的所有流量的 VLAN 標頭,因此該裝置不知道它位於 VLAN 上,但網路中的其他裝置(例如其他交換器或您的路由器)將收到VLAN 標記。當然,正如其目的一樣,不同 VLAN 上的設備不會看到彼此的網路流量。
您可以對所有其他本地 LAN 設備執行相同的操作,將它們設定為在不同 VLAN 上未標記。
然後,對於通往 Linux 路由器的端口,您可以將其定義為具有兩個 VLAN 的標記端口,這會告訴交換器將帶有 VLAN 標記的資料包直接傳遞到裝置。 Linux 能夠設定 VLAN 介面來處理 VLAN 標記並將資料包傳送到適當的介面。
此時,您可以使用 iptables 使用 FORWARD 鏈在它們之間路由資料包,就像您想要在 Linux 機器上有兩個實體介面一樣在它們之間路由。