ich habe ein kleines Problem mit Firewall Mark Routing und SNAT und komme nicht mehr weiter.
Folgende Situation:
Code: Alles auswählen
LDAP-Server1 LDAP-Server2
(192.168.100.2) (192.168.100.3)
(AA:00:00:AA:00:02) (AA:00:00:AA:00:03)
| |
| |
------- Loadbalancer ----------------
| (iptables, keepalived) |
| (192.168.100.1) |
| (AA:00:00:AA:00:01) |
| | |
| | |
| | |
------- S w i t c h ----------------
| |
Client1 Client2
(192.168.100.10) (192.168.100.11)
(AA:00:00:AA:00:10) (AA:00:00:AA:00:11)
![Smile :)](./images/smilies/icon_smile.gif)
Zur Erklärung:
Es sind 2 LDAP.-Server vorhanden (könnten aber auch andere Server sein
![Smile :)](./images/smilies/icon_smile.gif)
Clients und Server sind im selben Subnetz (geht derzeit leider nicht anders).
Auf den Servern ist firewall mark routing aktiv für Pakete, die von der MAC des Loadbalancers kommen, um diese über den Router (Loadbalancer) und nicht direkt an den Client zu schicken. Der Client erwartet ja als Antwort Paket vom keepalived und nicht direkt vom Server.
Mittels tcpdump kann man den Netzverkehr auch super beobachten und sieht, Client sendet an LB, LB leitet an Server, Server sendet an LB und LB verschluckt das Paket. :/
Auf dem Rückweg ist zwar die Ziel-IP (also Client) im Paket enthalten, aber als MAC steht die des Loadbalancers.
Hier noch die entsprechenden Ausschnitte von tcpdump.
auf Client2
Code: Alles auswählen
> tcpdump -n -e -i any 'port 389'
Out AA:00:00:AA:00:11 ethertype IPv4 (0x0800), length 68: 192.168.100.11.46664 > 192.168.100.1.389: Flags [S], seq 4149157070, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
Out AA:00:00:AA:00:11 ethertype IPv4 (0x0800), length 68: 192.168.100.11.46664 > 192.168.100.1.389: Flags [S], seq 4149157070, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
Hier sollte in der dritten Zeile als Empfänger-MAC die von Client2 (also AA:00:00:AA:00:11) stehen.
Code: Alles auswählen
> tcpdump -n -e -i any 'port 389'
AA:00:00:AA:00:11 > AA:00:00:AA:00:01, ethertype IPv4 (0x0800), length 66: 192.168.100.11.46664 > 192.168.100.1.389: Flags [S], seq 4149157070, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
AA:00:00:AA:00:01 > AA:00:00:AA:00:02, ethertype IPv4 (0x0800), length 66: 192.168.100.11.46664 > 192.168.100.2.389: Flags [S], seq 4149157070, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
AA:00:00:AA:00:02 > AA:00:00:AA:00:01, ethertype IPv4 (0x0800), length 66: 192.168.100.2.389 > 192.168.100.11.46664: Flags [S.], seq 629711993, ack 4149157071, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 4], length 0
Code: Alles auswählen
> tcpdump -n -e -i any 'port 389'
In AA:00:00:AA:00:01 ethertype IPv4 (0x0800), length 68: 192.168.100.11.46664 > 192.168.100.2.389: Flags [S], seq 4149157070, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
Out AA:00:00:AA:00:02 ethertype IPv4 (0x0800), length 68: 192.168.100.2.389 > 192.168.100.11.46664: Flags [S.], seq 629711993, ack 4149157071, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 4], length 0
McAldo