40 lines
1.7 KiB
Text
40 lines
1.7 KiB
Text
#! /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.
|
|
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.
|
|
iifname $if_prerezotage masquerade,persistent
|
|
|
|
# NAT adherent
|
|
iifname $if_adherent oifname $if_supelec snat ip saddr map @adherent_nat_address : ip saddr map @adherent_nat_port;
|
|
# NAT federez
|
|
iifname $if_federez oifname $if_supelec snat ip saddr map @federez_nat_address : ip saddr map @federez_nat_port;
|
|
# NAT ALOES
|
|
iifname $if_adherent oifname $if_supelec snat ip saddr map @aloes_nat_address : ip saddr map @aloes_nat_port;
|
|
# NAT Server
|
|
iifname $if_admin oifname $if_supelec snat ip saddr map @server_nat_address : ip saddr map @server_nat_port;
|
|
# NAT prerezotage
|
|
iifname $if_prerezotage 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
|
|
|
|
}
|
|
|
|
}
|