Serviciul NAT nu poate fi evitat in unele situatii cum ar fi in retelele enterprise sau in retelele care deservesc clienti ai pietelor financiare.
Cisco suporta pe echipamentele ASA, Adaptive Security Appliances, urmatoarele configuratii NAT:
- Static, tanslatarea IP se face one-to-one;
- Dinamic, translatarea IP se face many-to-many;
- PAT sau Overload, translatarea IP se face many-to-one (in terminologie ASA Dynamic Portmap).
In exemplul urmator va fi exemplificat fiecare caz in parte, folosind Destination NAT (sursa traficului este translatata pentru a accesa o anumita destinatie), pe urmatoarea topologie de test:
Echipamentul ASA va translata adresele IP din clasa 172.16.0.0/23 pentru a avea acces la clasa 192.168.0.0/24, indiferent de porturile destinatie.
10.10.10.0/30 este folosita pentru SVI-ul de interconectare RPA-ASA, iar 10.20.20.0/24 pentru SVI-ul de interconectare ASA-RPB.
Comenzile date pe ASA sunt compatibile cu versiunea IOS 8.2.
RPA(config)#interface Vlan100
RPA(config-if)#description Interconectare RPA - ASA
RPA(config-if)#ip address 10.10.10.1 255.255.255.248
RPA(config-if)#load-interval 30
RPA(config-if)#end
Interfata ASA Inside Local Eth0/1:
ASA(config)#interface Ethernet0/1
ASA(config-if)#description Interconectare ASA - RPA
ASA(config-if)#nameif LANIF
ASA(config-if)#security-level 100
ASA(config-if)#ip address 10.10.10.2 255.255.255.248
Pentru interconectarea dintre ASA si RPB este folosita pe ASA o subinterfata 802.1Q terminata in echipamentul RPI, acolo unde RPB este conectat intr-o interfata acces.
Interfata ASA Inside Global Eth0/0:
ASA(config)#interface Ethernet0/0
ASA(config-if)#no nameif
ASA(config-if)#security-level 0
ASA(config-if)#no ip address
ASA(config-if)#exit
ASA(config)#interface Ethernet0/0.500
ASA(config-if)#description Interconectare ASA - RPB
ASA(config-if)#vlan 500
ASA(config-if)#nameif NATRPB
ASA(config-if)#security-level 0
ASA(config-if)#ip address 10.20.20.2 255.255.255.0
ASA(config-if)#end
RPI(config)#interface GigabitEthernet1/0
RPI(config-if)#description Interconectare RPI - ASA
RPI(config-if)#switchport trunk encapsulation dot1q
RPI(config-if)#switchport trunk allowed vlan 500
RPI(config-if)#switchport mode trunk
RPI(config-if)#switchport nonegociate
RPI(config-if)#load-interval 30
RPI(config-if)#exit
RPI(config)#interface GigabitEthernet2/0
RPI(config-if)#description Client RPB
RPI(config-if)#switchport mode access
RPI(config-if)#switchport access vlan 500
RPI(config-if)#switchport nonegociate
RPI(config-if)#load-interval 30
RPI(config-if)#end
Pentru a mentine exemplul clar si simplu, este folosita rutarea statica:
RPA(config)#ip route 192.168.0.0 255.255.255.0 10.10.10.2
ASA(config)#route NATRPB 192.168.0.0 255.255.255.0 10.20.20.1
ASA(config)#route LANIF 172.16.0.0 255.255.254.0 10.10.10.1
In continuare vor fi configurate pe ASA urmatoarele reguli NAT pentru sursele care vor sa acceseze clasa 192.168.0.0/24:
- Orice sursa din clasa 172.16.1.0/24 va fi translatata in adresa 10.20.20.3 (PAT);
- Sursa 172.16.0.20 va fi translatata in adresa 10.20.20.4 (Static NAT);
- Sursele din clasa 172.16.0.0/24 sunt translatate one-to-one in adrese din intervalul 10.20.20.5 – 10.20.20.105 (Dinamic NAT), iar atunci cand plaja 10.20.20.5 – 10.20.20.105 este epuizata, translatarea se va face in adresa 10.20.20.106 pana cand o adresa din intervall precedent devine libera.
ASA(config)#name 172.16.1.0 Client-DOI ! Pentru Regula 1
ASA(config)#name 172.16.0.0 Client-UNU ! Pentru Regula 3
ASA(config)#name 10.20.20.3 Client-DOI-PAT ! Pentru Regula 1
ASA(config)#name 10.20.20.106 Client-UNU-PAT ! Pentru Regula 3
ASA(config)#nat (LANIF) 1 Client-DOI 255.255.255.0 ! Pentru Regula 1
ASA(config)#static (NATRPB, LANIF) 172.16.0.20 10.20.20.4 netmask 255.255.255.255 ! Pentru Regula 2
ASA(config)#nat (LANIF) 2 Clinet-UNU ! Pentru Regula 3
ASA(config)#global (NATRPB) 1 Client-DOI-PAT netmask 255.255.255.0 ! Pentru Regula 1
ASA(config)#global (NATRPB) 2 10.20.20.5-10.20.20.105 netmask 255.255.255.0 ! Pentru Regula 3
ASA(config)#global (NATRPB) 2 Client-UNU-PAT netmask 255.255.255.0 ! Pentru Regula 3
- Pentru traficul de raspuns, dinspre RPB spre 172.16.0.0/23, nu este necesara o configuratie suplimentara atata timp cat sesiunea NAT este inca activa pe echipamentul ASA, exista inregistrarea corespunzatoare in tabela translatarilor NAT.
- Traficul initiat de RPB catre 172.16.0.0/23, LANIF, nu va fi niciodata permis implicit de catre ASA datorita faptului ca interfata spre RPB, Eth0/0, are un security-level inferior interfetei interne LANIF, Eth0/1.
- Situatia precedenta, in cazul traficului initiat de catre RPB, este un pic diferita insa pentru static NAT, care creeaza o intrare permanenta in tabela NAT, permitand astfel ambelor parti sa initieze o conexiune.
Verificam tabela translatarilor NAT cu comanda show xlate detail
:
ASA# show xlate detail
Flags: D - DNS, d - dump, I - identity, i - dynamic, n - no random,
r - portmap, s - static
NAT from NATRPB:10.20.20.4 to LANIF:172.16.0.20 flags s
TCP PAT from LANIF:172.16.1.100/38739 to NATRPB:Client-DOI-PAT/23 flags ri