PBR (Policy Base Routing) unter Linux

Ich denke, dass Cisco- und YAMAHA-Router mithilfe von Filtern richtlinienbasiert weitergeleitet werden können. Ich würde es gerne auch unter Linux machen.

Richtlinienbasiertes Routing ist eine Routing-Methode, die im Gegensatz zum normalen Routing innerhalb des Hosts ausgeführt wird. Verwenden Sie eine bestimmte Routentabelle für eine bestimmte Operation. Es ist wie es ist. (Schwer zu erklären ...) Zum Beispiel ...

Kimo ist eine Multi-Homed-Umgebung.

Beispiel) Ich möchte das Gateway beim Zugriff auf einen bestimmten Port ändern

Welche Situation kann berücksichtigt werden? ・ Normalerweise verwende ich die A-Zeile, aber ich möchte die B-Zeile für den http-Zugriff verwenden.

Die Umgebung ist diesmal

図面.png

Welche Linux-Funktionen benötigen Sie dazu?

Verwenden Sie iptables, um Pakete zu markieren, die für einen bestimmten Port bestimmt sind (iptables), und verwenden Sie die angegebene Routing-Tabelle für markierte Pakete (iproute2).

1. Markieren Sie iptables

Verwenden Sie die Mangeltabelle von iptables, um Pakete zu markieren.

# iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 1 ← Markiere "1" für Pakete, die in Richtung tcp 80 ausgehen
# iptables -t mangle -A OUTPUT -p tcp --dport 443 -j MARK --set-mark 2 ← Markiere "2" für Pakete, die in Richtung tcp 443 ausgehen
# iptables -t mangle -A OUTPUT -p tcp --dport 22 -j MARK --set-mark 3 ← Markiere "3" für Pakete, die in Richtung tcp 22 ausgehen

2. Fügen Sie iproute2 eine Regel hinzu

Geben Sie Regeln für markierte Pakete an.

# IP-Regel fwmark 1 hinzufügen Tabelle 10 ← In "Tabelle 10" finden Sie Pakete, die mit "1" gekennzeichnet sind.
# IP-Regel fwmark 2 hinzufügen Tabelle 20 ← In "Tabelle 20" finden Sie Pakete, die mit "2" gekennzeichnet sind.
# IP-Regel fwmark 3 hinzufügen Tabelle 30 ← In "Tabelle 30" finden Sie Pakete, die mit "3" gekennzeichnet sind.

Da außerdem mehrere Schnittstellen an das Gateway adressiert sind, geben Sie auch das Rückgabepaket an.

# IP-Regel aus 192.168.0.2 Tabelle 10 hinzufügen ← In "Tabelle 10" finden Sie Pakete, die "192.168.0.2" eingeben.
# IP-Regel aus 192.168.1.2 Tabelle 20 hinzufügen ← In "Tabelle 20" finden Sie Pakete, die "192.168.1.2" eingeben.
# IP-Regel hinzufügen aus 192.168.2.2 Tabelle 30 ← In "Tabelle 30" finden Sie Pakete, die "192.168.2.2" eingeben.

3. Fügen Sie eine Route zu iproute2 hinzu

Erstellen Sie eine Stammtabelle, auf die verwiesen werden soll.

# ip route add default dev eth1 über 192.168.0.1 Tabelle 10 ← Das Standard-Gateway von "table10" ist 192.168.0.1 vor eth1
# ip route add default dev eth2 über 192.168.1.1 Tabelle 20 ← Das Standard-Gateway von "table20" ist 192.168.1.1 vor eth2
# ip route add default dev eth3 über 192.168.2.1 Tabelle 30 ← Das Standard-Gateway von "table30" ist 192.168.2.1 vor eth3

Es ist besser, jeder Tabelle einen lokalen Link hinzuzufügen. Behandeln wir ihn daher entsprechend. Wie schreibe ich einen lokalen Link

 ip route show table main

Bitte beziehen Sie sich auf die unerwartete Standardeinstellung und wenden Sie sie an!

So sieht es mit einem Liner aus

#  ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table "Tabellenname" $ROUTE; done

Damit sind die Einstellungen abgeschlossen. Lassen Sie es uns tatsächlich überprüfen. Wenn alles in Ordnung ist, können Sie Ihrem Startskript / etc / rc.local oder etwas hinzufügen.

Recommended Posts

PBR (Policy Base Routing) unter Linux
Linux Policy Base Routing
Linux PBR erneut untersucht
Starten Sie einen Prozess mit einer Planungsrichtlinie unter Linux
jblas unter Arch Linux
NAT-Router unter Linux
Entwickeln Sie .NET unter Linux
Wake on Lan unter Linux
Überwachen Sie den Datenverkehr unter Linux
Aktualisieren Sie vscode unter Linux
Erstellen Sie LiveUSB unter Linux
Linux-Betrieb unter Win10
NTP-Konfigurationsnotiz unter Linux
Installieren Sie Linux auf Chromebox
Überwachen Sie die Festplattennutzung unter Linux
Verwenden Sie Github Desktop unter Linux
Elixier = vertraut mit Linux Mint
Lesen Sie die Kernspannung unter Linux
Setzen Sie jenv in Amazon Linux ein
Einfacher Befehl df unter Linux
Linux unter Windows -1-: Einführung in Debian
Installieren Sie tomcat 5.5 unter Amazon Linux.
Einführung in Elixir in Linux Mint
Installieren von Homebrew unter Amazon Linux 2
Aufbau einer Linux-Umgebung (in einer WSL-Umgebung)
Verwenden Sie Linux unter Windows 10 (WSL2)