IPv6

Es ist 2003 und ich lerne IPv6, besser spät als viel zu spät :-P Könnte man _fast_ sagen.

Hier finden sich die haarsträubensten Antworten auf die Frage, warum noch kein IPv6 eingesetzt wird!

Da der ISP nicht aus dem .... kommt, setzte ich als Tunnel Broker SixXS ein. Zusammen mit dem AICCU ist hier der Weg offen für alle Tests, auf einer Linuxschüssel!

 


Hey, ich habe von SixXS gerade ein komplettes /48 bekommen.... Wie cool ist das denn?


 

Es gibt einen interessanten Ticker, welchem einem vorrechnet wie viel IPv4 Adressen

es noch gibt und wie lange es wohl dauert bis die Letzte IPv4 Adresse vergeben wurde.

Macht für mich irgendwie den Eindruck wie unsere Deutsch Schuldenuhr, nur das es schnell gegen Null läuft.

 

Ich arbeite gerade an meiner IPv6 Zertifizierung bei Hurrican Electric. Wie

weit ich damit inzwischen gekommen bin, kann man an diesem Bildchen beschauen!

Schon ist es so weit... Die Zertifizierung ist abgeschlossen, fehlt nur noch

das T-Shirt :-)

Zusätzlich ist https://www.kernel-error.de/ ab jetzt für alle IPv6 only

Systeme komplett zu erreichen. Das gilt natürlich auch für E-Mail usw..

IPv6 Certification Badge for sebastianvdm

https://www.kernel-error.de/ ist jetzt schon IPv6 validiert.  

Hurricane Electric T-Shirt Sendung

Hurricane Electric T-Shirt vorneHurricane Electric T-Shirt hinten

Hier nun ein paar der Dinge, welche ich schon verstanden habe!

 

  • IPv6 ist nicht IPv4

  • NAT ist tot :-)

  • Man darf ~verschwenderisch mit Adressen umgehen~

 

Das man jetzt verschwenderisch mit Adressen umgehen kann/soll ist für mich sehr gewöhnungsbedürftig. Ich habe Vorschläge gesehen, jedem Dienst eine eigene IP-Adresse zu verpassen. So sind spätere Umzüge dieser Dienste auf andere Server viel einfacher zu realisieren. Denn noch fällt es mir extrem schwer einer NIC 10 oder mehr feste ~öffentliche~ IP-Adressen zu geben... Wenn man sich aber überlegt das man als Netz per default ein /64 bekommt und dieses ohne jede Begründung vorm RIPE, wird einem da schon ganz anders (positiv gemeint)! Wie auch immer, ich werde mich schon daran gewöhnen. Sicher kann ich mir in einigen Jahren überhaupt nicht mehr vorstellen, wie es mit den wenigen Ipv4 Adressen überhaupt funktioniert hat. Es soll denn noch Leute geben, welche ein /4 doch noch einführen wollen O_o ich hoffe doch schwer dass so ein Mist nicht kommt!

 

IPv6 Adressen haben eine länge von 128bit. Es gibt also 2128 Möglichkeiten. Das sind 3,40282367 * 1038 oder ausgeschrieben: 340 282 366 920 938 463 463 374 607 431 768 211 456 noch Fragen?

 

Im Gegensatz zu IPv4 Adressen werden IPv6 Adressen hexadezimal geschrieben und zwar so, das immer zwei Bytes durch einen : getrennt werden.

  • 2a01:0198:0200:0945:0000:0000:0000:0002

OK, das kann sich kein Mensch mehr merken. Wohl auch ein Grund, warum der Umstieg von IPv4 zu IPv6 etwas abschreckt. Ein 192.168.2.3/24 macht einem sofort klar welche Adressen es im Netz geben kann, wie groß es ist usw. usw... Ein 2a01:0198:0200:0945:0000:0000:0000/64 sieht erstmal wüst aus, zu dem ist es SO groß das man es einfach nicht alles im Kopf haben kann. Ohne gut funktionierendem DNS-Server kann man also IPv6 knicken!

 

