In dit document wordt beschreven hoe u problemen kunt oplossen met de NAT-configuratie (Network Address Translation) op het ASA-platform (Adaptive Security Appliance) van Cisco.
Er zijn geen specifieke vereisten van toepassing op dit document.
De informatie in dit document is gebaseerd op ASA versie 8.3 en hoger.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Opmerking: Voor enkele basisvoorbeelden van NAT-configuraties, waaronder een video met een basisconfiguratie van NAT, raadpleegt u het gedeelte Gerelateerde informatie onderaan dit document.
Wanneer u problemen met NAT-configuraties oplost, is het belangrijk om te begrijpen hoe de NAT-configuratie op de ASA wordt gebruikt om de NAT-beleidstabel te bouwen.
Deze configuratiefouten zijn verantwoordelijk voor de meeste NAT-problemen waarmee ASA-beheerders worden geconfronteerd:
Het pakkettracer-hulpprogramma kan worden gebruikt om de meeste NAT-gerelateerde problemen op de ASA te diagnosticeren. Zie de volgende sectie voor meer informatie over hoe de NAT-configuratie wordt gebruikt om de NAT-beleidstabel te maken en hoe u specifieke NAT-problemen kunt oplossen en oplossen.
Daarnaast kan de show nat detail commando worden gebruikt om te begrijpen welke NAT regels worden getroffen door nieuwe verbindingen.
Alle pakketten die door de ASA worden verwerkt, worden beoordeeld aan de hand van de NAT-tabel. Deze evaluatie begint bovenaan (sectie 1) en werkt af totdat een NAT-regel is afgestemd.
Over het algemeen wordt, zodra een NAT-regel is gematcht, die NAT-regel toegepast op de verbinding en worden er geen NAT-beleid meer vergeleken met het pakket, maar er worden enkele kanttekeningen hieronder uitgelegd.
De NAT-beleidstabel
Het NAT-beleid voor de ASA is gebaseerd op de NAT-configuratie.
De drie secties van de ASA NAT-tabel zijn:
| Afdeling 1 | Handmatig NAT-beleid Deze worden verwerkt in de volgorde waarin ze in de configuratie worden weergegeven. |
| Afdeling 2 | Automatisch NAT-beleid Deze worden verwerkt op basis van het NAT-type (statisch of dynamisch) en de lengte van het voorvoegsel (subnetmasker) in het object. |
| Afdeling 3 | Na-automatische handmatige NAT-beleidsregels Deze worden verwerkt in de volgorde waarin ze in de configuratie worden weergegeven. |
Dit diagram toont de verschillende NAT-secties en hoe ze zijn besteld:

NAT-regelmatch
Afdeling 1
Afdeling 2
Afdeling 3
In dit voorbeeld wordt getoond hoe de ASA NAT-configuratie met twee regels (één handmatige NAT-instructie en één automatische NAT-configuratie) in de NAT-tabel wordt weergegeven:

Om problemen met NAT-configuraties op te lossen, gebruikt u het hulpprogramma pakkettracer om te controleren of een pakket voldoet aan het NAT-beleid. Met Packet Tracer kunt u een voorbeeldpakket opgeven dat in de ASA wordt ingevoerd en de ASA geeft aan welke configuratie van toepassing is op het pakket en of het is toegestaan of niet.
In het volgende voorbeeld wordt een voorbeeld van een TCP-pakket gegeven dat de binneninterface binnenkomt en bestemd is voor een host op het internet. Het hulpprogramma voor pakkettracering laat zien dat het pakket voldoet aan een dynamische NAT-regel en wordt vertaald naar het externe IP-adres van 172.16.123.4:
ASA# packet-tracer input inside tcp 10.10.10.123 12345 192.168.200.123 80
...(output omitted)...
Phase: 2
Type: NAT
Subtype:
Result: ALLOW
Config:
object network 10.10.10.0-net
nat (inside,outside) dynamic interface
Additional Information:
Dynamic translate 10.10.10.123/12345 to 172.16.123.4/12345
...(output omitted)...
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow
ASA#
Kies de NAT-regel en klik op Packet Trace om de pakkettracer te activeren vanuit de Cisco Adaptive Security Device Manager (ASDM). Hierbij worden de IP-adressen gebruikt die in de NAT-regel zijn opgegeven als de ingangen voor het pakketvolgprogramma:

