Pour parler du DNAT, il existe en effet trois moyen de le faire:
- MIP: cette methode est la plus simple, mais aussi la plus gourmande car vous allez reservez une IP complete,
et en réalité on ne fait pas de PAT (port translation), juste du NAT (adresse translation).
- VIP: methode simplifié pour faire du PAT et du DNAT, mais si vous avez déjà une MIP configurée sur une addr ip,
vous ne pourrez pas configfurer la VIP
- Policy Based NAT: methode la plus compliqué mais aussi la plus souple, le DNAT requiert des regles strict:
- Interface based NAT: non applicable pour du DNAT.
La précédence des methodes est celle-ci:
MIP -> VIP -> Pol.NAT -> Int.NAT
cela veux dire, que si une IP X se trouve en même temps dans une règle MIP, et dans une Policy,
il n'y a que la MIP qui sera executé. Si une ip Y se trouve dans une VIP et dans une Polixy, seuleument la VIP sera executé.
Donc ne pourrez pas effectuer une translation de port sur une IP déjà utilisée dans un MIP. Si vous souhaitez vraiment le faire,
vous devrez déconfigurer la MIP, puis recreer toutes les translation avec du Policy Based NAT, avec en général des double policy,
car les MIP font du SNAT et du DNAT.
NOTE POUR LE DNAT:
Rappel pour ScreenOS: le process des packet se fait comme suit:
-1- session lookup
-2- route lookup
-3- policy lookup
Comme la validation de la route se fait avant la validation de la regle policy, il _FAUT_ qu'il y ai une route qui existe dans la zone de destination du packet.
Un exemple étant toujours plus parlant en voici un en utlisans le Pol-NAT:
Prenons une install comme suit:
Zone Trust: interface e1/1, IP:10.1.20.1/24
Zone Untrust: interface e1/8, IP:1.1.10.1/24
On souhaite publier l'addresse d'une ressouce interne tels que:
Public Addr: 1.1.10.20
Private Addr: 10.1.20.5
Etapes pour ce faire:
1: Configurer Addr Book (addr public dans la zone privée ==> pretranslation)
set address Trust MyPCPublic 1.1.10.20/32
2: Etre Joignable: On choisi soit la methode A soit la B:
2a: set interface e1/1 ip 1.1.10.1/24 secondary
2b: set route 1.1.10.20/32 int e1/1
3: Configurer la policy, avec translation de port:
set policy from untrust to trust any MyPCPublic http nat dest ip 10.1.20.5 port 8080 permit
4: on verifie le resultat apres avoir testé avec un 'get session'