Ich versuche, ein 6lowpan-Netzwerk mit Raspberry Pi-Geräten und eingebetteten Systemen zu erstellen. Ich habe bluetooth_6lowpan ( modprobe bluetooth_6lowpan
und echo 1 > /sys/kernel/debug/bluetooth/6lowpan_enable
) in beiden Raspberry Pi-Geräten aktiviert, wobei eines mit radvd installiert und als konfiguriert ist
interface bt0
{
AdvSendAdvert on;
prefix 2001:db8::/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
Ich habe einen anderen Raspberry Pi (Pi 4, mit Kernel Version 5.4.83-v7l+) und ein eingebettetes Gerät an diesen Router angeschlossen (Pi W Kernel Version 5.4.79+). Ich kann von beiden Seiten zwischen den Geräten und dem Router pingen, aber nicht von einem Raspberry Pi über den Router zum anderen eingebetteten Gerät. Außerdem kann ich keinen Socket zwischen Router und Raspberry Pi-Gerät öffnen (ich kann einen Socket vom eingebetteten Gerät öffnen und es kann Daten senden, aber nicht empfangen). Es scheint, dass Raspberry Pi keine Pakete an die bt0-Schnittstelle weiterleitet.
ip -6 route
Von beiden Raspberry Pis sind unten:
Gerät
::1 dev lo proto kernel metric 256 pref medium
2001:db8::/64 dev bt0 proto kernel metric 256 expires 86263sec pref medium
fe80::/64 dev bt0 proto kernel metric 256 pref medium
default via fe80::b827:ebff:fe0e:8ee dev bt0 proto ra metric 1024 expires 1663sec hoplimit 64 pref medium
Router
::1 dev lo proto kernel metric 256 pref medium
2001:db8::/64 dev bt0 proto kernel metric 256 pref medium
fe80::/64 dev wlan0 proto kernel metric 256 pref medium
fe80::/64 dev bt0 proto kernel metric 256 pref medium
BEARBEITEN 1
Im Vergleich zum Leitfaden (https://jan.newmarch.name/IoT/LinuxJournal/Routing/, warum brauchen wir eine Lowpan-Schnittstelle!!), habe ich festgestellt, dass die nächste Hoffnung für die Standardroute (mit dem Befehl route -A inet6
) [::]/0 die Adresse des Routers ist, fe80::1 im Tutorial, aber in meinem Fall ist die nächste Hoffnung [::]. Ist das das Problem? Wie kann ich das lösen?
Ich habe Folgendes versucht
sudo ip r a 2001:db8::/64 dev bt0
sudo ip r a default via 2100:db8::1
RTNETLINK answers: No route to host
Und nichts hat sich für die Ausgabe von route -A inet6 geändert.
Kernel IPv6 routing table Destination Next Hop Flag Met Ref Use If localhost/128 [::] U 256 1 0 lo
2001:db8::/64 [::] U 256 2 0 bt0
2001:db8::/64 [::] U 1024 1 0 bt0
fe80::/64 [::] U 256 2 0 wlan0
fe80::/64 [::] U 256 2 0 bt0
[::]/0 [::] !n -1 1 0 lo
localhost/128 [::] Un 0 3 0 lo
2001:db8::/128 [::] Un 0 3 0 bt0
2001:db8::1/128 [::] Un 0 4 0 bt0
fe80::/128 [::] Un 0 4 0 wlan0
fe80::/128 [::] Un 0 3 0 bt0
fe80::98d4:d9d4:4e46:dc6a/128 [::] Un 0 3 0 wlan0
fe80::b827:ebff:fe0e:8ee/128 [::] Un 0 3 0 bt0
ff00::/8 [::] U 256 4 0 wlan0
ff00::/8 [::] U 256 2 0 bt0
[::]/0 [::] !n -1 1 0 lo