Inleiding
Dit document beschrijft dat de ordertransacties met NAT worden verwerkt op basis van de richting waarin een pakket zich binnen of buiten het netwerk beweegt.
Voorwaarden
Vereisten
Cisco raadt je aan om kennis te hebben van dit onderwerp:
Gebruikte componenten
De informatie in dit document is gebaseerd op de Cisco IOS® Software Release 12.2(27).
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.
Conventies
Raadpleeg Cisco Technical Tips Conventions (Conventies voor technische tips van Cisco) voor meer informatie over documentconventies.
Achtergrondinformatie
Dit document beschrijft dat de volgorde waarin transacties worden verwerkt met Network Address Translation (NAT) is gebaseerd op het feit of een pakket van het interne netwerk naar het externe netwerk gaat, of van het externe netwerk naar het interne netwerk.
Overzicht van NAT
Wanneer NAT in deze tabel de globale naar lokale, of lokale naar globale vertaling uitvoert, verschilt de vertaling in elke stroom.
| van binnen naar buiten |
van buiten naar binnen |
- Als IPSec is ingeschakeld, controleert u de invoertoegangslijst.
- decodering - voor Cisco Encryption Technology (CET) of IPSec
- Invoertoegangslijst controleren
- Invoersnelheidslimieten controleren
- inputboekhouding
- Omleiden naar webcache
- beleidsroutering
- routering
- NAT van binnen naar buiten (van lokaal naar wereldwijd vertalen)
- Crypto (controleer kaart en markering voor codering)
- Uitvoertoegangslijst controleren
- inspecteren (Contextgebaseerde toegangscontrole (CBAC))
- TCP-onderschepping
- encryptie
- wachtrij
|
- Als IPSec is ingeschakeld, controleert u de invoertoegangslijst.
- decodering - voor CET of IPSec
- Invoertoegangslijst controleren
- Invoersnelheidslimieten controleren
- inputboekhouding
- Omleiden naar webcache
- NAT van buiten naar binnen (wereldwijd naar lokaal vertalen)
- beleidsroutering
- routering
- Crypto (controleer kaart en markering voor codering)
- Uitvoertoegangslijst controleren
- Inspecteer CBAC
- TCP-onderschepping
- encryptie
- wachtrij
|
NAT-configuratie en -uitvoer
Dit voorbeeld laat zien hoe de volgorde van bewerkingen NAT kan beïnvloeden. In dit geval worden alleen NAT en routering weergegeven.
In het vorige voorbeeld is Router-A geconfigureerd om het lokale adres 172.31.200.48 naar 172.16.47.150 te vertalen, zoals in deze configuratie wordt weergegeven.
!
version 11.2
no service udp-small-servers
no service tcp-small-servers
!
hostname Router-A
!
enable password ww
!
ip nat inside source static 172.31.200.48 172.16.47.150
!--- This command creates a static NAT translation
!--- between 172.31.200.48 and 172.16.47.150
ip domain-name cisco.com
ip name-server 172.31.2.132
!
interface Ethernet0
no ip address
shutdown
!
interface Serial0
ip address 172.16.47.161 255.255.255.240
ip nat inside
!--- Configures Serial0 as the NAT inside interface
no ip mroute-cache
no ip route-cache
no fair-queue
!
interface Serial1
ip address 172.16.47.146 255.255.255.240
ip nat outside
!--- Configures Serial1 as the NAT outside interface
no ip mroute-cache
no ip route-cache
!
no ip classless
ip route 0.0.0.0 0.0.0.0 172.16.47.145
!--- Configures a default route to 172.16.47.145
ip route 172.31.200.0 255.255.255.0 172.16.47.162
!
!
line con 0
exec-timeout 0 0
line aux 0
line vty 0 4
password ww
login
!
end
De vertaaltabel geeft aan dat de beoogde vertaling bestaat.
Router-A#show ip nat translation
Pro Inside global Inside local Outside local Outside global
--- 172.16.47.150 172.31.200.48 --- ---
Deze uitvoer is afkomstig van Router-A met debug ip-pakketdetails en debug ip nat ingeschakeld, en een ping uitgegeven van apparaat 172.31.200.48 bestemd voor 172.16.47.142.
Opmerking: foutopsporingsopdrachten genereren een aanzienlijke hoeveelheid uitvoer. Gebruik ze alleen wanneer het verkeer op het IP-netwerk laag is, zodat andere activiteiten op het systeem niet nadelig worden beïnvloed. Voordat u foutopsporingsopdrachten geeft, raadpleegt u Belangrijke informatie over foutopsporingsopdrachten.
IP: s=172.31.200.48 (Serial0), d=172.16.47.142, len 100, unroutable
ICMP type=8, code=0
IP: s=172.16.47.161 (local), d=172.31.200.48 (Serial0), len 56, sending
ICMP type=3, code=1
IP: s=172.31.200.48 (Serial0), d=172.16.47.142, len 100, unroutable
ICMP type=8, code=0
IP: s=172.31.200.48 (Serial0), d=172.16.47.142, len 100, unroutable
ICMP type=8, code=0
IP: s=172.16.47.161 (local), d=172.31.200.48 (Serial0), len 56, sending
ICMP type=3, code=1
IP: s=172.31.200.48 (Serial0), d=172.16.47.142, len 100, unroutable
ICMP type=8, code=0
IP: s=172.31.200.48 (Serial0), d=172.16.47.142, len 100, unroutable
ICMP type=8, code=0
IP: s=172.16.47.161 (local), d=172.31.200.48 (Serial0), len 56, sending
ICMP type=3, code=1
Aangezien er geen NAT-foutopsporingsberichten zijn in de vorige uitvoer, wordt de huidige statische vertaling niet gebruikt en heeft de router geen route voor het bestemmingsadres (172.16.47.142) in de routeringstabel. Het resultaat van het niet-routeerbare pakket is een ICMP Unreach Message, dat naar het interne apparaat wordt verzonden, maar Router-A heeft een standaardroute van 172.16.47.145, dus waarom wordt de route als niet-routeerbaar beschouwd?
Router-A heeft geen ip-klassen geconfigureerd, wat betekent dat als een pakket bestemd voor een groot netwerkadres (in dit geval 172.16.0.0) waarvoor subnetten bestaan in de routeringstabel, de router niet vertrouwt op de standaardroute. Met andere woorden, als u de opdracht geen ip-klasloos geeft, schakelt dit de mogelijkheid van de router uit om te zoeken naar de route met de langste bitovereenkomst. Om dit gedrag te veranderen, moet u ip classless configureren op Router-A. De opdracht ip classless is standaard ingeschakeld op Cisco-routers met Cisco IOS Software Releases 11.3 en hoger.
Router-A#configure terminal
Enter configuration commands, one per line. End with CTRL/Z.
Router-A(config)#ip classless
Router-A(config)#end
Router-A#show ip nat translation
%SYS-5-CONFIG_I: Configured from console by console nat tr
Pro Inside global Inside local Outside local Outside global
--- 172.16.47.150 172.31.200.48 --- ---
Wanneer je dezelfde ping test herhaalt als eerder gedaan, zie je dat het pakket wordt vertaald en de ping succesvol is.
Ping Response on device 172.31.200.48
D:\>ping 172.16.47.142
Pinging 172.16.47.142 with 32 bytes of data:
Reply from 172.16.47.142: bytes=32 time=10ms TTL=255
Reply from 172.16.47.142: bytes=32 time<10ms TTL=255
Reply from 172.16.47.142: bytes=32 time<10ms TTL=255
Reply from 172.16.47.142: bytes=32 time<10ms TTL=255
Ping statistics for 172.16.47.142:
Packets: Sent = 4, Received = 4, Lost = 0 (0%)
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 10ms, Average = 2ms
Debug messages on Router A indicating that the packets generated by device
172.31.200.48 are getting translated by NAT.
Router-A#
*Mar 28 03:34:28: IP: tableid=0, s=172.31.200.48 (Serial0), d=172.16.47.142
(Serial1), routed via RIB
*Mar 28 03:34:28: NAT: s=172.31.200.48->172.16.47.150, d=172.16.47.142 [160]
*Mar 28 03:34:28: IP: s=172.16.47.150 (Serial0), d=172.16.47.142 (Serial1),
g=172.16.47.145, len 100, forward
*Mar 28 03:34:28: ICMP type=8, code=0
*Mar 28 03:34:28: NAT*: s=172.16.47.142, d=172.16.47.150->172.31.200.48 [160]
*Mar 28 03:34:28: IP: tableid=0, s=172.16.47.142 (Serial1), d=172.31.200.48
(Serial0), routed via RIB
*Mar 28 03:34:28: IP: s=172.16.47.142 (Serial1), d=172.31.200.48 (Serial0),
g=172.16.47.162, len 100, forward
*Mar 28 03:34:28: ICMP type=0, code=0
*Mar 28 03:34:28: NAT*: s=172.31.200.48->172.16.47.150, d=172.16.47.142 [161]
*Mar 28 03:34:28: NAT*: s=172.16.47.142, d=172.16.47.150->172.31.200.48 [161]
*Mar 28 03:34:28: IP: tableid=0, s=172.16.47.142 (Serial1), d=172.31.200.48
(Serial0), routed via RIB
*Mar 28 03:34:28: IP: s=172.16.47.142 (Serial1), d=172.31.200.48 (Serial0),
g=172.16.47.162, len 100, forward
*Mar 28 03:34:28: ICMP type=0, code=0
*Mar 28 03:34:28: NAT*: s=172.31.200.48->172.16.47.150, d=172.16.47.142 [162]
*Mar 28 03:34:28: NAT*: s=172.16.47.142, d=172.16.47.150->172.31.200.48 [162]
*Mar 28 03:34:28: IP: tableid=0, s=172.16.47.142 (Serial1), d=172.31.200.48
(Serial0), routed via RIB
*Mar 28 03:34:28: IP: s=172.16.47.142 (Serial1), d=172.31.200.48 (Serial0),
g=172.16.47.162, len 100, forward
*Mar 28 03:34:28: ICMP type=0, code=0
*Mar 28 03:34:28: NAT*: s=172.31.200.48->172.16.47.150, d=172.16.47.142 [163]
*Mar 28 03:34:28: NAT*: s=172.16.47.142, d=172.16.47.150->172.31.200.48 [163]
*Mar 28 03:34:28: IP: tableid=0, s=172.16.47.142 (Serial1), d=172.31.200.48
(Serial0), routed via RIB
*Mar 28 03:34:28: IP: s=172.16.47.142 (Serial1), d=172.31.200.48 (Serial0),
g=172.16.47.162, len 100, forward
*Mar 28 03:34:28: ICMP type=0, code=0
*Mar 28 03:34:28: NAT*: s=172.31.200.48->172.16.47.150, d=172.16.47.142 [164]
*Mar 28 03:34:28: NAT*: s=172.16.47.142, d=172.16.47.150->172.31.200.48 [164]
*Mar 28 03:34:28: IP: tableid=0, s=172.16.47.142 (Serial1), d=172.31.200.48
(Serial0), routed via RIB
*Mar 28 03:34:28: IP: s=172.16.47.142 (Serial1), d=172.31.200.48 (Serial0),
g=172.16.47.162, len 100, forward
*Mar 28 03:34:28: ICMP type=0, code=0
Router-A#undebug all
All possible debugging has been turned off
Het vorige voorbeeld laat zien dat wanneer een pakket van binnen naar buiten gaat, een NAT-router zijn routeringstabel controleert op een route naar het externe adres voordat het het pakket blijft vertalen. Daarom is het belangrijk dat de NAT-router een geldige route heeft voor het externe netwerk. De route naar het bestemmingsnetwerk moet bekend zijn via een interface die is gedefinieerd als NAT buiten in de routerconfiguratie.
Het is belangrijk op te merken dat de retourpakketten worden vertaald voordat ze worden gerouteerd. Daarom moet de NAT-router ook een geldige route hebben voor het lokale adres Inside in de routeringstabel.
Gerelateerde informatie