Zum Inhalt springen

IPv6/Subnetting

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  Spezial:Logbuch » Md5/Algorithmus » Linuxbefehl:man » Linuxbefehl:set » IPv6/Subnetting

IPv6/Subnetting - IPv6-Adressen mit Subnetzmasken in Netz- und Host-Teil unterteilen

Beschreibung

Wie bei IPv4 können IPv6-Adressen mittels Subnetzmasken (subnet masks) in einen Netz- und einen Host-Teil unterteilt werden

Präfixlängen für das Routing

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 400.000 Einträgen im Jahr 2013) 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: drafts-ietf-multi6-*,IPv6 Multihoming Solutions)

Präfixlängen (netmasks)

Vergleichbar zu IPv4, handelt es sich hierbei um den routbaren Netzwerkpfad für das stattfindende Routing

  • Da die Standard-Notierung der Netzmaske von 128 bit nicht sehr fein aussieht, verwenden die Designer das aus IPv4 bekannte Classless Inter Domain Routing Schema (CIDR, RFC 1519 / Classless Inter-Domain Routing)
  • Mit Hilfe des CIDR wird die Bitanzahl der IP Adresse festgelegt, welche für das Routing verwendet werden
  • Diese Methode wird auch als "Slash"-Notation genannt
Beispiel

Diese Notation wird erweitert zu

  • Netzwerk
  • Netzmaske

Zutreffende Routen

Im Normalfall (ohne QoS) ergibt eine Suche in der Routing-Tabelle eine Route mit der signifikantesten Adress-Bit-Anzahl, d. h. jene Route mit der größten Präfix-Länge wird zuerst herangezogen

Wenn beispielsweise eine Routing-Tabelle folgende Einträge zeigt (Liste ist nicht komplett)

Die gezeigten Zieladressen der IPv6 Pakete werden über die entsprechenden Geräte geroutet


Anhang

Siehe auch

Links

Weblinks


TMP

Pv6/Windows/IPv6 Subnetz

Beschreibung

IPv6 Subnetz

Was ist das Richtige für mich?

Es gibt einen Standard-IPv6-Bereich, der vergleichbar mit dem private Class A / B / C Netzen von IPv4 ist, eine sog. Site local address. Übrigens, die Link local address (fe80::/64) ist mit der 169.254.0.0/16 bei IPv4 vergleichbar.

  • Wenn man also noch keine offizielle, von der IETF oder dem ISP zugewiesene IPv6 hat, sollte auch nicht auf die Idee kommen irgendeine zu verwenden.
  • Das macht früher oder später nur Probleme und man muss erneut umstellen.
Site local Adresse

Folgende Site local Adresse ist frei verfügbar

Site local: fec0::
Subnetz prefix length: 64

Gleiches Netz, andere Schreibweise

Address prefix: fec0::/64

Man könnte auch ein anderes Subnetz innerhalb von fec0 verwenden, allerdings bevorzuge ich kurze Schreibweisen.

Beispiel für ein Subnetz wäre

fec0:0:0:1::
Übersicht über alle Adressen

Testumgebung

Server A
  • Windows 2008 R2
  • AD, DNS
  • IPv6: fec0::3
Server B
  • Windows 2008 R2
  • DHCP
  • IPv6: fec0::2
Client
    • Windows 7
    • IPv6: DHCP (beispielsweise fec0::aaaa)

In dieser Umgebung gibt es keinen IPv6 fähigen Router und damit auch kein Gerät was per Router Discovery gefunden wird

Statische IPv6 vergeben

Nachdem IPv6 mittlerweile standardmäßig aktiv ist, muss man in den Protokolleigenschaften lediglich eine statische IP-Adresse eintragen, hier am Server B:

"image"

Server A erhält die IP fec0::3.     

Über ping -6 fec0::3 kann man die IPv6 Konnektivität von A nach B überprüfen (wenn ich den Parameter -6 nicht angebe, versucht Windows es zuerst über IPv6. Mit dem Parameter erzwingt man das Ganze):

"image"

Konfiguration DHCP-Server

Während der Installation der DHCP-Server Rolle, wird man gefragt, ob man den DHCP im Stateless oder Stateful Modus betreiben möchte, für diesen Verwendungszweck ist Stateful die richtige Wahl.

DHCP-Bereich

fec0:: /64

Ausnahmen

  • fec0::ffff bis fec0::ffff:ffff:ffff:ffff (ich möchte dass meine Clients möglichst kurze Adressen bekommen, und 65.000 IP's reichen mir)
  • fec0::1 bis fec0::20 (meine statischen IPv6 Adressen sind im Bereich 1-20, deshalb soll dieser nicht per DHCP vergeben werden)

Server Options

  • 00023 DNS Recursive Name Server IPv6 Addresss: fec0::3

Wenn ich jetzt am Client meine IPv6 Adresse per ipconfig /renew6 erneuere, bekomme ich beispielsweise fec0::aaaa

Starte ich einen ping vom Client zum Server (ping -6 fec0::3) kann es passieren, dass ich nur PING: transmit failed. General failure. Bekomme. Als nächstes sollte man den ping über link local Adresse (fe80::/64) versuchen, das sollte klappen. In diesem Fall hilft der nächste Schritt.

Zusätzliche Konfiguration am DHCP-Server

An dieser Stelle scheitert man ganz gerne. IPv6 ist auf das sog. Router Advertisement angewiesen, damit ein Routing im Netzwerk möglich ist. Nun steht uns aber kein IPv6 fähiger Router zur Verfügung, d.h. der DHCP-Server soll diese Aufgabe übernehmen. Dazu sind ein paar Kniffe über netsh notwendig. Ohne das Router Advertisement bekommt der Client auch keine Route ins eigene Netz zugewiesen. Über den folgenden Befehl kann man sich die Routen anzeigen lassen:

netsh int ipv6 show route

Hier fehlt fec0:: - unser neues Netz.

Damit es als Route hinzugefügt wird, muss man am DHCP-Server folgendes konfigurieren: # Auf der Netzwerkkarte Advertise=enabled setzen

  1. Für die entsprechende Route, also fec0::, die Eigenschaft publish=enabled setzen
Schritt 1
  • Man muss die ID der betroffenen Netzwerkkarte herausfinden: netsh int ipv6 show int
  • Anschließend muss Advertise=enabled gesetzt werden: netsh int ipv6 set int <ID> advertise=enabled   // optional noch: rou=en (das sollte schon enabled sein)
Schritt 2
  • Anschließend die Route hinzufügen: netsh int ipv6 add route fec0::/64 publish=enabled
  • Falls es die schon gibt, kann man die Eigenschaft publish wie folgt ändern: netsh int ipv6 set route fec0::/64 publish=enabled
  • Update, mit einem Service Pack hat sich scheinbar der Syntax geändert, beispielsweise: netsh int ipv6 set route fec0::/64 "LAN" publish=yes

"image"

Anschließend sollte ein ping vom Client zu Server A & B möglich sein. Alle weiteren IPv6 fähigen Clients können dann ohne zusätzliche Konfiguration über IPv6 kommunizieren.

Troubleshooting

Troubleshooting Tools

Wertvolle Helfer auf der Kommandozeile, die speziell auf IPv6 losgehen

ping –6 <hostname>
tracert –6 <hostname>
ipconfig /release6
ipconfig /renew6
netsh int ipv6 show int
netsh int ipv6 show int <ID>
netsh int ipv6 show route


Anhang

Siehe auch

Links

Weblinks

  1. https://www.hobmaier.net/2012/12/stateful-ipv6-autoconfiguration-mit.html