[alternativ gelöst] Routing von IP Pakete in Host mit 2 Interfaces

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
McAldo
Moderator
Beiträge: 2064
Registriert: 26.11.2003 11:43:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Terra / Sol-System / Milchstraße

[alternativ gelöst] Routing von IP Pakete in Host mit 2 Interfaces

Beitrag von McAldo » 15.07.2019 18:18:17

Gegeben ist ein Host der in 2 Subnetzen eingebunden ist.

Code: Alles auswählen

                    10.10.1.1         GW        10.20.20.1
                        default-GW			|
                           |					|
                   ---------------------------------------------------
                   |eth0:10.10.1.50 |  eth1:10.20.20.50|
                   |  sshd (Port 22)    |       (Apache2) 	 |
                   |                 ServerA				 |
                   ---------------------------------------------------
Im Netz 10.10.1.0/24 gibt es mehrere Rechner (Client 1-10) und im Netz 10.20.20.0/24 gibt es ebenfalls mehrere Rechner (Host 1-10). Als Default-GW ist auf ServerA die IP 10.10.1.1 eingetragen.
Wenn nun Anfragen an den Apache2 (auf eth1 mit IP 10.20.20.50) aus dem Netz 10.10.1.0/24 kommen, gehen die zwar über das GW, aber die Antwort sendet "ServerA" über eth0 raus, jedoch mit der Absender-IP eth1:10.20.20.50.
Soweit ich das gelesen habe, kann man mittels fwmark (iptables) und "ip rule" und "ip route" die Pakete so beeinflussen, dass IP Pakete die über eth1 herein kommen, auch über dieses Interface wieder raus gesendet werden. Alle meinen bisherigen Versuche das richtige Regelwerk zu setzen scheiterten leider. Wie kann ich das Dilemma lösen?
Achte auf deine Gedanken, denn sie werden Worte.
Achte auf deine Worte, denn sie werden Handlungen.
Achte auf deine Handlungen, denn sie werden Gewohnheiten.
Achte auf deine Gewohnheiten, denn sie werden dein Charakter.
Achte auf deinen Charakter, denn er wird dein Schicksal.
(Talmud)

Benutzeravatar
McAldo
Moderator
Beiträge: 2064
Registriert: 26.11.2003 11:43:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Terra / Sol-System / Milchstraße

Re: Routing von IP Pakete in Host mit 2 Interfaces

Beitrag von McAldo » 15.07.2019 19:09:59

Um es vielleicht einfacher zu machen, sollen alle Pakete die nicht für ssh sind (also --source-port und --destination-port 22) markiert und über eth1 gesendet werden.
Das hier funktioniert aber auch nicht:

Code: Alles auswählen

iptables -t nat -I PREROUTING -p tcp ! --dport 22 -j MARK --set-mark 2
iptables -t nat -I POSTROUTING -p tcp ! --dport 22 -j MARK --set-mark 2
iptables -I INPUT -p tcp ! --dport 22 -j MARK --set-mark 2
iptables -I OUTPUT -p tcp ! --dport 22 -j MARK --set-mark 2
iptables -t nat -I PREROUTING -p tcp ! --sport 22 -j MARK --set-mark 2
iptables -t nat -I POSTROUTING -p tcp ! --sport 22 -j MARK --set-mark 2
iptables -I INPUT -p tcp ! --sport 22 -j MARK --set-mark 2
iptables -I OUTPUT -p tcp ! --sport 22 -j MARK --set-mark 2
ip rule add fwmark 2 table notssh
ip route add default via 10.20.20.1 dev eth1 table notssh
$> cat /etc/iproute2/rt_tables.d/notssh_route.conf

Code: Alles auswählen

202		notssh
$> ip rule show

Code: Alles auswählen

0:	from all lookup local 
32765:	from all fwmark 0x2 lookup notssh 
32766:	from all lookup main 
32767:	from all lookup default
Achte auf deine Gedanken, denn sie werden Worte.
Achte auf deine Worte, denn sie werden Handlungen.
Achte auf deine Handlungen, denn sie werden Gewohnheiten.
Achte auf deine Gewohnheiten, denn sie werden dein Charakter.
Achte auf deinen Charakter, denn er wird dein Schicksal.
(Talmud)

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Routing von IP Pakete in Host mit 2 Interfaces

