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.
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
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).
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
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.
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