Policy-Routing mit mehreren Upstreams

Angeblich ist es ja legitim, das eigene Blog als Notizzettel zu verwenden. Quae cum ita sint schreibe ich jetzt kurz mal für mich auf, wie man mit mehr als einem Upstream routet. Zwei mögliche Anwendungsszenarien:

  1. Server mit zwei Netzwerkkarten, die beide mit dem selben Router bzw. Switch verbunden sind: Bei zwei Default-Routen wird eine davon per Zufall gewählt, bei einer Default-Route werden Pakete über das Interface, auf dem die Default-Route liegt, mit falsche IP-Adresse verschickt, wenn zuvor das andere Interface angesprochen wurde, die Pakete also mit dessen Absenderadresse generiert wurden.
  2. Einwahl auf einer Leitung mittels ISDN und gleichzeitig mit PPP, also Mehrkanalrouting für Arme.

Ich dokumentiere hier den ersten Fall und mache die folgenden Annahmen:

  • eth0: 192.168.0.2/24
  • eth1: 192.168.0.3/24
  • Default-Gateway: 192.168.0.1
  • neue Verbindungen solllen stets nur via eth0 gemacht werden

Dann definiert man als erstes zwei zusätzliche Routingtabellen mit einem, äh, “griffigen” Namen:

echo 10 nifty >> /etc/iproute2/rt_tables
echo 20 naughty >> /etc/iproute2/rt_tables

Das hat den Hintergrund, daß man sonst immer mit den Nummern hantieren muß. So dann konfiguriert man die Interfaces,

ip addr add 192.168.0.2/24 dev eth0
ip addr add 192.168.0.3/24 dev eth1

macht die Interfaces an,

ip link set eth0 up
ip link set eth1 up

legt die beiden separaten Routing-Tabellen fest,

ip route add 192.168.0.0/24 dev eth0 src 192.168.0.2 table nifty
ip route add default via 192.168.0.1 dev eth0 src 192.168.0.2 table nifty
ip route add 192.168.0.0/24 dev eth1 src 192.168.0.3 table naughty
ip route add default via 192.168.0.1 dev eth1 src 192.168.0.3 table naughty

definiert die Routing-Policy,

ip rule add from 192.168.0.2 table nifty
ip rule add from 192.168.0.3 table naughty

und füllt zuletzt die Default-Routingtabelle:

ip route add default via 192.168.0.1 dev eth0 src 192.168.0.2

Genau nachlesen kann man das wie gehabt bei lartc.org an dieser und dieser Stelle.

Fans der Serie Dr. House wissen übrigens, daß “naughty girls” 17 Jahre und sechs Monate alt sind, rote Unterwäsche tragen und seit 5 Wochen keinen Freund mehr, dafür aber eine Spore im Kopf haben.