Beitrag von bluestar » 15.07.2019 22:37:36

Ich würde dir zu zwei Routing Tabllen (je Quell-IP eine) raten:

Code: Alles auswählen

ip route add default via 10.10.1.1 table 1
ip route add default via 10.20.20.1 table 2
und zu zwei Rules:

Code: Alles auswählen

ip rule add from 10.10.1.50/32 lookup 1
ip rule add from 10.20.20.50/32 lookup 2
Dann sollte es schon tun.

Benutzeravatar
McAldo
Moderator
Beiträge: 2064
Registriert: 26.11.2003 11:43:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Terra / Sol-System / Milchstraße

Re: Routing von IP Pakete in Host mit 2 Interfaces

Beitrag von McAldo » 16.07.2019 09:13:46

Muss ich da vorher alle anderen Routen entfernen?
Achte auf deine Gedanken, denn sie werden Worte.
Achte auf deine Worte, denn sie werden Handlungen.
Achte auf deine Handlungen, denn sie werden Gewohnheiten.
Achte auf deine Gewohnheiten, denn sie werden dein Charakter.
Achte auf deinen Charakter, denn er wird dein Schicksal.
(Talmud)

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Routing von IP Pakete in Host mit 2 Interfaces

Beitrag von bluestar » 16.07.2019 10:57:34

Du brauchst nur folgendes
$> ip rule show

Code: Alles auswählen

0:	from all lookup local 
32766:	from all lookup main 
32767:	from all lookup default
Die Routing Tabellen 1 & 2 sollten vor meinen Befehlen leer sein...

Code: Alles auswählen

ip route flush table 1
Deine iptables-Regeln solltest du auch komplett rausnehmen.

Dann füllst du die beiden Routing-Tabellen gemäß meines Vorschlags und danach setzt du die ip rules.

Benutzeravatar
McAldo
Moderator
Beiträge: 2064
Registriert: 26.11.2003 11:43:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Terra / Sol-System / Milchstraße

Re: Routing von IP Pakete in Host mit 2 Interfaces

Beitrag von McAldo » 16.07.2019 15:05:51

Vielen Dank für deine Hilfe. Das klappt alles nicht so richtig und macht das Setup eher unnötig kompliziert. Habe es nun so gelöst, dass Apache2 an allen Interfaces lauscht und im internen DNS ein CNAME für den Host in beiden Netzen gesetzt ist.
Hosts aus dem Netz 10.10.1.0/24 greifen also auf 10.10.1.50 zu, alle anderen auf 10.20.20.50.
Achte auf deine Gedanken, denn sie werden Worte.
Achte auf deine Worte, denn sie werden Handlungen.
Achte auf deine Handlungen, denn sie werden Gewohnheiten.
Achte auf deine Gewohnheiten, denn sie werden dein Charakter.
Achte auf deinen Charakter, denn er wird dein Schicksal.
(Talmud)

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: Routing von IP Pakete in Host mit 2 Interfaces

Beitrag von dufty2 » 16.07.2019 15:53:49

bluestar hat geschrieben: ↑ zum Beitrag ↑
15.07.2019 22:37:36
Dann sollte es schon tun.
Mmh, da bin ich mir nicht sicher. Um Linux nach dem sog. "strong host model" zu fahren
(das "weak host model" ist der default bei Linux),
muss man schon beim arp anfangen.
Hier eine Anleitung
https://unix.stackexchange.com/question ... host-model

jessie
Beiträge: 112
Registriert: 16.06.2019 09:55:33

Re: [alternativ gelöst] Routing von IP Pakete in Host mit 2 Interfaces

Beitrag von jessie » 17.07.2019 10:05:42

dufty2 hat geschrieben: ↑ zum Beitrag ↑
16.07.2019 15:53:49
Um Linux nach dem sog. "strong host model" zu fahren
(das "weak host model" ist der default bei Linux),
muss man schon beim arp anfangen.
Hier eine Anleitung
https://unix.stackexchange.com/question ... host-model
Danke!

Antworten