
同じ Wi-Fi モジュールを搭載したマイクロコントローラ ボードが 2 つあります。ボードの 1 つはアクセス ポイント (AP) として機能し、もう 1 つは範囲内にあるときに AP に接続しようとするステーション (STA) として機能します。
私はリンクローカル IPv6 アドレスのみを使用しています。奇妙なことに、リンクローカル マルチキャスト アドレス (ff02::1) に ping すると、STA が AP に初めて接続したときには機能します。AP を切断して再接続すると、AP の IPv6 リンクローカル アドレス (fe80:xx) に ping することはできますが、リンクローカル マルチキャスト アドレスに ping することはできなくなります。
STA 側のインターフェースをリセットすると、STA に再度 ping できます。リンク ローカル アドレスに到達できない問題を解決する方法はありますか? プロセス全体を自動化する必要があります。つまり、ユーザーによる操作は必要ありません。
セッションの例を次に示します。
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 ネットワーク デバイス ファイルにありました。それらのファイルを削除して再起動するだけで問題は解決しました。