Am Montag, 1. November 2021, 17:35:21 CET schrieb ronny@seffner.de:
Hier habe ich eine Lösung gefunden. Das sieht aus wie eine Map kombiniert mit einem Set, läuft aber als Map. https://wiki.nftables.org/wiki-nftables/index.php/Multiple_NATs_using_nftabl es_maps#Multiple_NAT_mapping_with_address_and_port
Nur kann ich die Regel (aus obigem Beispiel) nun nicht mehr recht lesen.
% nft add map nat foo { type inet_service : ipv4_addr . inet_service ; } % nft add element nat foo { \ 1100 : 192.168.1.2 . 5061, \ 1101 : 192.168.1.3 . 5061, \ 1400 : 192.168.1.4 . 5061 \ } % nft add rule nat pre ip protocol udp dnat ip addr . port to udp dport map @foo
Funktion ist hier, dass Pakete an die eigenen Ports 1100, 1101 usw. auf Hosts mit den Adressen 192.168.1.x und andere Ports dort umgeschrieben werden (DNAT). Jetzt zerlegen wir mal die Regel: "nft add rule nat pre ..." - füge eine Regel in die Tabelle nat und Chain pre hinzu "...ip protocol udp..." - matcht für Pakete vom Typ UDPv4 ... Und jetzt meine Unklarheiten "...dport map @foo" - ... an den EIGENEN Port "dport", der in der Map "foo" zu suchen ist? "...dnat ip addr . port to udp..." - und mache DNAT auf das "ip addr . port"-Paar aus der entsprechenden Zeile in der Map; das "to udp" am Ende irritiert an dieser Position
Mit freundlichen Grüßen / Kind regards Ronny Seffner
Danke, dass Du uns die Lösung mitteilst. Ich war schon sehr neugierig ...
Bernhard