Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
FAQ Netzwerke und -programmierung
Keine Verbindung zum Sensorknoten
Link Lokale IPv6-Adressen
Um mit Link-lokalen IPv6 Adressen zu arbeiten muss immer zwingend die Netzwerkschnittstelle mit angegeben werden über die Nachrichten versendet werden sollen. Bei Linux geschieht dies durch ein nachgestelltes %-Zeichen und den Namen der Netzwerkschnittstelle nach der IP-Adresse:
ping6 fe80::206:98ff:fe00:232%tap0
Fehlerhafte / fehlende Einträge in der Routingtabelle
netstat -nr6 | grep <prefix>
Fehlende Einträge können nachgetragen werden mit:
sudo ip -6 route del aaaa::/64 dev eth0
Falsche Einträge können sudo ip -6 route del aaaa::/64 dev eth0
Ursache kann ein fehlerhaft konfigurierter RouterAdvertisment Demon (radvd
) sein:
ps -ax | grep radvd
oder
service radvd status
Die Konfigurationsdatei für den radvd
findet sich in /etc/radvd.conf
radvd
kann mit sudo service radvd start
gestartet und mit sudo service radvd stop
gestoppt werden.
Fehlende Einträge in der Neighbor Tabelle
Umgang mit IP-Adressen
IP Adressen werden in Variablen vom Typ uip_ipaddr_t
gespeichert.
IPv6 Adressen können je nach verwendeter Funktion entweder aus 16-bit Integer-Werten
aufgebaut, oder als Text-String angegeben werden
uip_ipaddr_t ip_addr; //uiplib_ip6addrconv(const char *addrstr, uip_ip6addr_t *addr); uiplib_ip6addrconv("2001:db8::1", &ip_addr); //uip_ip6addr(addr, addr0, addr1, addr2, addr3, addr4, addr5, addr6, addr7) //Construct an IPv6 address from eight 16-bit words. uip_ip6addr(&ip_addr, 0x2001, 0xdb8, 0, 0, 0, 0, 0, 0x1);