Linux

如何使用 linux vlan 橋接作為 ap?

  • January 25, 2020

作為一項更大任務的一部分,我正在嘗試建構一個簡單的設置:

一台 linux pc 1 (ubuntu) 以有線方式連接到另一台 linux pc 2,並以無線方式連接到另一台設備。

設備和 pc 2 應該能夠使用 vlan 橋接相互 ping 通。

我做了以下事情:

在 pc 1 上:

停止網路管理器後。

確保 8021q 已載入(lsmod | grep 8021q),它已載入。

ifconfig eno1 up

ifconfig wlp2s0 up

(使用 hostapd 將設備連接到 wlp2s0 - 為其分配靜態 ip 192.168.1.120)

(將設備連接到 eno1 - 為其分配靜態 ip 192.168.1.100)

ip link add link eno1 name eno1.19 type vlan id 19

ip連結添加連結 wlp2s0 名稱 wlp2s0.19 類型 vlan id 19

ifconfig eno1 up

ifconfig wlp2s0 up

brctl addbr br-lan

ifconfig br-lan 192.168.1.1

ifconfig br-lan up

brctl addif br-lan eno1.19

brctl addif br-lan wlp2s0。 19

現在我正在嘗試使用該設備對 pc2 進行 ping 操作,但是我無法從任何一側 ping。

顯然,我在這裡做錯了,也許誤解了這些命令是如何工作的,你能幫幫我嗎?

順便說一句

,我也嘗試過使用 bridge vlan:

bridge vlan add vid 19 add eno1

但是我收到不支持,知道為什麼嗎?

我已經解決了。

我有一個錯誤的想法,即從正常 netdev 移動到 vlan netdev 時添加了 vlan,事實恰恰相反。

當數據包從 vlan netdev 移動到普通的 vlan 時添加 vlan,當數據包從普通的 netdev 移動到 vlan 時刪除它。

測試的目的是驗證 pc (1) 實際上是否具有 vlan 能力,添加和刪除。

為此,可以使用另一個測試,使用 2 個虛擬 netdevs - wlan0、wlan1(來自 mac80211_hwsim),將它們都添加到 vlan 19 netdevs。

他們做以下橋接:

bridge1 - wlp2s0 with wlan0.19

bridge2 - wlan1 and wlan0

bridge3 - wlan1.19 and eno1

現在數據包將到達 wlp2s0,移動到 wlan0(帶 vlan),移動到 wlan1(帶 vlan),然後到 wlan1.19(無 vlan),再到 eno1,輸出到設備。

可以使用嗅探器檢查行為是否符合預期。

引用自:https://serverfault.com/questions/982420