Zum Inhalt springen

IPv6/Router/Advertisement: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 35: Zeile 35:
[[Router Advertisement Daemon]]
[[Router Advertisement Daemon]]


==  Router Advertisement im Detail ==
; In der ICMPv6-Nachricht (Abbildung 5.5) sehen wir an erste Stelle die Typnummer 134 für Router Advertisements
* Nach Code und Checksum folgt ein Feld namens Cur Hop Limit, es hat in unserem Beispiel den Wert 64
* Das Cur Hop Limit gibt an, welches Hop Limit ein Host, der seinen Stack gemäß den Angaben dieses Router Advertisements konfiguriert, nutzen soll
* Hat das Feld den Wert 0, dann gibt es keine Vorgabe durch den Router, der Host entscheidet dann selbst welches Hop Limit er für IPv6-Pakete verwendet
=== Router Advertisement Flags ===
; Es folgen Flags, von denen hier keines gesetzt ist. Möglich Flags:
{| class="wikitable sortable options"
|-
! Flag !! Beschreibung
|-
| Managed || Das Managed Flag zeigt einem interessierten Host an, dass er auf anderen Wegen Adressen erhalten kann
* Andere Wege meint zum Beispiel DHCPv6 und wird auch als stateful configuration bezeichnet
* Nicht zu verwechseln mit der im Deutschen ähnlichen klingenden statischen Konfiguration
|-
| Other Managed || Mit diesem Flag informiert der Router darüber, dass weitere Konfigurationsdaten über einen anderen Weg bezogen werden können
* Auch hier ist in der Regel DHCPv6 gemeint, welches beispielsweise Nameserver-Adressen zur Verfügung stellen könnte
|-
| Home Agent || Ein gesetztes Flag zeigt an, dass dieser Router als Home Agent für Mobile IPv6 genutzt werden kann
|-
| Router Preference || Eigentlich handelt es sich bei der Router Preference nicht um ein Flag im klassischen Sinne
* Es werden zwei Bits im Flag-Feld genutzt um die Priorität des Routers zu codieren
* Es gibt die Werte low, medium und high
* Sollten mehrere Default-Router am Link präsent sein, wird die Priorität auf den Hosts unter Berücksichtigung dieses Flags festgelegt
|-
| Proxy || Dieses Flag wurde im experimentellen RFC 4389 [TTP06] vorgeschlagen
* Es deutet auf das Vorhandensein eines NDP-Proxys hin
* Für uns ist das Flag nicht relevant und wir behandeln es im Folgenden nicht weiter
|}
Die Flags können, geschickt kombiniert, sehr unterschiedliche Situationen abdecken
* So wäre es zum Beispiel möglich, den Hosts zwar die eigenständige Adresskonfiguration zu erlauben, ihnen alle zusätzlichen Informationen jedoch per DHCPv6 zuzustellen
; Router Lifetime
Im Router Advertisement folgt als nächstes die Router Lifetime in Sekunden
* Sie gibt an, wie lange dieser Router als DefaultRouter verwendet werden darf
* Der Wert 0 bedeutet, dass der Router nicht als Default-Router verwendet werden darf
* In unserem Fall bedeutet das, dass der Router nach 1800 Sekunden (einer halben Stunde) ungültig werden würde
* Mit jedem neuen Router Advertisement kann dieser Wert überschrieben werden
* Da wir alle 15 Sekunden ein Router Advertisement aussenden, sollten wir vorerst nicht Gefahr laufen, den DefaultRouter zu verlieren
; Reachable Time und Retrans Timer
Die Felder Reachable Time und Retrans Timer dienen den Stacks der Hosts als Anhaltspunkte für ihre eigene Konfiguration
* Die Reachable Time legt fest, wie viele Millisekunden ein Nachbar auf dem Link als erreichbar gilt, nachdem eine Bestätigung der Erreichbarkeit eingetroffen ist
; Hinweis
: Als Bestätigung der Erreichbarkeit können alle Pakete dienen, die darauf schließen lassen, das der Nachbar erreichbar ist
:* Zum Beispiel können das eintreffende Pakete einer bestehenden TCP-Verbindung sein
:* Es muss sich nicht zwingend um NDP handeln
; Der Retrans Timer legt die Wartezeit zwischen zwei Neighbor Solicitations in Millisekunden fest
* Die Werte dieser Felder haben also direkten Einfluss auf die Neighbor Caches der Hosts
* Wenn die Felder den Wert enthalten, macht der Router keine Vorgaben und die Hosts können ihre eigene Konfiguration verwenden
=== Präfix-Informationen ===
; Unser Router Advertisement liefert zwei ICMPv6-Optionen mit
Die Option Source Link-layer Address kennen wir schon aus anderen NDP-Paketen
* Die Prefix Information Option aus Abbildung 5.6 hingegen ist uns neu
;Wie jede ICMPv6-Option hat sie eine Typnummer und eine Längenangabe
* Daran schließt sich das Feld Prefix Length an, es gibt an wie viele Bits des Präfixes von Router vorgegeben werden
* In diesem Fall sind es 64 Bits, so dass den Hosts weitere 64 Bits für ihre Interface Identifier zur Verfügung stehen
: Abbildung 5.6: Prefix Information Option
=== Präfix-Flags ===
Jedes Präfix hat ein eigenes Feld für Flags. Die Bedeutung der Flags ist wie folgt:
{| class="wikitable sortable options"
|-
! Flag !! Beschreibung
|-
| On-Link || Ist das Flag gesetzt, zeigt der Router damit an, dass dieses Präfix sich auf dem Link befindet
* Pakete an Adressen innerhalb des Präfixes können direkt gesendet werden, und brauchen nicht über den Router gehen
* Wenn das Flag nicht gesetzt wurde, bedeutet das lediglich, dass der Router keine Aussage treffen konnte
|-
| Autonomous Address-Configuration || Das Flag wird gesetzt wenn das Präfix den Hosts für die Stateless Address Autoconfiguration zur Verfügung steht
|-
| Router Address || Wenn das Flag gesetzt ist, befindet sich im Präfix-Feld anstelle eines Präfixes die Adresse des Interfaces welches für Mobile IPv6 zuständig ist
* Dieses Flag nutzen wir im Workshop nicht
|-
| Valid Lifetime und Preferred Lifetime || In den Feldern Valid Lifetime und Preferred Lifetime wird festgelegt, wie lange das Präfix gültig (valid) ist und bevorzugt (preferred) werden soll
* Generierte Adressen aus dem Präfix erben diese Eigenschaften
* Für neue Verbindungen werden stets bevorzugte Adressen genutzt
* Adressen bestehender Verbindungen können während der Valid Lifetime noch genutzt werden, dürfen aber nicht für neue Verbindungen hergenommen werden
* Die Angaben erfolgen jeweils in Sekunden
* Der höchstmögliche Wert steht abweichend für unbegrenzte Gültigkeit
|-
| Präfix || Das letzte, und wohl wichtigste, Feld ist das Präfix selbst
* Der Teil hinter der mit Prefix Length definierten Grenze wird üblicherweise mit Nullen aufgefüllt und von den Hosts ignoriert
* Unser Router hat hier das Präfix ''2a01:198:200:8a23::'' verteilt, so wie wir es Radvd aufgetragen haben
|}