De uitvoer van de opdracht show nat detail kan worden gebruikt om de NAT-beleidstabel te bekijken. Met name de tellers translate_hits en untranslate_hits kunnen worden gebruikt om te bepalen welke NAT-vermeldingen op de ASA worden gebruikt.
Als u ziet dat uw nieuwe NAT-regel geen translate_hits of untranslate_hits heeft, betekent dit dat het verkeer niet bij de ASA aankomt, of misschien een andere regel met een hogere prioriteit in de NAT-tabel overeenkomt met het verkeer.
Hier is de NAT-configuratie en de NAT-beleidstabel van een andere ASA-configuratie:

In het vorige voorbeeld zijn er zes NAT-regels geconfigureerd op deze ASA. De show nat-uitvoer toont hoe deze regels worden gebruikt om de NAT-beleidstabel samen te stellen, evenals het aantal translate_hits en untranslate_hits voor elke regel.
Deze treftellers worden slechts één keer per verbinding verhoogd. Nadat de verbinding via de ASA is gebouwd, verhogen de volgende pakketten die overeenkomen met die huidige verbinding de NAT-lijnen niet (net zoals de manier waarop de toegangslijst-hit op de ASA werkt).
Translate_hits: Het aantal nieuwe verbindingen dat overeenkomt met de NAT-regel in de voorwaartse richting.
"Voorwaartse richting" betekent dat de verbinding via de ASA is gebouwd in de richting van de interfaces die in de NAT-regel zijn gespecificeerd.
Als een NAT-regel specificeert dat de binnenserver naar de externe interface wordt vertaald, is de volgorde van de interfaces in de NAT-regel "nat (binnen, buiten)..."; als die server een nieuwe verbinding met een host aan de buitenkant initieert, neemt de translate_hit-teller toe.
Untranslate_hits: Het aantal nieuwe verbindingen dat overeenkomt met de NAT-regel in de omgekeerde richting.
Als een NAT-regel aangeeft dat de interne server naar de externe interface wordt vertaald, is de volgorde van de interfaces in de NAT-regel "nat (binnen, buiten)..."; als een client aan de buitenkant van de ASA een nieuwe verbinding met de server aan de binnenkant initieert, neemt de teller untranslate_hit toe.
Nogmaals, als u ziet dat uw nieuwe NAT-regel geen translate_hits of untranslate_hits heeft, betekent dit dat het verkeer niet bij de ASA aankomt, of misschien een andere regel die een hogere prioriteit heeft in de NAT-tabel, overeenkomt met het verkeer.
Gebruik pakkettracer om te bevestigen dat een voorbeeldpakket overeenkomt met de juiste NAT-configuratieregel op de ASA. Gebruik de opdracht show nat detail om te begrijpen welke NAT-beleidsregels worden getroffen. Als een verbinding overeenkomt met een andere NAT-configuratie dan verwacht, lost u het probleem op met de volgende vragen:
Zie de volgende sectie voor voorbeeldproblemen en oplossingen.
Hier zijn enkele veelvoorkomende problemen die u ondervindt wanneer u NAT op de ASA configureert.
De NAT RPF-controle zorgt ervoor dat een verbinding die door de ASA in de voorwaartse richting wordt vertaald, zoals de TCP-synchronisatie (SYN), wordt vertaald door dezelfde NAT-regel in de omgekeerde richting, zoals de TCP SYN/acknowledged (ACK).
Meestal wordt dit probleem veroorzaakt door inkomende verbindingen die bestemd zijn voor het lokale (niet-vertaalde) adres in een NAT-verklaring. Op basisniveau verifieert de NAT RPF of de omgekeerde verbinding van de server met de client overeenkomt met dezelfde NAT-regel; als dit niet het geval is, mislukt de NAT RPF-controle.
Voorbeeld: 209 165 200 225

