Netzwerk

Antworten
Benutzeravatar
tuts
Administrator
Beiträge: 149
Registriert: So 16. Jan 2011, 01:39
Kontaktdaten:

Netzwerk

Beitrag von tuts »

kürzlich hatte ich etwas unbedacht 2 server zu einem zusammengefasst. Um den Arbeitsaufwand gering zu halten habe ich settings beider Systeme einfach übernommen.
Das Ergebnis war ein Linux-Server mit 2 IP-Adressen in unterschiedlichen Subnetzen.
Blöd nur, dass in der "normalen" Netzwerkkonfig der Server immer nur mit in der Routingtabelle an erster Stelle stehende Standardroute Antwortet bzw. mit der IP die im selben Subnetz steht wie der anfragende Rechner .
Erfolgte jedoch die ursprüngliche Verbindungsaufnahme an die andere IP kommt damit keine gültige Verbindung zustande.
Lösen läst sich das Problem mit iproute2.

Beispiel:
gegeben sei folgende konfig:

Code: Alles auswählen

iface eth0 inet static
    address 192.168.0.5
    netmask 255.255.255.0
    gateway 192.168.0.1

Code: Alles auswählen

iface eth1 inet static
    address 10.10.0.5
    netmask 255.255.255.0
    gateway 10.10.0.1
als erstes füge man in /etc/iproute2/rt_table 2 zeilen hinzu:

Code: Alles auswählen

2	rt2
3	rt3
damit werden 2 neue Routingtabelle angelegt und deren Priorisierung mit 2 bzw. 3 festgelegt.
als nächstes müssen wir die beiden Routingtabelle "befüllen" und zwar mit:

Code: Alles auswählen

ip route add 10.10.0.0/24 dev eth1 src 10.10.0.5 table rt2
ip route add default via 10.10.0.1 dev eth1 table rt2
ip route add 192.168.0.0/24 dev eth0 src 192.168.0.5 table rt3
ip route add default via 192.168.0.1 dev eth0 table rt3
Die Einträge legen zuerst das Subnetz für das jeweilige Interface fest und anschließend das dazugehörige Default Gateway.
als letzten Schritt müssen wir nun nur noch die Regeln definieren die Festlegen wann welche der Routingtabellen verwendet werden soll.
Dies geschied so:

Code: Alles auswählen

ip rule add from 10.10.0.5/32 table rt2
ip rule add to 10.10.0.5/32 table rt2
ip rule add from 192.168.0.5/32 table rt3
ip rule add to 192.168.0.5/32 table rt3
Dies legt fest dass bei der jeweils betroffenen IP ein und ausgehend die jeweilige Tabelle genutzt werden soll.

Nun sollte das alles funktionieren (zumindest bis zum nächsten Reboot)...
Anschauen können wir uns das ganze per:

Code: Alles auswählen

ip route list table rt2
ip route list table rt3
ip rule show
Um das ganze Dauerhaft zu machen müssen folgende Änderungen in die Netzwerkconfig übertragen werden:

Code: Alles auswählen

iface eth0 inet static
    address 192.168.0.5
    netmask 255.255.255.0
    gateway 192.168.0.1
    post-up ip route add 192.168.0.0/24 dev eth0 src 192.168.0.5 table rt3
    post-up ip route add default via 192.168.0.1 dev eth0 table rt3
    post-up ip rule add from 192.168.0.5/32 table rt3
    post-up ip rule add to 192.168.0.5/32 table rt3

Code: Alles auswählen

iface eth1 inet static
    address 10.10.0.5
    netmask 255.255.255.0
    gateway 10.10.0.1
    post-up ip route add 10.10.0.0/24 dev eth1 src 10.10.0.5 table rt2
    post-up ip route add default via 10.10.0.1 dev eth1 table rt2
    post-up ip rule add from 10.10.0.5/32 table rt2
    post-up ip rule add to 10.10.0.5/32 table rt2
Bild
Antworten