#! /sbin/nft -f table nat { chain prerouting { type nat hook prerouting priority 0; # Sur le vlan prerezotage on fait du dnat vers un serveur de bounce car # sur les clients récents on émet une requête http vers un serveur # connu et on attend une réponse 204 pour voir que tout va bien. Si on # ne l'a pas on ouvre un navigateur avec la réponse. C'est exactement # ce que l'on veut pour les adhérents non rézotés qui sont sur ce vlan: # les rediriger vers l'intranet. meta iifname $if_prerezotage tcp dport {http,https} ip daddr != { $intranet, $comnpay, $website } dnat $bounce_server; } chain postrouting { type nat hook postrouting priority 100 # Pour les machines du VLAN de prérézotage, on fait un simple # masquerade derrière l'IP du routeur car on a pas besoin de loguer # étant donné que l'on limite les destinations possibles par ailleurs. meta iifname $if_prerezotage masquerade,persistent # NAT adherent meta iifname $if_adherent meta oifname $if_supelec snat ip saddr map @adherent_nat_address : ip saddr map @adherent_nat_port; # NAT federez meta iifname $if_federez meta oifname $if_supelec snat ip saddr map @federez_nat_address : ip saddr map @federez_nat_port; # NAT ALOES meta iifname $if_adherent meta oifname $if_supelec snat ip saddr map @aloes_nat_address : ip saddr map @aloes_nat_port; # NAT Server meta iifname $if_admin meta oifname $if_supelec snat ip saddr map @server_nat_address : ip saddr map @server_nat_port; # NAT prerezotage meta iifname $if_prerezotage meta oifname $if_supelec snat ip saddr map @prerezotage_nat_address : ip saddr map @prerezotage_nat_port; # Le reste du local est mis en masquerade derrière le routeur ip saddr 10.0.0.0/8 masquerade } }