Wanneer de externe host op 192.168.200.225 een pakket verzendt dat rechtstreeks is bestemd voor het lokale (niet-vertaalde) IP-adres van 10.2.3.2, laat de ASA het pakket vallen en logt dit syslog:
%ASA-5-305013: Asymmetric NAT rules matched for forward and reverse flows;
Connection for icmp src outside:192.168.200.225 dst inside:10.2.3.2 (type 8, code 0)
denied due to NAT reverse path failure
Oplossing:
Zorg er eerst voor dat de host gegevens naar het juiste wereldwijde NAT-adres verzendt. Als de host pakketten verzendt die bestemd zijn voor het juiste adres, controleert u de NAT-regels die worden getroffen door de verbinding.
Controleer of de NAT-regels correct zijn gedefinieerd en of de objecten waarnaar wordt verwezen in de NAT-regels correct zijn. Controleer ook of de volgorde van de NAT-regels passend is.
Gebruik het hulpprogramma voor pakkettracering om de details van het geweigerde pakket op te geven. Packet tracer moet het gedropte pakket tonen als gevolg van de RPF-controle mislukt.
Kijk vervolgens naar de uitvoer van pakkettracer om te zien welke NAT-regels worden getroffen in de NAT-fase en de NAT-RPF-fase.
Als een pakket overeenkomt met een NAT-regel in de NAT RPF-controlefase, die aangeeft dat de omgekeerde stroom een NAT-vertaling zou raken, maar niet overeenkomt met een regel in de NAT-fase, die aangeeft dat de voorwaartse stroom GEEN NAT-regel zou raken, wordt het pakket gedropt.
Deze uitvoer komt overeen met het scenario in het vorige diagram, waarbij de externe host ten onrechte verkeer verzendt naar het lokale IP-adres van de server en niet naar het algemene (vertaalde) IP-adres:
ASA# packet-tracer input outside tcp 192.168.200.225 1234 10.2.3.2 80
.....
Phase: 8
Type: NAT
Subtype: rpf-check
Result: DROP
Config:
object network inside-server
nat (inside,outside) static 172.18.22.1
Additional Information:
...
ASA(config)#
Wanneer het pakket bestemd is voor het juiste in kaart gebrachte IP-adres van 172.18.22.1, komt het pakket overeen met de juiste NAT-regel in de UN-NAT-fase in de voorwaartse richting, en dezelfde regel in de NAT-RPF-controlefase:
ASA(config)# packet-tracer input outside tcp 192.168.200.225 1234 172.18.22.1 80
...
Phase: 2
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
object network inside-server
nat (inside,outside) static 172.18.22.1
Additional Information:
NAT divert to egress interface inside
Untranslate 172.18.22.1/80 to 10.2.3.2/80
...
Phase: 8
Type: NAT
Subtype: rpf-check
Result: ALLOW
Config:
object network inside-server
nat (inside,outside) static 172.18.22.1
Additional Information:
...
ASA(config)#
De handmatige NAT-regels worden verwerkt op basis van hun uiterlijk in de configuratie. Als een zeer brede NAT-regel als eerste in de configuratie wordt vermeld, kan deze een andere, specifiekere regel verderop in de NAT-tabel overschrijven. Gebruik pakkettracer om te controleren welke NAT-regel uw verkeer raakt; het kan nodig zijn om de handmatige NAT-vermeldingen naar een andere volgorde te herschikken.
Oplossing:
NAT-regels opnieuw ordenen met ASDM.

