Vlan

隔離路由器上的埠

  • October 23, 2017

與製造商的討論表明,路由器的硬體和作業系統不支持甚至不支持這種配置。

到目前為止的預設設置的解釋:

Realtek 交換機已用 標記幀VLAN 1,其他 LAN 埠由 Broadcom 交換機標記並顯示在連接到 SoC 的埠 8 上。WAN 埠在埠 8 上顯示為未標記(如果這就是“u”的意思,robocfg源在這裡沒有幫助,我找不到數據表)。

猜測:SoC 乙太網驅動程序將未標記的幀與 關聯,將帶有標記的幀關聯,並丟棄具有所有其他 VLAN 標記的幀。這意味著您可以隨心所欲地配置 Broadcom 交換機,您將無法使用 VLAN 標籤隔離任何埠。eth0``VLAN 1``eth1

eth0可以通過從所有網橋中移除和移除所有網橋來測試該行為eth1,玩弄一下 VLAN id,... 8t然後... 8u從雙方發送不帶和帶不同 id 的數據包。

因此,任務是找出 SoC 乙太網驅動程序實際上做了什麼,以及它是否可以以任何方式進行配置。如果你能告訴它,比如將 VLAN id 10 路由到eth2VLAN id 20 到eth3,那麼你就準備好了。

如果不是 SoC 乙太網驅動程序,而是eth1已經是 VLAN 從屬設備,eth0並且核心進行重定向,那就更好了。

啟動後查看anddmesg的任何提示,找出指向的位置以及負責哪個核心模組等。這需要進行一些調查並查看各種內容。eth0``eth1``/sys/class/net/eth[01]/device

編輯

  1. Realtek RTL8365MB交換機有自己的核心模組rtl8365mb(可能不同的變體)可用。提供了一個非常相似的晶片的數據表。有了所有這些資訊,應該可以編寫類似於robocfg/swconfig並控制開關的東西。顯然有些人想到了這一點,但我無法Google搜尋任何成功。

  2. 根據robocfg消息來源,Broadcom 和 Realtek 晶片的 VLAN 表實現似乎足夠相似,可以從數據表中的 8.12.6 得出結論,即t“為出口添加標籤”和u“無條件為出口移除標籤” .

3)您的 SoC 晶片組似乎是具有三個片上乙太網埠的 BCM47XX,其中兩個似乎用於其他地方,並且是eth0

fwd0: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 7.14.131.56 (r641653)
fwd1: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 7.14.131.56 (r641653)
eth0: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 7.14.131.56 (r641653)

控制模組是et(可能是不同的變體)可用。

我不完全清楚是否eth1eth2屬於這個驅動程序,並且只是稍後註冊,或者它們是否屬於bcmdhd(WLAN),和/或它們是否在某個階段被 udev 重命名:

Dongle Host Driver, version 1.363.45.58013 (r651509)
Compiled in drivers/net/wireless/bcmdhd on Jun 21 2017 at 10:36:36
Register interface [eth1]  MAC: 34:97:f6:20:1b:a8
... 
Dongle Host Driver, version 1.363.45.58013 (r651509)
Compiled in drivers/net/wireless/bcmdhd on Jun 21 2017 at 10:36:36
Register interface [eth2]  MAC: 34:97:f6:20:1b:ac

所以下一步就是整理所有的網路介面。ip -d link請用, 和ls -l /sys/class/net/*/lower*的輸出編輯問題ls -l /sys/class/net*。如果這不能提供足夠的資訊,udevadm info -a -p /sys/class/net/eth0並且udevadm info -a -p /sys/class/net/eth1也會很有趣,假設路由器使用udev.

要尋找的另一件事是配置資訊所在的位置,因此modinfo rtl8365mbmodinfo et可能會產生一些有趣的東西,以及find /etc | xargs grep eth或類似的東西。

如您所見,我正在尋找資訊;如果沒有我面前的系統,這很慢而且不容易遠端完成。隨意以任何可以解決問題的方式執行這些或其他步驟。目標是找到顯示“eth1以某種方式eth0與 VLAN 標記 1 相關聯”的位置。

引用自:https://unix.stackexchange.com/questions/395819