[IPv6-wien] Gedanken zur IPv6 Addressvergabe für OLSRv2

Henning Rogge (spam-protected)
Tue Aug 20 08:30:50 CEST 2013


Hallo,

wie angekündigt hier ein paar Gedanken die wir uns am Fraunhofer FKIE
Institut gemacht haben zu einer Adressvergabe für OLSRv2.

Unsere Grundannahme ist das Routing-Traffic zwar nötig, aber lästig
ist. Man will davon möglichst wenig haben ohne die Stabilität und
Effizienz des Meshs zu gefährden. Neben der Reduzierung der Anzahl der
Routing-Nachrichten (auch daran arbeiten wir) will man daher möglichst
kleine Routing-Nachrichten haben (ohne sich zu sehr einzuschränken).

OLSRv2 verwendet nur noch 2 Nachrichtentypen, HELLOs (eine Kombination
der OLSRv1 Hello und MID Nachrichten, werden nicht durchs Netz
geflutet) und TCs (OLSRv1 TCs und HNAs, werden durchs Netz geflutet).
Es ist leicht ersichtlich das die TCs einen Großteil des
Routing-Traffic ausmachen.

OLSRv2 kann Listen von Adressen auf zwei (drei) Arten komprimieren.
Listen von Adressen mit gleichem Präfix (gleichen Bytes am Anfang)
bzw. gleichem Suffix (gleichen Bytes am Ende) müssen diesen
Präfix/Suffix nur einmal speichern. Von der Suffix-Kompression gibt es
eine Variante für einen Suffix der nur aus Null-Bytes besteht, bei
dieser Variante muss der Suffix gar nicht angegeben werden (nur die
Länge).

Unser Konzept funktioniert prinzipiell für IPv4 wie auch IPv6, ist
aber bei IPv6 deutlich einfacher zu realisieren. Wir wollen hierbei
jedem Knoten des Netzes eine eindeutige Nummer geben, aus der der
Knoten lokal alle weiteren Adressen und Subnetze ableiten kann.

Die grundlegende Idee ist es jedem Router eine globale Adresse
zuzuteilen, die sowohl vom Präfix als auch Suffix den IPv6-Präfix der
lokal angeschlossenen Netze gleicht.

Basis-Eigenschaften:
- Das gesamte Mesh hat ein /32 Prefix. Das Konzept funktioniert auch
mit einem kürzeren oder längeren Präfix.
- Interfaces bekommen nur Linklokale Adressen.
- Jeder Mesh-Router bekommt ein /64 Subnetz für den Router.
- Jeder Mesh-Router hat (mindestens) eine wohldefinierte Adresse aus
diesem /64 Subnetz auf seinem Loopback-Interface.
- Jeder Mesh-Router bekommt ein /56 Subnetz für per Ethernet
angeschossene lokale Netze. Das Konzept funktioniert auch mit weniger
oder mehr lokalen Subnetzen.

Im folgenden nehme ich mal Beispielsweise an das fufe:wien:/32 das
Präfix des Mesh ist.

Adress-Konzept:
- Jedem Mesh-Router wird eine 24-Bit Zahl ABCDEF zugeordnet (56-32=24).
- Der lokale Router bekommt das Subnetz fufe:wien:ABCD:EF::/64.
- Das Loopback Interface des Routers bekommt die Adresse
fufe:wien:ABCD:EF::/128 (ja, Host-Anteil alles 0)
- Der lokale Router bekommt den Präfix fufe:wien:ABCE:EF::/56 für lokale Netze

Wie genau der ABCDEF Teil Vergeben wird ist für das Konzept relativ
egal, der Trick besteht primär darin dem Router das erste Subnetz aus
dem /56-Block zuzuteilen (Subnetz 0) und den Hostanteil ebenfalls nur
aus Null-Bytes zu wählen (soweit wir sagen können ist das ein
ungewöhnlicher aber valider Hostanteil).

Dies sorgt dafür das im Standardfall alle Einträge der TCs mit dem
Netz-Präfix anfangen und mit 7 Null-Bytes enden, sowohl die Adressen
für Links zu den Nachbarknoten als auch der Präfix für lokale Netze.
Es macht es außerdem einfacher sich die IP-Adresse eines Routers zu
merken.

Was meint ihr dazu, gibt es eventuell Komponenten aus diesem Konzept
die ihr in euer Konzept übernehmen könnte/wollt?

Henning Rogge

-- 
We began as wanderers, and we are wanderers still. We have lingered
long enough on the shores of the cosmic ocean. We are ready at last to
set sail for the stars - Carl Sagan




More information about the IPv6-wien mailing list