Adresszuweisung & Routing

Diese Seite zeigt zwar IPv4 Beispiele, das Konzept ist für IPv6 jedoch ähnlich

Adresszuweisung

Betrachtung der Interfaces

Die Interfaces und ihre bisherige Konfiguration kann wie folgt finden:

  • Debian / Ubuntu: Die Datei /etc/network/interfaces lesen
  • Linux: ip a im CLI eingeben
  • Windows: netsh interface show interface via CMD ausführen

Statische Zuweisung

Für eine permanente Zuweisung sollte bei Ubuntu / Debian die /etc/network/interfaces Date bearbeitet werden, bzw. das IP-Kommando bei jedem Systemstart ausgeführt werden. Falls ein Network-Manager installiert ist, kann auch ggf. hierüber konfiguriert werden. Um einen Network-Manager ausfindig zu machen: systemctl --type=service | grep --ignore-case 'network'

Eine IP Adresse kann man einem Netzwerk-Interface zuweisen. Dies kann auf verschiedene Arten erfolgen:

via Kommandozeile

ip addr add 192.168.1.11 dev eth0

in Debian / Ubuntu

Die Datei /etc/network/interfaces bearbeiten.

DHCP

Dynamic Host Configuration Protocol (DHCP) ermöglicht die zentrale Netzwerkkonfiguration in einem lokalen Netz durch einen DHCP-Server. Es baut auf das Internetprotokoll auf und bildet ein OSI Layer-7 Anwendungsprotokoll. Eine der Hauptanwendungsfälle ist die Zuweisung einer IP-Adresse durch den DHCP-Server, sodass eine manuelle Konfiguration auf Seiten des Hostsystems nicht mehr notwendig ist.

DHCP_session Quelle: DHCP Session | Wikimedia

via Kommandozeile

Auch hier kann die Datei /etc/network/interfaces genutzt werden in Debian-basierten Systemen.

dhclient eth0 -v

Routing

Beim Routing wird in die Routentabelle geschaut, über welches Interface und Gateway die Adresse erreichbar ist. Diese Tabelle kann dabei entweder statisch oder dynamisch gepflegt werden. Entsprechend der Tabelleneinträge wird ein IP-Paket an das Ziel geroutet.

Routingtabelle

Die Routingtabelle für das eigene System kann man wie folgt betrachten:

route -n

bzw.

ip route show

Wird eine IP-Adresse oder ein Netz über das Gateway 0.0.0.0 gesendet, bedeutet dies dass das Ziel direkt an das Gerät angebunden und daher kein Gateway erforderlich ist. in dem Fall wird mittels eines ARP requests die MAC Adresse des Ziels ermittelt und das Paket via der Layer-2 Verbindung übermittelt.

Statisches Routing

Beim statischen Routing wird die Route für eine bestimmte IP-Adresse oder Netz statisch in die Routing-Tabelle eingepflegt. Eine statische Route kann bereits in der Kommandozeile eingepflegt werden.

Route hinzufügen

Die Route wird so temporär hinzugefügt. Bei nächstem Systemstart ist die Route wieder weg. Um eine statische Route permanent einzupflegen, sind entsprechend die Interfaces zu bearbeiten. Dazu up route add -net 10.1.2.0 255.255.255.0 gw 10.0.0.1 dev eth0 in /etc/network/interfaces einzutragen (Debian / Ubuntu) bzw. 10.1.3.0/24 via 10.0.0.1 in /etc/sysconfig/network-scripts/route-eth0 einzutragen und systemctl restart NetworkManager auszuführen (RHEL, Fedora, CentOS)

route add 10.1.2.0/24 via 10.0.0.1 dev eth0

Das resultiert darin, dass das Netzwerk 10.1.2.0/24 via 10.0.0.1 als Gateway/Router und via dem eth0 Interface geroutet wird.

Klassischerweise fügt man eine Default-Route zum Default-Gateway hinzu. Das kann dann so aussehen:

ip route add default via 10.0.0.1 dev eth0

oder

route add 0.0.0.0/0 via 10.0.0.1 dev eth0

Das Netz 0.0.0.0/0 beschreibt hierbei die Default-Adresse, also wird alles hierüber geroutet.

Route entfernen

route del 10.1.2.0

bzw. präziser

route del 10.1.2.0/24 via 10.0.0.1 dev eth0

Dynamisches Routing

Hier ist es möglich, dass Router untereinander Routen austauschen. Nehmen wir folgendes Szenario an:

routing_sample

Nun wäre es sinnvoll, bspw. Traffic an das Netz 2.0.0.0/8 über den Router RB zu routen statt via RA, auch wenn alle Netze grundsätzlich auch via RA erreichbar sind. Denn RB hat eine direkte Verbindung zum Netz oder den Knoten im Netz.

Es ist aber möglich, dass der Router RA diese direkte Verbindung verliert. In dem Fall hilft eine statische Route nicht mehr weiter. Vielmehr ist ein Austausch der Routen erforderlich, damit unser Gateway eine Routing-Entscheidung fällen kann. Das führt dann zum dynamischen Routing mit Protokollen wie BGP (vor allem für inter-AS Routing), sowie IS-IS und OSPF (innerhalb des eignen Netzes).

BGP

Border Gateway Protocol (BGP) ist ein sehr geläufiges Protokoll. Es wird vor allem für den Austausch von Routen und Erreichbarkeitsinformationen verwendet. Mittels BGP werden alle möglichen Pfade betrachtet und eine effiziente Route zum jeweiligen Ziel ausgewählt.

Man kann dabei zwischen dem external BGP (eBGP oder auch nur BGP) und internal BGP (iBGP) unterscheiden. Mit eBGP werden Routen und Erreichbarkeitsinformationen mit einem anderen Autonomen System (AS) ausgetauscht während iBGP innerhalb des Netzes eines AS genutzt wird. eBGP und iBGP können dabei unabhängig voneinander genutzt werden.