简单第 2 层桥接

简单第 2 层桥接

我想制作一个非常简单的 WiFi 到以太网第 2 层桥接器。我的 WiFi 适配器支持 AP 模式,并且已成功添加 4addr。是否有创建此桥接器的简单脚本或流程?我看到的大多数帖子都使用第 3 层桥接器,这对于我预期的应用程序(通过 Sonos 扬声器进行流式传输)来说效果不佳。多播有效,但由于 MAC 寻址问题,Sonos 应用程序无法找到该设备。

答案1

用户 iproute2——目前大多数 Linux 发行版的标准。

建造一座桥并把它架起来

ip link add name br0 type bridge
ip link set br0 up

然后添加您想要桥接的设备:

ip link set wlan0 master br0 
ip link set eth1 master br0

你可以使用以下命令查看分配给网桥的链接

bridge link

注意:您应该将 IP 地址分配给网桥,而不是每个接口。如果您希望广播和多播从以太网转到无线,则需要使链接成为混杂的。Wifi 不进行多播,但它可以将多播转换为单播。

ip link set eth1 promisc on

您可能还需要启用多播转发

sysctl net.ipv4.conf.all.mc_forwarding=1 
or just the enable it on the bridge
sysctl net.ipv4.conf.br0.mc_forwarding=1

我建议使用 hostapd,而不是尝试配置 iw 来连接网桥。

hostapd 的示例配置如下:

/etc/hostapd/hostapd.conf

interface=wlan0
driver=nl80211
wpa=2
# Below line adds wlan0 to the bridge before the wifi is established
bridge=br0
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0

# Change below lines to be your ssid and pass.
ssid=wifi_ap
wpa_passphrase=password

您需要在接口中添加 br0,或者在网络管理服务的配置中添加,例如 netplan 或 NetworkManager。

在 /etc/network/interfaces 中添加以下几行应该可以起作用:

auto br0
iface br0 manual
  bridge_ports eth1

相关内容