GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Antwort auf derselben Schnittstelle wie eingehende?

echo 200 isp2 >> /etc/iproute2/rt_tables
ip rule add from <interface_IP> table isp2 prio 1
ip route add default via <gateway_IP> dev <interface> table isp2

Das Obige erfordert keine Paketmarkierung mit ipfilter. Es funktioniert, weil die ausgehenden (Antwort-)Pakete die IP-Adresse haben, die ursprünglich verwendet wurde, um sich mit der 2. Schnittstelle als Quelladresse (von) des ausgehenden Pakets zu verbinden.


Die folgenden Befehle erstellen eine alternative Routing-Tabelle über eth1 für Pakete, die die Markierung 1 haben (außer Pakete an localhost). Die ip Der Befehl stammt aus der iproute2-Suite (Ubuntu:iproute Install iproute http://bit.ly/software-small, iproute-doc Install iproute-doc http://bit.ly/software-small).

ip rule add fwmark 1 table 1
ip route add 127.0.0.0/0 table 1 dev lo
ip route add 0.0.0.0/0 table 1 dev eth1

Die andere Hälfte des Jobs ist das Erkennen von Paketen, die die Note 1 erhalten müssen; Verwenden Sie dann iptables -t mangle -A OUTPUT … -j MARK --set-mark 1 auf diese Pakete, damit sie durch die Routing-Tabelle 1 geleitet werden. Ich denke, das Folgende sollte es tun (ersetzen Sie 1.2.3.4 durch die Adresse der Nicht-Standard-Route-Schnittstelle):

iptables -t mangle -A OUTPUT -m conntrack --ctorigdst 1.2.3.4 -j MARK --set-mark 1

Ich bin mir nicht sicher, ob das ausreicht, vielleicht wird eine andere Regel für die eingehenden Pakete benötigt, um das Conntrack-Modul anzuweisen, sie zu verfolgen.


Ich hatte Probleme mit den lokal generierten Paketen mit der von Peter vorgeschlagenen Lösung, ich habe festgestellt, dass das Folgende das korrigiert:

echo 200 isp2 >> /etc/iproute2/rt_tables
ip rule add from <interface_IP> table isp2 priority 900
ip rule add from dev <interface> table isp2 priority 1000
ip route add default via <gateway_IP> dev <interface> table isp2
ip route add <interface_prefix> dev <interface> proto static scope link src <interface_IP> table isp2

HINWEIS: Bei der vierten Zeile oben können Sie auf Syntaxprobleme stoßen. In solchen Fällen könnte die Syntax für den 4. Befehl jetzt so lauten:

ip rule add iif <interface> table isp2 priority 1000

Linux
  1. Linux – Antworten auf derselben Schnittstelle wie eingehende?

  2. Sftp-Schnittstelle zu SCP?

  3. Fügen Sie einem Cloud-Server eine Cloud-Netzwerkschnittstelle hinzu

  4. Löschen Sie Tabellen in MySQL

  5. Ifconfig:7 Beispiele zum Konfigurieren der Netzwerkschnittstelle

So optimieren Sie MySQL-Tabellen

So erstellen Sie eine DynamoDB-Tabelle in AWS

3 Möglichkeiten, eine Netzwerkschnittstelle in Linux zu konfigurieren

ip-Befehl unter Linux mit Beispielen

Wie kann ich nur ein bestimmtes Subnetz (Quell-IP) an eine bestimmte Schnittstelle weiterleiten?

Kanal der Funkschnittstelle bestimmen