==  Angepasstes Router Advertisement ==
==  Angepasstes Router Advertisement ==

Version vom 10. Mai 2025, 12:48 Uhr

IPv6/Router/Advertisement

Router Advertisement

Router machen sich am Link bekannt

Unter IPv6 gehört es zum guten Ton, dass sich ein Router am Link bekannt macht

  • Dabei liefert er auch Informationen zu den verwendeten Präfixen mit, insbesondere zu den Präfixen für die er selbst zuständig ist
  • Eine solche Information wird Router Advertisement genannt
  • Router Advertisements sind Teil von NDP und werden, wie von NDP gewohnt, über ICMPv6 transportiert
  • Wir werden router dazu bewegen, solche Router Advertisements am Link internal auszusenden

Router Advertisement aufzeichnen

Router Advertisement nach Minimalkonfiguration
Router Advertisements auf dem Link entdecken
  • Wir starten Wireshark auf linux und lassen ihn auf eth0 lauschen
  • Spätestens nach 15 Sekunden sollte das erste Router Advertisement aufgefangen werden
  • Das werden wir uns nun genauer anschauen

IPv6-Header des Router Advertisements

IPv6-Header des Paketes
  • Das Feld Next Header verweist auf ICMPv6, dem Transportprotokoll von NDP
  • Folgerichtig ist das Hop Limit auf 255 gesetzt
  • Die Quelladresse ist die Link-local Address von eth1, was von RFC 2461 [NNS98] so vorgeschrieben wird
  • Die Zieladresse für periodisch versandte Router Advertisements ist die All Nodes Multicast Address ff02::1
  • Ihr Multicast Scope ist, das haben wir bereits gelernt, an der vierten hexadezimalen Stelle verzeichnet
  • Hier handelt es sich um den Scope Link, da wir an vierter Stelle eine 2 finden
  • Von den Flags, an dritter hexadezimaler Stelle zu finden, ist keines gesetzt
  • Denn nur wenn kein Flag gesetzt ist, kann an die dritte hexadezimale Stelle 0 lauten
  • Somit ist auch das TransientFlag nicht gesetzt
  • Daher können wir uns sicher sein, dass es sich bei dieser Multicast Address um eine Well-known Multicast Address handelt
  • Tatsächlich finden wir sie in Tabelle 4.5 auf Seite 103 wieder

