Netzwerkadapter IP anzeigen nach NFtables NAT
Hallo.
Mein NAT Server hat ein interface mit 2 IPs (172.24.0.11 und 172.24.0.11). Die Anfragen an diese IP's werden per NAT über ein anderes Interface an den Destination Host geroutet. Mein Problem besteht darin, dass ich nach einem NFtables NAT auf dem Destination Host nicht die Source IP der Interfaces angezeigt bekomme, die ich brauche. Hier mal meine Config:
Mit Masquerade wird immer die Interface IP des Ausgehenden Netzwerks angezeigt, welche für mich irrelevant ist. Die config, wie ich sie jetzt habe führt dazu, dass die Quellen der Eingangs IPs als Quelle am Zielserver angezeigt werden, was für mich ebenso irrelevant ist. Was ich brauche ist, dass wenn eine Anfrage über die 172.24.0.11 reinkommt diese IP als Quelle an Zielserver angezeigt wird. Genau so mit der 172.24.0.11. Ich benötige diese Etwas spezielle Config, da die Software auf dem Zielserver unterschiedliche Antworten auf Basis der Quellenadresse liefern kann. Vielen Dank in Vorraus!
LG Leo
Mein NAT Server hat ein interface mit 2 IPs (172.24.0.11 und 172.24.0.11). Die Anfragen an diese IP's werden per NAT über ein anderes Interface an den Destination Host geroutet. Mein Problem besteht darin, dass ich nach einem NFtables NAT auf dem Destination Host nicht die Source IP der Interfaces angezeigt bekomme, die ich brauche. Hier mal meine Config:
table inet nat {
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
#masquerade
ip saddr 172.24.0.11/24 oif "enp1s0" snat to 172.20.1.2
ip saddr 172.24.0.12/24 oif "enp1s0" snat to 172.20.1.2
}
chain prerouting {
type nat hook prerouting priority dstnat; policy accept;
iif enp1s0 ip daddr 172.24.0.11 dnat 172.20.1.2
iif enp1s0 ip daddr 172.24.0.12 dnat 172.20.1.2
}
}
Mit Masquerade wird immer die Interface IP des Ausgehenden Netzwerks angezeigt, welche für mich irrelevant ist. Die config, wie ich sie jetzt habe führt dazu, dass die Quellen der Eingangs IPs als Quelle am Zielserver angezeigt werden, was für mich ebenso irrelevant ist. Was ich brauche ist, dass wenn eine Anfrage über die 172.24.0.11 reinkommt diese IP als Quelle an Zielserver angezeigt wird. Genau so mit der 172.24.0.11. Ich benötige diese Etwas spezielle Config, da die Software auf dem Zielserver unterschiedliche Antworten auf Basis der Quellenadresse liefern kann. Vielen Dank in Vorraus!
LG Leo
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7989804758
Url: https://administrator.de/contentid/7989804758
Ausgedruckt am: 19.11.2024 um 03:11 Uhr
3 Kommentare
Neuester Kommentar
Deine Syntax ist falsch in der Postrouting Chain. Du gibst dort im Ggensatz zur Prerouting Chain Hostadressen an, die prinzipbedingt ja immer einen 32er Prefix haben, versiehst diese aber mit einem 24er Netz Prefix. Das ist so nicht vorgesehen denn du meinst ja dedizierte Hosts und kein Netzwerk.
https://wiki.nftables.org/wiki-nftables/index.php/Performing_Network_Add ...
Allerdings ist das ganze Konzept aus TCP/IP Sicht logisch sehr fragwürdig und vermutlich unterliegst du hier einem fatalen Denkfehler?! 🤔
Du weist 2 physisch getrennten IP Absenderadressen mit einmal eine gemeinsame zu, was ohne PAT (Masquerading) IP technisch ja gar nicht geht. Ebenso beim dnat.
Bei statischen 1:1 SNAT und DNAT musst du aber auch immer separate IPs pro Host verwenden. Wie anders sollte der Traffic und die Wegefindung sonst eindeutig sein??
Was du machen willst ist vermutlich PAT auf eine zentrale IP und das geht nur mit Masquerading weil so durch die Verwendung unterschiedlicher Ports bei einer singulären IP wieder fehlerfrei der Traffic für die 2 (oder mehr) Ursprungssysteme separiert werden kann.
Also eher sowas wie:
tcpdump hilft dir beim Erkennen der verwendeten IP Adressen.
https://wiki.nftables.org/wiki-nftables/index.php/Performing_Network_Add ...
Allerdings ist das ganze Konzept aus TCP/IP Sicht logisch sehr fragwürdig und vermutlich unterliegst du hier einem fatalen Denkfehler?! 🤔
Du weist 2 physisch getrennten IP Absenderadressen mit einmal eine gemeinsame zu, was ohne PAT (Masquerading) IP technisch ja gar nicht geht. Ebenso beim dnat.
Bei statischen 1:1 SNAT und DNAT musst du aber auch immer separate IPs pro Host verwenden. Wie anders sollte der Traffic und die Wegefindung sonst eindeutig sein??
Was du machen willst ist vermutlich PAT auf eine zentrale IP und das geht nur mit Masquerading weil so durch die Verwendung unterschiedlicher Ports bei einer singulären IP wieder fehlerfrei der Traffic für die 2 (oder mehr) Ursprungssysteme separiert werden kann.
Also eher sowas wie:
table ip nat {
define PAT_HOSTS = {
172.24.0.11, 172.24.0.12
}
chain postrouting {
type nat hook postrouting priority 100; policy accept;
ip saddr $PAT_HOSTS oifname "enp1so" masquerade
}
}