2 IP-Adressen
folgendes Scenario:¶
2 Netzwerkkarten sind mit dem Internet verbunden. Beide in unterschiedlichen Subnetzen ueber unterschiedliche Provider. Problem: Man kann nur eine Default Route festlegen, dh. eigentlich das nur die IP-Adresse erreichbar ist die mit der Default Route konfiguriert ist.
LSG: iproute2; sehr leistungsstarkes IP/Routing Paket siehe http://www.lartc.org
damit lässt es sich realisieren, über Policies, beide IP-Adressen (oder noch mehr) anzusprechen.

![Failover](http://b9i.de/failover.svg)
Im Bild ist das Scenario nochmal dargestellt:
- eth0: an dieser Netzwerkkarte ist das interne LAN angeschlossen
- eth1: Internet Verbindung via Provider1, mit $IP1 und $Gateway1
- eth2: Internet Verbindung via Provider2, mit $IP2 und $Gateway2
beide Adressen, $IP1 und $IP2 sollen aus dem Internet erreichbar sein!
cat /etc/iproute2/rt_tables:
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
1 INTER
2 Fail
ip route add $IP_NET1/$MASK1 dev eth1 src $IP1 table INTER
ip route add default via $Gateway1 table INTER
ip route add $IP_NET2/$MASK2 dev eth2 src $IP2 table Fail
ip route add default via $Gateway2 table Fail
ip rule add from $Gateway1 table INTER
ip rule add to $Gateway1 table INTER
ip rule add from $Gatway2 table Fail
ip rule add to $Gateway2 table Fail
Diese Befehle lassen sich gut durch ein Script beim Startup des Systems einpflegen. Unter Centos gibt es jedoch einen eleganteren Weg:
Centos Way¶
Im Ordner /etc/sysconfig/network-scripts/
wird die Konfiguration der einzelnen Netzwerkkarten vorgenommen. Jede Netzwerkkarte ist dort durch eine Datei repräsentiert. z.B. ifcfg-eth2
die Synatx in diesen Dateien ist jedoch fest und sie ist noch aus einer Zeit vor iproute2
Man kann jedoch für jede Netzwerkkarte 2 weitere Dateien anlegen:
- route-eth2
- rule-eth2
der Inhalt dieser Dateien wird dann direkt an das Kommando ip
übergeben:
Inhalt route-eth2:
$IP_NET2/$MASK2 dev eth2 src $IP2 table Fail
default via $IP2 dev eth2 table Fail
Inhalt rule-eth2:
from $IP2/32 table Fail
to $IP2/32 table Fail
Was im oberen Beispiel (für Scripte) noch mit ... $IP1 ...
usw steht, muss natürlich in diesen Dateien direkt durch die Adressen ersetzt werden. Varablen werden in diesen Daten nicht substituiert. Lediglich hier in der Beschreibung stehen Variablen um deutlich zu machen was eingesetzt werden muss.
Comments
Comments powered by Disqus