Arbeitsgruppe IPv6 im Mesh: Unterschied zwischen den Versionen
(Kleine Syntaxkorrektur) |
K (Formatierung, Rechtschreibung, Wortwahl überarbeitet) |
||
Zeile 3: | Zeile 3: | ||
und wenn dieses blöde Mediawiki nicht gerade meine Arbeite gefressen hätte, dann wäre hier auch schon ur viel zu lesen. *grml* | und wenn dieses blöde Mediawiki nicht gerade meine Arbeite gefressen hätte, dann wäre hier auch schon ur viel zu lesen. *grml* | ||
− | + | Es gibt ca. 2 Mrd. öffentliche IPv4 Adressen. Davon sind ca 74% unter der Kontrolle der USA, vom Rest hab' ich allein 5 bei Funkfeuer registriert und muss trotzdem NAT verwenden. Da dies eher unbefriedigend ist, wurde IPv6 entwickelt, das aber bisher noch nicht wirklich große Verbreitung gefunden hat. Was liegt also näher als diese neue Technologie in einem experimentellen Netz wie Funkfeuer auszuprobieren? | |
− | + | =Probleme= | |
− | + | * Mittelfristig werden nicht alle Mesh-Router IP6 Forwarding unterstützen | |
− | + | ||
− | * Mittelfristig werden nicht alle Router IP6 Forwarding unterstützen | + | |
* Die Routingtabelle für jedes Protokoll extra zu berechnen macht nicht wirklich viel Sinn | * Die Routingtabelle für jedes Protokoll extra zu berechnen macht nicht wirklich viel Sinn | ||
* Bei Verwendung einer klassischen Tunnellösung geht interner traffic vom Mesh zu einem zentralen Server und wieder zurück ins Mesh. Das ist nicht schön. | * Bei Verwendung einer klassischen Tunnellösung geht interner traffic vom Mesh zu einem zentralen Server und wieder zurück ins Mesh. Das ist nicht schön. | ||
− | + | =Lösungsvorschläge= | |
− | + | ==6to4 Tunnel== | |
Bei IPv6 gibt es einen eigenen Prefix (2002:/16) unter dem jeder IP4 Adresse ein (ziemlich großes) IP6 Subnetz zugeornet ist. Diese Adressen sind zum Übergang zwischen IPv4 und IPv6 gedacht. | Bei IPv6 gibt es einen eigenen Prefix (2002:/16) unter dem jeder IP4 Adresse ein (ziemlich großes) IP6 Subnetz zugeornet ist. Diese Adressen sind zum Übergang zwischen IPv4 und IPv6 gedacht. | ||
− | + | ===Vorteile=== | |
* Es muss kein eigener IP6 Adressblock registriert/verwaltet werden | * Es muss kein eigener IP6 Adressblock registriert/verwaltet werden | ||
* Die Infrastruktur von IPv4 kann mitbenutzt werden | * Die Infrastruktur von IPv4 kann mitbenutzt werden | ||
Zeile 22: | Zeile 20: | ||
* Es funktioniert mit allen relevanten Firmwares | * Es funktioniert mit allen relevanten Firmwares | ||
− | + | ===Nachteile=== | |
* Eigene IP6 Blöcke können nicht im Internat angekündigt werden | * Eigene IP6 Blöcke können nicht im Internat angekündigt werden | ||
* Ein 6to4 anycast server in unserer Nähe wäre fein | * Ein 6to4 anycast server in unserer Nähe wäre fein | ||
* Es wird eine öffentliche IPv4 Adresse benötigt | * Es wird eine öffentliche IPv4 Adresse benötigt | ||
− | + | ===Funktionsweise beim Routen eines Pakets=== | |
Wenn wir ein IP6 Route haben: Wir benutzen diese | Wenn wir ein IP6 Route haben: Wir benutzen diese | ||
Zeile 34: | Zeile 32: | ||
Die Zieladdresse ist eine andere IP6 Adresse: Wir geben das Paket in ein 6to4 Tunnelpaket und senden dieses and die 6to4 anycast Adresse (192.88.99.1). | Die Zieladdresse ist eine andere IP6 Adresse: Wir geben das Paket in ein 6to4 Tunnelpaket und senden dieses and die 6to4 anycast Adresse (192.88.99.1). | ||
− | + | ===Let's do it=== | |
Zuerst müssen wir die Unterstützung für IPv6 in den Kernel laden: | Zuerst müssen wir die Unterstützung für IPv6 in den Kernel laden: | ||
Zeile 68: | Zeile 66: | ||
More coming soon ... | More coming soon ... | ||
− | + | ===Offene Fragen=== | |
* Wie gut funktioniert pathmtu discovery? | * Wie gut funktioniert pathmtu discovery? | ||
+ | ** Bei meinen bisherigen Tests (mit tracepath6 und ein paar Tage normale Nutzung) war's ok sowohl zu 6to4 Adressen als auch zu echten IP6 Adressen. - Tests in die andere Richtung wären aber auch noch nett. | ||
* Eigener anycast server für Funkfeuer? | * Eigener anycast server für Funkfeuer? | ||
* DNS für IP6 Adressen? | * DNS für IP6 Adressen? | ||
− | + | =Was wir schon haben= | |
* Einen großen Block IP6 Adressen | * Einen großen Block IP6 Adressen | ||
* natives IP6 im housing | * natives IP6 im housing | ||
Zeile 79: | Zeile 78: | ||
− | + | =Weitere Quellen= | |
− | * | + | * http://debienna.at/IPv6to4 |
− | * | + | * http://wiki.debian.org/DebianIPv6 |
+ | * http://wiki.openwrt.org/IPv6_howto |
Version vom 18. August 2008, 01:48 Uhr
Achtung dies ist ein WoW (Maintainer: siehe Changelog)
und wenn dieses blöde Mediawiki nicht gerade meine Arbeite gefressen hätte, dann wäre hier auch schon ur viel zu lesen. *grml*
Es gibt ca. 2 Mrd. öffentliche IPv4 Adressen. Davon sind ca 74% unter der Kontrolle der USA, vom Rest hab' ich allein 5 bei Funkfeuer registriert und muss trotzdem NAT verwenden. Da dies eher unbefriedigend ist, wurde IPv6 entwickelt, das aber bisher noch nicht wirklich große Verbreitung gefunden hat. Was liegt also näher als diese neue Technologie in einem experimentellen Netz wie Funkfeuer auszuprobieren?
Inhaltsverzeichnis
Probleme
- Mittelfristig werden nicht alle Mesh-Router IP6 Forwarding unterstützen
- Die Routingtabelle für jedes Protokoll extra zu berechnen macht nicht wirklich viel Sinn
- Bei Verwendung einer klassischen Tunnellösung geht interner traffic vom Mesh zu einem zentralen Server und wieder zurück ins Mesh. Das ist nicht schön.
Lösungsvorschläge
6to4 Tunnel
Bei IPv6 gibt es einen eigenen Prefix (2002:/16) unter dem jeder IP4 Adresse ein (ziemlich großes) IP6 Subnetz zugeornet ist. Diese Adressen sind zum Übergang zwischen IPv4 und IPv6 gedacht.
Vorteile
- Es muss kein eigener IP6 Adressblock registriert/verwaltet werden
- Die Infrastruktur von IPv4 kann mitbenutzt werden
- Pakete zwischen Mesh Nodes gehen über den natürlichen Weg im Mesh
- Es funktioniert mit allen relevanten Firmwares
Nachteile
- Eigene IP6 Blöcke können nicht im Internat angekündigt werden
- Ein 6to4 anycast server in unserer Nähe wäre fein
- Es wird eine öffentliche IPv4 Adresse benötigt
Funktionsweise beim Routen eines Pakets
Wenn wir ein IP6 Route haben: Wir benutzen diese
Die Zieladdresse ist eine 6to4 Adresse: Wir geben das Paket in ein 6to4 Tunnelpaket und senden dieses and die IP4 Adresse des zuständigen Gateways.
Die Zieladdresse ist eine andere IP6 Adresse: Wir geben das Paket in ein 6to4 Tunnelpaket und senden dieses and die 6to4 anycast Adresse (192.88.99.1).
Let's do it
Zuerst müssen wir die Unterstützung für IPv6 in den Kernel laden:
ipkg install kmod-ipv6 insmod /path/to/ipv6.o
Als nächstes müssen wir für unsere IP4 Adresse den 6to4 Prefix berechnen. Dazu geben wir folgenden Befehl in eine Unix Shell (die Shell von freifunkfirmware genügt leider nicht, die von kamikaze schon) ein:
PREFIX=$(printf "2002:%02x%02x:%02x%02x" $(echo MYIP | tr "." " ") )
Zum Beispiel für die ip 78.41.112.63 ist das Ergebnis "2002:4e29:703f".
Als nächstes wollen wir das ganze einmal temporär konfigurieren, um es auszuprobieren. Dazu geben wir am Router die folgenden Befehle ein:
ip tunnel add tun6to4 mode sit ttl 64 remote any local MYIP ip link set dev tun6to4 up ip -6 addr add $PREFIX::1/16 dev tun6to4 ip -6 route add default via ::192.88.99.1 dev tun6to4
So, nun sollte der Router unter der IP6 Addresse $PREFIX::1 erreichbar sein. Damit wir das aber auch nutzen können, müssen wir auch noch IPv6 am LAN konfigurieren. Wie das genau geht, hängt von der Firmware ab. Ich hab' bei mir folgendes gemacht.
Am Router:
ip -6 addr add $PREFIX:1::1/64 dev vlan0
Und am PC:
sudo ip -6 addr add $PREFIX:1::2/64 dev eth0 sudo ip -6 route add default via $PREFIX:1::1
Nun sollten wir vom PC aus die IPv6 Verbindung testen können, z.B. mit:
ping6 marvin.funkfeuer.at
More coming soon ...
Offene Fragen
- Wie gut funktioniert pathmtu discovery?
- Bei meinen bisherigen Tests (mit tracepath6 und ein paar Tage normale Nutzung) war's ok sowohl zu 6to4 Adressen als auch zu echten IP6 Adressen. - Tests in die andere Richtung wären aber auch noch nett.
- Eigener anycast server für Funkfeuer?
- DNS für IP6 Adressen?
Was wir schon haben
- Einen großen Block IP6 Adressen
- natives IP6 im housing
- öffentliche IP4 Adressen auf allen Routern