如何使用 Linux Vlan 桥接作为 ap?

如何使用 Linux Vlan 桥接作为 ap?

作为更大任务的一部分,我正在尝试构建一个简单的设置:

一台 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 名称 eno1.19 类型 vlan id 19
ip link add link 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

现在我正尝试使用该设备 ping pc2,但是任何一端都无法 ping 通。

显然,我在这里做错了什么,也许误解了这些命令的工作原理,你能帮帮我吗?

顺便说一句,
我也尝试过使用网桥 vlan:
bridge vlan add vid 19 add eno1
但是我得到的答复是不支持,知道为什么吗?

答案1

我已经解决了。

我误以为从常规 netdev 移动到 vlan netdev 时会添加 vlan,但事实恰恰相反。
当数据包从 vlan netdev 移动到常规 netdev 时会添加 vlan,而当数据包从常规 netdev 移动到 vlan 时会删除 vlan。
测试的目的是验证 pc (1) 是否确实具有添加和删除 vlan 的能力。
为此可以使用另一个测试,使用 2 个虚拟 netdev - wlan0、wlan1(来自 mac80211_hwsim),将它们都添加到 vlan 19 netdev。
它们执行以下桥接:
bridge1 - wlp2s0 和 wlan0.19
bridge2 - wlan1 和 wlan0
bridge3 - wlan1.19 和 eno1
现在数据包将到达 wlp2s0,移动到 wlan0(带有 vlan),移动到 wlan1(带有 vlan),然后移动到 wlan1.19(无 vlan)和 eno1,传出到设备。
可以使用嗅探器来检查行为是否符合预期。

相关内容