Oplossing:
NAT-regels kunnen opnieuw worden geordend met de CLI als u de regel verwijdert en opnieuw invoegt op een specifiek lijnnummer. Als u een nieuwe regel op een specifieke regel wilt invoegen, voert u het lijnnummer in net nadat de interfaces zijn opgegeven.
Voorbeeld:
ASA(config)# nat (inside,outside) 1 source static 10.10.10.0-net
10.10.10.0-net destination static 192.168.1.0-net 192.168.1.0-net
Een NAT-regel is te breed en komt onbedoeld overeen met wat verkeer. Soms worden NAT-regels gemaakt die objecten gebruiken die te breed zijn. Als deze regels in de buurt van de bovenkant van de NAT-tabel worden geplaatst (bijvoorbeeld bovenaan sectie 1), kunnen ze meer verkeer overeenkomen dan bedoeld is en ervoor zorgen dat NAT-regels verderop in de tabel nooit worden geraakt.
Oplossing
Gebruik packet tracer om te bepalen of uw verkeer overeenkomt met een regel met objectdefinities die te breed zijn. Als dit het geval is, moet u het bereik van die objecten verkleinen of de regels verder naar beneden in de NAT-tabel verplaatsen, of naar het gedeelte na de automatische sectie (sectie 3) van de NAT-tabel.
Een NAT-regel leidt verkeer om naar een onjuiste interface. NAT-regels kunnen voorrang hebben op de routeringstabel wanneer ze bepalen welke interface een pakket de ASA uitschakelt. Als een inbound-pakket overeenkomt met een vertaald IP-adres in een NAT-instructie, wordt de NAT-regel gebruikt om de egress-interface te bepalen.
De NAT-verleggingscontrole (die de routeringstabel kan overschrijven) controleert of er een NAT-regel is die bestemmingsadresvertaling specificeert voor een inbound pakket dat op een interface aankomt.
Als er geen regel is die expliciet aangeeft hoe het IP-adres van de bestemming van het pakket moet worden vertaald, wordt de algemene routeringstabel geraadpleegd om de interface voor de uitgang te bepalen.
Als er een regel is die expliciet aangeeft hoe het IP-adres van de bestemming van het pakket moet worden vertaald, trekt de NAT-regel het pakket naar de andere interface in de vertaling en wordt de algemene routeringstabel effectief omzeild.
Dit probleem wordt meestal gezien voor inkomende verkeer, dat op de externe interface aankomt, en is meestal te wijten aan out-of-order NAT-regels die verkeer omleiden naar onbedoelde interfaces.
Voorbeeld:

Oplossingen:
Dit probleem kan worden opgelost met een van de volgende acties:
Merk op dat als de NAT-regel een identiteitsregel is (wat betekent dat de IP-adressen niet door de regel worden gewijzigd), het trefwoord route-lookup kan worden gebruikt (dit trefwoord is niet van toepassing op het vorige voorbeeld omdat de NAT-regel geen identiteitsregel is).
Het trefwoord route-lookup zorgt ervoor dat de ASA een extra controle uitvoert wanneer deze overeenkomt met een NAT-regel. Het controleert of de routeringstabel van de ASA het pakket doorstuurt naar dezelfde uitgang-interface waarnaar deze NAT-configuratie het pakket omleidt.
Als de uitgaande interface van de routeringstabel niet overeenkomt met de NAT-uitwijkinterface, wordt de NAT-regel niet gematcht (de regel wordt overgeslagen) en gaat het pakket verder naar beneden in de NAT-tabel om te worden verwerkt door een latere NAT-regel.
De route-lookup-optie is alleen beschikbaar als de NAT-regel een NAT-identiteitsregel is, wat betekent dat de IP-adressen niet door de regel worden gewijzigd. De optie route-lookup kan per NAT-regel worden ingeschakeld als u route-lookup toevoegt aan het einde van de NAT-regel, of als u het selectievakje Lookup route table to locate egress interface aanvinkt in de NAT-regelconfiguratie in ASDM:

De ASA Proxy ARP's voor het wereldwijde IP-adresbereik in een NAT-verklaring op de wereldwijde interface. Deze Proxy ARP-functionaliteit kan per NAT-regel worden uitgeschakeld als u het trefwoord no-proxy-arp toevoegt aan de NAT-instructie.
Dit probleem wordt ook gezien wanneer het subnet voor het wereldwijde adres per ongeluk wordt gemaakt om veel groter te zijn dan het bedoeld was.
Oplossing
Voeg indien mogelijk het no-proxy-arp trefwoord toe aan de NAT-regel.
Voorbeeld:
ASA(config)# object network inside-server
ASA(config-network-object)# nat (inside,outside) static 172.18.22.1 no-proxy-arp
ASA(config-network-object)# end
ASA#
ASA# show run nat
object network inside-server
nat (inside,outside) static 172.18.22.1 no-proxy-arp
ASA#
Dit kan ook worden bereikt met ASDM. Schakel in de NAT-regel het selectievakje Proxy ARP uitschakelen in de regress-interface in.

.
| Revisie | Publicatiedatum | Opmerkingen |
|---|---|---|
3.0 |
08-May-2024
|
Hercertificering. |
2.0 |
09-Mar-2023
|
Bijgewerkte opmaak, gecorrigeerd gebruik. Hercertificering. |
1.0 |
07-Jul-2013
|
Eerste vrijgave |