Man kann die IPv6 Adressen etwas einkürzen. So darf man alle führenden Nullen einfach streichen, was aus meinem Beispiel schon so etwas macht:

  • 2a01:198:200:945:0:0:0:2

Zusätzlich kann man einen ganzen Block Nullen gegen zwei Doppelpunkte tauschen (wirklich nur einen Block, bei zwei Blöcken wüsste am Ende ja keiner wieviele Nullen es nun wo sein müssen). Damit schaut es nun so aus:

  • Als Adresse: 2a01:198:200:945::2

  • Als Netz: 2a01:198:200:945::/64

Kürzer ist es schon mal!

 

Ach ja, aus IPv4 ist die Darstellung als Prefix mit herübergewandert.

So ist die kleinste Größe für PI (Provider Independent) 2a01:198::/32 = 65536 /48 Netze und für PA (Provider Aggregatable) 2a01:198:200::/48 = 65536 /64 Netzte. Das bedeutet, ein 2a01:198:200:945::/64 hat also ca.: 18.446.744.073.551.616 Adressen. Ich sag ja, ein /64 kann man nicht mehr wirklich überblicken (es soll Ausnahmen geben)!

 

ARP wurde bei IPv6 von ND (Neighbor Discovery) abgelöst. IPv6 ist stark auf Autokonfiguration ausgelegt. Zusätzlich gibt es daher auch DAD (Duplicatet Address Detection). Im Grund wäre ein DHCP Server nur noch nötig um weitere Informationen wie DNS-Server, WINS (blödes Beispiel ich weis) usw.. an den Client zu übermitteln! Geil vor allem... mit DAD ist es viel viel viel viel einfacher geworden redundante DHCP-Server zu betreiben. Zumindest in der Theorie. Wenn ich mich näher mit ND, DND usw. beschäftigt habe, werde ich das mal genauer aufschlüsseln :-)

 

Zurück zu den Adressen.....

 

Der localhost hat die coolste und kürzeste Adresse bekommen:

::1

Hier kann man sehr schön den Vorteil mit den :: anstelle der Nullenblöcke erkennen. Sonst müsste ich hier schreiben:

0000:0000:0000:0000:0000:0000:0000:0001 (mist nun habe ich es doch geschrieben)

Das localnet ~Broadcast Domain~ (Broadcast ist hier leicht das falsche Wort, ich habe aber im Moment nichts besseres) hat damit:

ff02::1

 

ff002 ist ne feine Geschichte. Will ich mir anschauen welche Hosts sich hier tummeln, sollten diese auf folgendes reagieren:

ping6 -I interface ff02::1

Mit Routern ist es ähnlich, diese sollten auf folgendes reagieren:

ping6 -I interface ff02::2

 

Link local Adressen sind immer welche aus dem Netz:

fe80::/10

 

Für Dokumentation ist:

2001:DB8::/32 vorgesehen.

 

Alle Adressen beginnen also mit fe80, fe90 fea0 oder feb0. Jetzt wird es kompliziert, denn der Host bildet diese Adresse immer selbst, auch die öffentlichen beim RA. Dieses macht er indem er vom Hexadezimal wert FE80 die ersten 10 Bits in binär also 1111111010 sowie 54 folgende binäre Nullen nutzt. Für die letzten 64 Bits wird die NIC-ID (die MAC Adresse) des Hosts im EUI-64 Format benutzt (Wir müssen ja auf 128 kommen). Somit sollte die Link Local Adresse eindeutig sein! Aber es sollte ja auch jede MAC-Adresse eindeutig sein. Zum glück gibt es ja jetzt DAD :-D Wie zu sehen ist haben die IPv6 Jungs schon mitgedacht. Denn die MAC Adressen haben ja nur 48 Bit. Es wird aber das EUI-64 Format benutzt. Die MAC Adressen dürfen also, wenn sie irgendwann auch mal knapp werden, auf 64 Bit erweitert werden, ohne das IPv6 umgebaut werden muss. IPv6 kann also jetzt schon mit 64 bitigen MAC-Adressen umgehen. Ich finde das cool!

 

