Re: AW: nftables DNAT using SETs

2021-11-01 Diskussionsfäden Bernhard Schiffner
Am Montag, 1. November 2021, 17:35:21 CET schrieb ro...@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






AW: nftables DNAT using SETs

2021-11-01 Diskussionsfäden ronny
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