#! /sbin/nft -f table inet firewall { chain to_federez { accept } chain from_federez { } } table nat { # On nate les users derrière les IPs 193.48.225.141 à 193.48.225.172 en # attribuant les plages de ports 11135-65535 par tranche de 1700 ports. # On a donc 32 Ips de 10.20.0.0/21 derrière chaque Ip. # exemple: 10.20.0.1-10.20.0.31 : 193.48.225.141 # On peut aussi ajouter dynamiquement des éléments : # nft add element nat federez_nat_address {10.20.0.1-10.20.0.31 : 193.48.225.141} map federez_nat_address { type ipv4_addr: ipv4_addr flags interval } # exemple: 10.20.0.1 : 11135-12834 # On peut aussi ajouter dynamiquement des éléments : # nft add element nat federez_nat_port {10.20.0.1 : 11135-12834} map federez_nat_port { type ipv4_addr: inet_service flags interval } chain federez_nat { ip protocol tcp snat ip saddr map @federez_nat_address : ip saddr map @federez_nat_port ip protocol udp snat ip saddr map @federez_nat_address : ip saddr map @federez_nat_port } }