Ich nutze, wie schon erwähnt, http://www.sixxs.net als Tunnelbrocker. Hier also jetzt erstmal eine kleine Werbeeinblendung für SixXS. Die Jungs stellen ihren Dienst kostenlos zur Verfügung. Um Missbrauch klein zu halten muss man bei der Anmeldung schon begründen, warum man einen Account haben möchte. Dieses wird dann auch wirklich von einem Menschen begutachtet. Zusätzlich gibt es ein Punktesystem. Nach der Anmeldung hat man genug Punkte um einen Tunnel mit einer IPv6 Adresse zu beantragen. Hat man diesen muss bewiesen werden, dass man diesen Tunnel 24/7 offen halten kann, dann gibt es mehr Punkte. Nach einer gewissen Zeit kann man dann ein Netz /48 beantragen. Damit hat man dann die Möglichkeit 280 = 1,2082582 * 1024 = 1208925819614630000000000 Hosts online zu bringen... Ich meine damit das es feste öffentlich erreichbare IP Adressen sind. Wer schon mal versucht hat als „normaler“ Mensch bei seinem ISP auch nur EINE feste IP zu bekommen der wird verstehen warum mir hier die Kinnlade auf den Tisch geknallt ist! Zusätzlich kann das ganze natürlich auf das eigene >>RIPE-Handle<< gelegt werden.

 

Möchte man seine Linuxkiste dazu überreden als Router zu arbeiten hat sich im ersten Schritt nicht viel gegenüber IPv4 geändert.

echo 1 > /proc/sys/net/ipv6/conf/default/forwarding

Man beachte bitte das IPv6 einen eigenen Filter hat. Nicht mehr iptables sondern ip6tables. Wer iptables kennt, kann auch ip6tables!

Ein kleines Beispiel für ip6tables habe ich hier...

 

Das Thema IPv6 und Autokonfiguration habe ich ja schon angesprochen. Wir brauchen also ein kleines Stück Software, welches unsere Linuxkiste im Netzwerk als IPv6 Router bekannt macht. Der Router Advertisement Daemon (radvd) ist da mein Mittel der Wahl. Nach der Installation sollte es die Konfigurationsdatei /etc/radvd.conf geben. In meinem Fall schaut diese wie folgt aus:

 

interface eth0
{
AdvSendAdvert on;
AdvLinkMTU 1280;
MaxRtrAdvInterval 300;
prefix 2a01:198:200:945::/64
{
AdvOnLink on;
AdvAutonomous on;
};
 
};

 

Wurde der Daemon gestartet, informiert er nun alle am Interface eth0 angeschlossenen Systeme darüber, dass mein Netz 2a01:198:200:945::/64 hier geroutet wird. Auf den einzelnen Host kann man dann mit:

ip add show eth0

//Ich gewöhne mir gerade an, anstelle von ifconfig immer ip zu benutzen. Dieses kann irgendwie mehr und stellt Infos sinnvoller dar, finde ich zumindest :-D//

Sehen ob diese sich eine IP aus diesem Netz geholt haben. Im Grunde reicht diese Konfiguration schon aus um allen anderen Systemen im Netz ins Internet zu bringen und das Internet direkt an alle Systeme. Hier fällt einem auf: KEIN NAT... Die Systeme sind also damit direkt im Internet. Man sollte sich also einen Kopf über echtes Firewalling machen und vielleicht darüber, welche Dienste man überhaupt wie und wo anbietet! Sonst geht das schnell ins Auge!

 

Inzwischen ist mein root-server mit allen Diensten schon per IPv6 zu erreichen, was recht einfach war.

 

Fragen oder Anregungen sehe ich natürlich wie immer gerne!

 


 

Ich habe gerade ein ganz cooles Firefox Plugin gefunden. Dieses zeigt einem unten rechts im Fenster jeweils die IP des Webserver an, mit welchem man sich gerade unterhält. Grün ist dabei immer IPv6 (für den der es nicht schon an der Adresse sieht)! Das Plugin ist hier zu finden: https://addons.mozilla.org/de/firefox/addon/590/ Klickt man auf die IP werden einem Möglichkeiten wie: netcraft, whois.sc usw.. geboten!