Router Advertisement Daemon

Router Advertisement Daemon


Angepasstes Router Advertisement

Minimalkonfiguration von Radvd leistungssteigern
  • Die Router Advertisements sollen weiterhin in Abständen von mindestens 15 Sekunden ausgesendet werden, es sollen aber nie mehr als 60 Sekunden zwischen ihnen liegen
  • Das Hop Limit und die Flags erhalten Standardwerte, diese sollen zur Übung dennoch in der Konfigurationsdatei vermerkt werden
  • Der Router soll mit mittlerer Priorität als DefaultRouter angepriesen werden
  • Da der Tunnel in der Standardkonfiguration eine MTU von 1280 aufweist, propagieren wir diese MTU auf dem Link
  • Die Link MTU wird später als weitere ICMPv6-Option im Router Advertisement auftauchen
  • Das Präfix soll mit gesetzten Flags für On-Link und Autonomous Address Autoconfiguration verteilt werden
  • Generierte Adressen sollen eine Stunde lang gültig sein und für eine halbe Stunde bevorzugt werden
  • Natürlich darf auch die Source Link-layer Address nicht fehlen

Radvd konfigurieren

Versuchen Sie mithilfe des Kommandos man radvd.conf das eben beschriebene Router Advertisement zu konfigurieren. Die Lösung:

Angepasste Konfiguration von Radvd

/etc/radvd.conf

Angepasstes Router Advertisement
interface eth1 {
 AdvSendAdvert on ;
 MinRtrAdvInterval 15;
 MaxRtrAdvInterval 6 ;
 AdvCurHopLimit 64;
 AdvManagedFlag off ;
 AdvOtherConfigFlag off ;
 AdvMobRtrSupportFlag off ;
 AdvDefaultPreference medium ;
 AdvDefaultLifetime 3 ;
 AdvReachableTime ;
 AdvRetransTimer ;
 AdvLinkMTU 128 ;

 prefix 2a01:198:200:8a23::/64 {
  AdvOnLink on ;
  AdvAutonomous on ;
  AdvRouterAddr off ;
  AdvValidLifetime 36 ;
  AdvPreferredLifetime 18
  };
 AdvSourceLLAddress on ;
};

Zum Anwenden der geänderten Konfiguration starten wir Radvd neu:

root@router :~# service radvd restart
Stopping radvd : radvd
Starting radvd : radvd

Das neue Router Advertisement fangen wir ebenfalls mit Wireshark auf linux auf