From 239b36ed7b33b087b78d9e536a032908279193e0 Mon Sep 17 00:00:00 2001 From: pbldp <> Date: Thu, 31 May 2007 19:11:57 +0000 Subject: [PATCH] HTML and PDF of new versions --- .../Peter-Bieringer/Linux+IPv6-HOWTO.de.html | 1608 +++---- .../Peter-Bieringer/Linux+IPv6-HOWTO.de.pdf | Bin 738293 -> 737680 bytes .../Peter-Bieringer/Linux+IPv6-HOWTO.html | 4157 +++++++++++++---- .../Peter-Bieringer/Linux+IPv6-HOWTO.pdf | Bin 724429 -> 783682 bytes 4 files changed, 4074 insertions(+), 1691 deletions(-) diff --git a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.html b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.html index d4798eff..d21402cf 100644 --- a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.html +++ b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.html @@ -1,4 +1,4 @@ - +
pb at bieringer dot de
Solche Zahlen sind nicht wirklich Adressen, die auswendig gelernt werden können. Die IPv6 Adressdarstellung ist bitweise orientiert (wie bei IPv4, aber das wird nicht oft bedacht). Eine bessere Schreibweise ist deshalb die hexadezimale Darstellung. Dabei werden 4 bits (auch ?"nubble" genannt) durch die Zeichen 0-9 und a-f (10-15) dargestellt, wodurch die Länge auf 32 Zeichen reduziert wird.
Solche Zahlen sind nicht wirklich Adressen, die auswendig gelernt werden können. Die IPv6 Adressdarstellung ist bitweise orientiert (wie bei IPv4, aber das wird nicht oft bedacht). Eine bessere Schreibweise ist deshalb die hexadezimale Darstellung. Dabei werden 4 bits (auch ?”nubble” genannt) durch die Zeichen 0-9 und a-f (10-15) dargestellt, wodurch die Länge auf 32 Zeichen reduziert wird.Diese Darstellung ist ebenfalls nicht sehr angenehm (mögliche Verwechslung oder Verlust einzelner hexadezimaler Ziffern), so dass die IPv6 Designer das hexadezimales Format mit einem Doppelpunkt als Trennzeichen nach jedem 16 bit Block erweiterten. Ferner wird das führende "0x" (ein in Programmiersprachen verwendetes Identifizierungsmerkmal für hexadezimale Werte) entfernt:
Diese Darstellung ist ebenfalls nicht sehr angenehm (mögliche Verwechslung oder Verlust einzelner hexadezimaler Ziffern), so dass die IPv6 Designer das hexadezimales Format mit einem Doppelpunkt als Trennzeichen nach jedem 16 bit Block erweiterten. Ferner wird das führende ”0x” (ein in Programmiersprachen verwendetes Identifizierungsmerkmal für hexadezimale Werte) entfernt:Eine Sequenz von 16 bit-Blöcken, die nur Nullen enthaltet, kann durch ein "::" ersetzt werden. Diese Komprimierung kann aber nicht öfters als einmal durchgeführt werden
Eine Sequenz von 16 bit-Blöcken, die nur Nullen enthaltet, kann durch ein “::“ ersetzt werden. Diese Komprimierung kann aber nicht öfters als einmal durchgeführt werden2.4. FAQ (Grundlagen)
2.4.1. Warum wird der Nachfolger von IPv4 nun IPv6 und nicht IPv5 genannt?
2.4.2. IPv6 Adressen: Warum ist die Anzahl der Bits so groß?
2.4.3. IPv6 Adressen: Warum ist die Bit-Anzahl bei einem neuen Design so klein?
Es gibt (wahrscheinlich) eine Gruppe (bekannt ist nur Jim Fleming...) von Personen am Internet, die über IPv8 und IPv16 nachdenken. Für diese Designs gibt es aber keine hohe Akzeptanz und auch keine Kernel-Implementierungen. 128 bits sind die beste Wahl bezogen auf Header-Overhead und dem Datentransport. Denken Sie an die geringste Maximum Transfer Unit (MTU) in IPv4 (575 octets) und in IPv6 (1280 octets), die Header-Länge in IPv4 (20 octets Minimum, kann bis zu 60 octets mit IPv4 Optionen ansteigen) und in IPv6 sind es 48 octets (fixer Wert). Dies ist 3.4% der MTU in IPv4 und 3.8% der MTU in IPv6. Dies
bedeutet, dass der Overhead beim Header fast ident ist. Mehr bits für die Adressierung würden größere Header und deshalb mehr Overhead erfordern. Bedenken Sie auch die maximale MTU von 1500 octets (in speziellen Fällen bei Jumbo-Paketen bis zu 9k octets) bei normalen Verbindungen (z.B. Ethernet). Letztlich wäre es kein korrektes Design, wenn 10% oder 20% der transportierten Daten in einem Schicht 3-Paket für Adressen und nicht für die "Nutzlast" benötigt würden.
Es gibt (wahrscheinlich) eine Gruppe (bekannt ist nur Jim Fleming...) von Personen am Internet, die über IPv8 und IPv16 nachdenken. Für diese Designs gibt es aber keine hohe Akzeptanz und auch keine Kernel-Implementierungen. 128 bits sind die beste Wahl bezogen auf Header-Overhead und dem Datentransport. Denken Sie an die geringste Maximum Transfer Unit (MTU) in IPv4 (575 octets) und in IPv6 (1280 octets), die Header-Länge in IPv4 (20 octets Minimum, kann bis zu 60 octets mit IPv4 Optionen ansteigen) und in IPv6 sind es 48 octets (fixer Wert). Dies ist 3.4% der MTU in IPv4 und 3.8% der MTU in IPv6. Dies bedeutet, dass der Overhead beim Header fast identisch ist. Mehr bits für die Adressierung würden größere Header und deshalb mehr Overhead erfordern. Bedenken Sie auch die maximale MTU von 1500 octets (in speziellen Fällen bei Jumbo-Paketen bis zu 9k octets) bei normalen Verbindungen (z.B. Ethernet). Letztlich wäre es kein korrektes Design, wenn 10% oder 20% der transportierten Daten in einem Schicht 3-Paket für Adressen und nicht für die ”Nutzlast” benötigt würden.
Dies ist eine spezielle Adresse für das Loopback Interface, vergleichbar zur "127.0.0.1" bei IPv4. Bei IPv6 lautet die localhost Adresse:
Dies ist eine spezielle Adresse für das Loopback Interface, vergleichbar zur “127.0.0.1” bei IPv4. Bei IPv6 lautet die localhost Adresse:Diese Adresse wird meistens in Routing-Tabellen und beim "socket binding" (zu jeder IPv6 Adresse) angewendet bzw. gesehen.
Diese Adresse wird meistens in Routing-Tabellen und beim “socket binding” (zu jeder IPv6 Adresse) angewendet bzw. gesehen.Beachten: Die Unspezifizierte Adresse kann nicht als Ziel-Adresse verwendet werden.
Die Adresse beginnt mit (wobei "x"“x” für ein hexadezimales Zeichen steht, im Normalfall "0")
“0”)("x"“x” ist ein hexadezimales Zeichen, normalerweise "0")
“0”)Dieser Adresstyp ist nun abgekündigt 3.2.3. Unique Local IPv6 Unicast Adressen
3.2.4. Globaler Adress-Typ ("Aggregatable global unicast")
Hinweis: Der Zusatz "aggregatable" im Namen wird in aktuellen Drafts abgelegt. +>Hinweis: Der Zusatz “aggregatable” im Namen wird in aktuellen Drafts abgelegt. Es sind weitere Subarten definiert:
Das benutzte Präfix zeigt, dass es sich um eine link-lokale Multicast Adresse handelt. Dass Suffix wird aus der Zieladresse erstellt. In diesem Beispiel soll ein Paket zur Adresse "fe80::1234" gesendet werden, aber die Netzwerk-Schicht hat keine Kenntnis der aktuellen Schicht 2 MAC Adresse. Die oberen 104 bits werde mit "ff02:0:0:0:01:ff00::/104" ersetzt und die unteres 24 bits bleiben unverändert. Diese Adresse wird nun "am Link" verwendet, um den entsprechenden Node zu finden, der wiederum seine Schicht 2 MAC Adresse als Antwort zurücksendet.
Das benutzte Präfix zeigt, dass es sich um eine link-lokale Multicast Adresse handelt. Dass Suffix wird aus der Zieladresse erstellt. In diesem Beispiel soll ein Paket zur Adresse “fe80::1234” gesendet werden, aber die Netzwerk-Schicht hat keine Kenntnis der aktuellen Schicht 2 MAC Adresse. Die oberen 104 bits werde mit “ff02:0:0:0:01:ff00::/104” ersetzt und die unteres 24 bits bleiben unverändert. Diese Adresse wird nun ”am Link” verwendet, um den entsprechenden Node zu finden, der wiederum seine Schicht 2 MAC Adresse als Antwort zurücksendet.Für das manuelle Suffix, wie "::1" im obigen Beispiel, muss das siebte höchstwertige Bit auf 0 gesetzt sein (das universale/local Bit des automatisch generierten Identifiers). Es sind auch noch andere (ansonsten nichtausgewählte) Bit-Kombinationen für Anycast-Adressen reserviert.
Für das manuelle Suffix, wie “::1” im obigen Beispiel, muss das siebte höchstwertige Bit auf 0 gesetzt sein (das universale/local Bit des automatisch generierten Identifiers). Es sind auch noch andere (ansonsten nichtausgewählte) Bit-Kombinationen für Anycast-Adressen reserviert.Um eine maximale Reduktion an Routing-Tabellen zu erzielen, war in der frühen Design-Phase noch ein vollkommen hierarchischer Routing-Ansatz vorgesehen. Die Überlegungen hinter diesem Ansatz waren die gegenwärtigen IPv4 Routing-Einträge in den Haupt-Routern (mit über 104.000 Einträgen im Mai 2001) sowie die Reduktion des Speicherbedarfs für die Routing-Tabellen bei Hardware-Routern (ASIC "Application Specified Integrated Circuit", speziell konstuierter Chip) sowie ein daraus resultierender Geschwindigkeitszuwachs (weniger Einträge ergeben hoffentlich schnellere Abfragen).
Um eine maximale Reduktion an Routing-Tabellen zu erzielen, war in der frühen Design-Phase noch ein vollkommen hierarchischer Routing-Ansatz vorgesehen. Die Überlegungen hinter diesem Ansatz waren die gegenwärtigen IPv4 Routing-Einträge in den Haupt-Routern (mit über 104.000 Einträgen im Mai 2001) sowie die Reduktion des Speicherbedarfs für die Routing-Tabellen bei Hardware-Routern (ASIC “Application Specified Integrated Circuit”, speziell konstuierter Chip) sowie ein daraus resultierender Geschwindigkeitszuwachs (weniger Einträge ergeben hoffentlich schnellere Abfragen).Heutiger Standpunkt ist, dass das Routing für Netzwerke mit nur einem Service Provider hauptsächlich mit einem hierarchischen Design realisiert wird. Eine solche Vorgehensweise ist nicht möglich, wenn mehr als eine ISP-Verbindung besteht. Diese Problematik wird unter dem Thema multi-homing diskutiert (Infos zu multi-homing: "-s 512": Bei der Aufzeichnung der Pakete wird die zu Aufzeichnungslänge auf 512 bytes vergrößert3.4.1. Präfixlängen ("netmasks" genannt)
3.4.2. Zutreffende Routen
4.1.1. Überprüfung der IPv6 Unterstützung im aktuellen Kernel
4.1.2. IPv6 Module laden
4.1.2.1. Automatisches Laden des Moduls
4.1.3. Kernel-Kompilierung mit IPv6 Funktionalität
4.1.3.1. Kompilieren eines Standard-Kernels
4.1.3.2. Kompilieren eines Kernels mit USAGI-Erweiterungen
4.1.4. IPv6 kompatible Netzwerkgeräte
4.1.4.1. Gegenwärtig bekannte Verbindungsarten, die niemals IPv6 fähig sein werden
4.1.4.2. Bekannte Verbindungsarten, die gegenwärtig IPv6 nicht unterstützen
4.2. IPv6 kompatible Tools zur Netzwerkkonfiguration
4.2.1. net-tools Paket
4.2.2. iproute Paket
4.3. IPv6 Test/Debug-Programme
4.3.1.1. Das Interface für einen IPv6 ping bestimmen
4.3.1.2. Ping6 zu Multicast-Adressen
"-vv": wirklich sehr ausführliche Ausgabe
“-vv”: wirklich sehr ausführliche Ausgabe"-n": Adressen werden nicht in Namen aufgelöst. Dies ist hilfreich, wenn die Reverse-DNS-Auflösung nicht sauber arbeiten sollte
“-n”: Adressen werden nicht in Namen aufgelöst. Dies ist hilfreich, wenn die Reverse-DNS-Auflösung nicht sauber arbeiten sollteWird ein Text wie "cannot resolve hostname" ausgegeben, dann unterstützt der Telnet Client keine IPv6 Adressen.
Wird ein Text wie “cannot resolve hostname” ausgegeben, dann unterstützt der Telnet Client keine IPv6 Adressen.Falls ihr ssh Client-Programm die Option "-6" nicht kennt, dann ist das Programm nicht IPv6 fähig. Dies ist bei den meisten ssh Paketen der Version 1 der Fall.
Falls ihr ssh Client-Programm die Option “-6” nicht kennt, dann ist das Programm nicht IPv6 fähig. Dies ist bei den meisten ssh Paketen der Version 1 der Fall.Der Kernel hat keine Kenntnis darüber, welchen physikalischen oder virtuellen Link Sie zum versenden von ICMPv6 Paketen verwenden möchten. Aus diesem Grund wird die Fehlermeldung ausgegeben.
Lösung: Spezifizieren Sie den Link, z.B.: "ping6 -I eth0 fe80::2e0:18ff:fe90:9205". Siehe auch Lösung: Spezifizieren Sie den Link, z.B.: “ping6 -I eth0 fe80::2e0:18ff:fe90:9205”. Siehe auch program ping6 usage.
Fehlermeldung: "Fehlermeldung: “icmp socket: Operation not permitted"
”Diese Tools erzeugen spezielle ICMPv6 Pakete und versenden diese unter Verwendung von raw sockets im Kernel. Raw sockets können aber nur vom Benutzer "root" verwendet werden. Normale Benutzer bekommen aus diesem Grund diese Fehlermeldung.
Diese Tools erzeugen spezielle ICMPv6 Pakete und versenden diese unter Verwendung von raw sockets im Kernel. Raw sockets können aber nur vom Benutzer “root” verwendet werden. Normale Benutzer bekommen aus diesem Grund diese Fehlermeldung.Lösung: Wenn wirklich alle Benutzer auf diese Tools zugreifen sollen, können Sie dies mit setzen des "suid" bits mittels "chmod u+s / path/to/program" erreichen (siehe auch Lösung: Wenn wirklich alle Benutzer auf diese Tools zugreifen sollen, können Sie dies mit setzen des “suid” bits mittels “chmod u+s / path/to/program” erreichen (siehe auch program ping6 usage). Falls nicht alle Benutzer das Programm benötigen, können Sie die Gruppenzugehörigkeit des Programms ändern, z.B. Gruppe "wheel". Fügen Sie alle Benutzer zu dieser Gruppe hinzu und entfernen Sie das execution bit für andere Benutzer mittels "chmod o-rwx /path/to/program". Alternativ können Sie auch "sudo" dazu verwenden, um Ihren Sicherheitsbestimmungen Rechnung zu tragen.
). Falls nicht alle Benutzer das Programm benötigen, können Sie die Gruppenzugehörigkeit des Programms ändern, z.B. Gruppe “wheel”. Fügen Sie alle Benutzer zu dieser Gruppe hinzu und entfernen Sie das execution bit für andere Benutzer mittels “chmod o-rwx /path/to/program”. Alternativ können Sie auch “sudo” dazu verwenden, um Ihren Sicherheitsbestimmungen Rechnung zu tragen.Ether-tap Devices sind IPv6 kompatibel und als stateless konfiguriert. Für den Gebrauch muss das Modul "ethertap" geladen werden.
Ether-tap Devices sind IPv6 kompatibel und als stateless konfiguriert. Für den Gebrauch muss das Modul “ethertap” geladen werden.# /sbin/route -A inet6 del <network>/<prefixlength> [dev <device>]# /sbin/route -A inet6 del <ipv6network>/<prefixlength> gw <ipv6address> [dev <device>]
Der Metrik-Wert "1" wird verwendet, um mit dem Metrik Wert von route kompatibel zu sein; der Standard-Metrik-Wert von "ip" ist "1024".
Der Metrik-Wert “1” wird verwendet, um mit dem Metrik Wert von route kompatibel zu sein; der Standard-Metrik-Wert von “ip” ist “1024”.Ein client kann eine Default Route (z.B. "::/0" ) einrichten, diese aber auch durch automatische Konfiguration, z.B. mit radvd, erlernen:
Ein client kann eine Default Route (z.B. “::/0” ) einrichten, diese aber auch durch automatische Konfiguration, z.B. mit radvd, erlernen: