Rechner mit zwei IPs und damit auch zwei Standardrouten einrichten

Ich hatte ein Problem: Ein Server von mir sollte zwei IP-Adressen bekommen, beide in verschiedenen Netzen.

Allerdings auch beide mit einem “Default-GW”, und der Rechner sollte über beide voll ansprechbar sein.

Das Problem: Das Interface mit der kleinsten Metrik geiwnnt das Rennen, sprich: Obwohl jemand eine Verbindung an IP B initiieren möchte, werden Antworten darauf über NIC A versandt.

Nach der Lektüre von http://kindlund.wordpress.com/2007/11/19/configuring-multiple-default-routes-in-linux/ und http://www.thomas-krenn.com/de/wiki/Zwei_Default_Gateways_in_einem_System ging mir aber ein Licht auf und nun läuft es.

Folgende Schritte führen zum Erfolg:

Zuerst eine Policy Routing table anlegen (bzw. benamsen):
# echo "1 admin" >> /etc/iproute2/rt_tables

Nun die /etc/network/interfaces anpassen:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
	address 10.34.41.26
	netmask 255.255.255.192
        post-up ip route add 10.34.41.0/26 dev eth0 src 10.34.41.26 table admin
        post-up ip route add default via 10.34.41.1 dev eth1 table admin
        post-up ip rule add from 10.34.41.26/32 table admin
        post-up ip rule add to 10.34.41.26/32 table admin

auto eth1
iface eth1 inet static
	address 192.168.3.236
	netmask 255.255.255.224
	gateway 192.168.3.224
	dns-nameserver 192.168.3.224

Die Logik dahinter ist ganz einfach: “Nimm per Default das GW 192.168.3.224, wenn aber ein Paket von oder an die 10-er IP geht, nimmst du bitte das andere GW”.

Advertisements

Leave a comment

Filed under Administration, Server

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s