Skip to main content

3.2 Routing

Gateway

Standardmäßig routet Debian alle Verbindungen über das Standardgateway.

WICHTIG
Es darf nur insgesamt ein Gateway auf einer Netzwerkschnittstelle konfiguriert sein. Alle weiteren Netzwerkschnittstellen dürfen kein Gateway konfiguriert haben, da ansonsten kein Routing mehr möglich ist!

Standardgateway anzeigen

Das aktuelle Standardgateway, sowie die dazugehörige Route, kann über das IP-Tool angezeigt werden:

ip route
Standardgateway konfigurieren

Das Standardgateway kann über das IP-Tool angepasst werden. Hierbei sind folgende Platzhalter zu ergänzen:

<gateway>: IPv4 des neuen Standardgateways (z.B. 10.8.0.1)

<dev>: Netzwerkschnittstelle des Gateways (z.B. eth0)

ip route replace default via <gateway> dev <dev>


Routingtabellen (ifupdown)

Folgender Abschnitt erläutert die Konfiguration von Routingtabellen mit "ifupdown".
Hierbei handelt es sich um das Standardpaket zur Netzwerkkonfiguration innerhalb von Debian.
Ab Debian 11 empfiehlt sich jedoch die Nutzung von "systemd-networkd" als Netzwerkdienst.
Die Konfiguration mit "systemd-networkd" wird weiter unten in einem separaten Abschnitt erläutert.

Sollten mehrere Gateways existieren müssen für die zusätzlichen Gateways Routing Tabellen erstellt werden. Pro zusätzlicher Netzwerkschnittstelle sollte eine Tabelle erstellt werden.

Tabellen auflisten
cat /etc/iproute2/rt_tables
Tabelle erstellen

Eine neue Tabelle kann über das Hinzufügen eines Eintrages via echo in "rt_tables" erstellt werden.

Sollte es sich um die erste Tabelle handeln existiert das Verzeichnis iproute2 unter Umständen noch nicht und muss zuvor erstellt werden.
mkdir -p /etc/iproute2

Folgende Platzhalter müssen hierbei ergänzt werden:

<id>: Numerische eindeutige ID der Tabelle (1 bis 252)

<name>: Alphanumerischer eindeutiger Name der Tabelle (z.B. local)

echo "<id> <name>" >> /etc/iproute2/rt_tables
Routen in Tabelle definieren

Routen zu einzelnen Ziel-IPs oder Ziel-Subnetzen werden in der Routingtabelle über das IP-Tool definiert. Hierbei sind folgende Platzhalte zu ergänzen:

<gateway>: IP des Gateways

<dev>: Netzwerkschnittstelle des Gateways (z.B. eth0)

<table>: Name der Tabelle (z.B. local)

<dest-ip>: Ziel-IP (z.B. 10.8.0.1) oder Ziel-Subnetz inkl. CIDR (z.B. 10.8.0.0/24)

ip route add default via <gateway> dev <dev> table <table>
ip route add <dest-ip> dev <dev> table <table>

# Optional: Sollten über das Gateway noch weitere Subnetze erreichbar seien, müssen diese zusätzlich definiert werden:
ip route add <dest-ip> via <gateway> dev <dev> table <table>
Routing-Regeln definieren

Die in den Routingtabellen definierten Routen sind nur aktiv, wenn zu diesen passende Regeln über das IP-Tool definiert wurden. Hierbei sind folgende Platzhalter zu ergänzen:

<dest-ip>: Ziel-IP (z.B. 10.8.0.1) oder Ziel-Subnetz inkl. CIDR (z.B. 10.8.0.0/24)

<table>: Name der Tabelle (z.B. local)

<prio>: Priorität der Regel (z.B. 100)

ip rule add to <dest-ip> lookup <table> priority <prio>

Routingtabellen (systemd-networkd)

Folgender Abschnitt erläutert die Konfiguration von Routingtabellen mit "systemd-networkd"...
Hierbei handelt es sich um einen moderneren Service, welcher ab Debian 11 zur Konfiguration der Netzwerkschnittstellen empfohlen wird.
In älteren Debian Versionen empfiehlt sich jedoch die Nutzung von "systemd-networkd" als Netzwerkdienst.
Die Konfiguration mit "ifupdown" wird weiter oben in einem separaten Abschnitt erläutert.

Analyse & Fehlerbehebung

Routing prüfen

Über das IP-Tool kann geprüft werden, ob beim Routing zu einer bestimmten IP das korrekte Gateway gewählt wird. Hierbei ist folgender Platzhalter zu ergänzen:

<dest-ip>: Ziel-IP (z.B. 10.8.0.1)

ip route get <dest-ip>
Reverse-Path-Filter deaktivieren

Bei der Kommunikation über zusätzliche Netzwerkschnittstellen wird die eingehende Kommunikation eventuell blockiert. In diesem Fall muss der Reverse-Path-Filter deaktiviert werden.

sysctl -w net.ipv4.conf.all.rp_filter=2
sysctl -w net.ipv4.conf.default.rp_filter=2

Da die Änderung nur temporär ist muss sie anschließend dauerhaft im System konfiguriert werden:

cat <<EOF >> /etc/sysctl.conf
net.ipv4.conf.all.rp_filter=2
net.ipv4.conf.default.rp_filter=2
EOF