
Ich habe zwei Mikrocontroller-Boards mit demselben WLAN-Modul. Eines der Boards fungiert als Access Point (AP), während das andere als Station (STA) fungiert und versucht, eine Verbindung mit dem AP herzustellen, wenn dieser in Reichweite ist.
Ich verwende nur Link-Local-IPv6-Adressen. Das Seltsame ist, dass es funktioniert, wenn ich die Link-Local-Multicast-Adresse (ff02::1) anpinge, wenn die STA zum ersten Mal eine Verbindung zum AP herstellt. Nachdem ich die Verbindung zum AP getrennt und wiederhergestellt habe, kann ich die Link-Local-Multicast-Adresse nicht mehr anpingen, obwohl ich die IPv6-Link-Local-Adresse (fe80:xx) des AP anpingen kann.
Wenn ich die Schnittstelle auf der STA-Seite zurücksetze, kann ich erneut einen Ping an die STA senden. Irgendwelche Ideen, wie ich das Problem lösen kann, dass die Link-Local-Adresse nicht erreichbar ist? Der gesamte Prozess muss automatisiert sein, d. h. es darf keine Interaktion des Benutzers erforderlich sein.
Hier ist eine Beispielsitzung:
STA stellt zum ersten Mal eine Verbindung zum AP her
wpa_supplicant -c /etc/wpa_supplicant.conf -Dnl80211 -iwlan0
Link-Local-Multicast funktioniert einwandfrei
ping6 -I wlan0 ff02::1
Trennen und erneut verbinden
killall wpa_supplicant wpa_supplicant -c /etc/wpa_supplicant.conf -Dnl80211 -iwlan0
Link-Local-Multicast funktioniert nicht
ping6 -I wlan0 ff02::1 connect: Netzwerk ist nicht erreichbar
Link-Only-Unicast funktioniert einwandfrei
ping6 -I wlan0 fe80:xx
Das Hoch- und Herunterfahren der Netzwerkschnittstelle löst das Problem
IP-Link-Set WLAN0 down und IP-Link-Set WLAN0 up ping6 -I wlan0 ff02::1 #funktioniert
Antwort1
Das Problem lag bei den systemd-Netzwerkgerätedateien. Das Löschen dieser Dateien und ein Neustart lösten das Problem.