重新连接后 IPv6 链路本地多播停止工作

重新连接后 IPv6 链路本地多播停止工作

我有两块微控制器板,上面有相同的 Wifi 模块。其中一块板充当接入点 (AP),另一块板充当站点 (STA),在 AP 处于覆盖范围内时尝试与其建立连接。

我只使用链路本地 IPv6 地址。奇怪的是,如果我在链路本地多播地址 (ff02::1) 上 ping,STA 第一次连接到 AP 时,它会正常工作。断开并重新连接到 AP 后,我无法再 ping 到链路本地多播地址,尽管我可以 ping 到 AP 的 IPv6 链路本地地址 (fe80:xx)。

如果我重置 STA 端的接口,我可以再次 ping 到 STA。有什么想法可以解决无法访问链接本地地址的问题吗?整个过程必须自动化,即不需要用户进行任何交互。

以下是一个示例会话:

STA首次连接AP

wpa_supplicant -c /etc/wpa_supplicant.conf -Dnl80211 -iwlan0

链路本地多播工作正常

ping6 -I wlan0 ff02::1

断开连接并重新连接

杀死所有 wpa_supplicant wpa_supplicant -c /etc/wpa_supplicant.conf -Dnl80211 -iwlan0

链路本地多播不起作用

ping6 -I wlan0 ff02::1 connect: 网络不可达

仅链路单播工作正常

ping6 -I wlan0 fe80:xx

打开和关闭网络接口可以解决问题

ip link set wlan0 down && ip link set wlan0 up ping6 -I wlan0 ff02::1 #有效

答案1

问题出在 systemd 网络设备文件上。只需删除这些文件并重新启动即可解决问题。

相关内容