Wie route ich nur ein bestimmtes Subnetz (Quell-IP) zu einer bestimmten Schnittstelle?

31

Wie route ich nur ein bestimmtes Subnetz (Quell-IP) zu einer bestimmten Schnittstelle?
Betriebssystem: Linux

Ich weiß, ich kann leicht nach Ziel-IP tun, indem ich so etwas benutze

route add 1.2.3.4/24 dev eth4

aber ich sehe nicht, wie man anhand der Quell-IP routen kann.

Alex
quelle

Antworten:

30

Sie müssen richtlinienbasiertes Routing verwenden. So etwas wie

ip rule add from <source>/<mask> table <name>
ip route add 1.2.3.4/24 via <router> dev eth4 table <name>

<name>ist entweder Tabellenname in angegeben /etc/iproute2/rt_tablesoder Sie können numerische ID verwenden ...

Dies sagt so ziemlich aus, dass der gesamte Datenverkehr 1.2.3.4/24über die Routing-Tabelle weitergeleitet wird <name>. IIRC verwendet danach nicht mehr die Standardtabelle. Wenn Sie also andere Routen benötigen (z. B. Standardgateway), müssen Sie diese ebenfalls zur Tabelle hinzufügen.

Fuchs
quelle
1
eine korrektur (aber nicht sicher, ob deine auch funktionieren wird. für den zweiten befehl: ip route add default dev eth4 table <name>( tablerichtlinie sollte am ende stehen denke ich, genau wie im ersten befehl ... defaultkann auch durch ein subnetz ersetzt werden, genau wie in deinem beispiel )
Alex