Dit document laat zien hoe u netwerkadresomzetting (NAT) kunt gebruiken voor overlappende netwerken. Overlappende netwerken resulteren wanneer u een IP-adres aan een apparaat in uw netwerk toewijzen dat al wettelijk eigendom is en aan een ander apparaat op het Internet of het externe netwerk is toegewezen. Overlappende netwerken resulteren ook wanneer twee bedrijven, die allebei RFC 1918 IP adressen in hun netwerken gebruiken, fuseren. Deze twee netwerken moeten communiceren, bij voorkeur zonder dat ze al hun apparaten opnieuw hoeven aan te passen.
Een fundamenteel begrip van IP-adressering, IP-routing en Domain Name System (DNS) is behulpzaam voor het begrijpen van de inhoud van dit document.
Ondersteuning voor NAT begon in Cisco IOS® softwareversie 11.2. Zie NAT vaak gestelde vragen voor meer informatie over platform ondersteuning.
Raadpleeg voor meer informatie over documentconventies de technische Tips van Cisco.
Deze sectie bevat informatie over het configureren van de functies die in dit document worden beschreven.
N.B.: Als u aanvullende informatie wilt vinden over de opdrachten in dit document, gebruikt u het Opdrachtplanningprogramma (alleen geregistreerd klanten).
Dit document gebruikt de netwerkinstellingen die in het onderstaande schema zijn weergegeven.
Merk op dat het binnenapparaat hetzelfde IP adres heeft als het buitenapparaat waarmee het wil communiceren.
Router A is ingesteld voor NAT, zodat het het binnenapparaat vertaalt naar een adres van de pool "test-loop" en het externe apparaat naar een adres van de pool "test-dns". Een verklaring van hoe deze configuratie helpt bij het overbruggen volgt de configuratie onderstaande tabel.
router A |
---|
! version 11.2 no service udp-small-servers no service tcp-small-servers ! hostname Router-A ! ! ip domain-name cisco.com ip name-server 171.69.2.132 ! interface Loopback0 ip address 1.1.1.1 255.0.0.0 ! interface Ethernet0 ip address 135.135.1.2 255.255.255.0 shutdown ! interface Serial0 ip address 171.68.200.49 255.255.255.0 ip nat inside 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 no ip mroute-cache no ip route-cache ! ip nat pool test-loop 172.16.47.161 172.16.47.165 prefix-length 28 ip nat pool test-dns 172.16.47.177 172.16.47.180 prefix-length 28 ip nat inside source list 7 pool test-loop ip nat outside source list 7 pool test-dns ip classless ip route 0.0.0.0 0.0.0.0 172.16.47.145 access-list 7 permit 171.68.200.0 0.0.0.255 ! ! line con 0 exec-timeout 0 0 line aux 0 line vty 0 4 login ! end |
Om de bovenstaande configuratie te helpen met overlappen wanneer het interne apparaat met het externe apparaat communiceert, moet het de domeinnaam van het externe apparaat gebruiken.
Het interne apparaat kan het IP adres van het externe apparaat niet gebruiken omdat het hetzelfde is als het adres dat aan zichzelf is toegewezen (het binnenapparaat). Daarom zal het interne apparaat een DNS vraag voor de domeinnaam van het externe apparaat verzenden. Het IP-adres van het interne apparaat zal de bron van deze query zijn, en dat adres zal worden vertaald naar een adres uit het 'test-loop'-bestand, omdat de opdracht ip nat-bron lijst is ingesteld.
De DNS-server antwoordt op het adres dat afkomstig is van de 'testlus' van de pool met het IP-adres dat gekoppeld is aan de domeinnaam van het externe apparaat bij de lading van het pakket. Het doeladres van het antwoordpakket wordt terugvertaald naar het adres van het interne apparaat en het adres in de lading van het antwoordpakket wordt dan vertaald naar een adres uit de "test-dns" van de pool vanwege de opdracht ip nat bron lijst. Daarom leert het binnenapparaat dat het IP adres voor het buitenapparaat één van de adressen van de "test-dns"pool is, en het zal dit adres gebruiken wanneer het met het buitenapparaat communiceert. De router die NAT uitvoert, zorgt voor de vertalingen op dit punt.
Dit proces kan in detail worden gezien in het gedeelte Problemen oplossen. Apparaten met overlappende adressen kunnen met elkaar communiceren zonder het gebruik van DNS, maar in dit geval moet statische NAT worden geconfigureerd. Een voorbeeld van hoe dit kan gebeuren.
router A |
---|
! version 11.2 no service udp-small-servers no service tcp-small-servers ! hostname Router-A ! ! ip domain-name cisco.com ip name-server 171.69.2.132 ! interface Loopback0 ip address 1.1.1.1 255.0.0.0 ! interface Ethernet0 ip address 135.135.1.2 255.255.255.0 shutdown ! interface Serial0 ip address 171.68.200.49 255.255.255.0 ip nat inside 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 no ip mroute-cache no ip route-cache ! ip nat pool test-loop 172.16.47.161 172.16.47.165 prefix-length 28 ip nat inside source list 7 pool test-loop ip nat outside source static 171.68.200.48 172.16.47.177 ip classless ip route 0.0.0.0 0.0.0.0 172.16.47.145 ip route 172.16.47.160 255.255.255.240 Serial0 !--- This line is necessary to make NAT work for return traffic. !--- The router needs to have a route for the pool to the inside !--- NAT interface so it knows that a translation is needed. access-list 7 permit 171.68.200.0 0.0.0.255 ! ! line con 0 exec-timeout 0 0 line aux 0 line vty 0 4 login ! end |
Wanneer het interne apparaat met het externe apparaat wil communiceren, kan het met de bovenstaande configuratie nu IP-adres 172.16.47.177, en DNS-code niet nodig gebruiken. Zoals hierboven wordt getoond, wordt het adres van het binnenapparaat nog dynamisch vertaald, wat betekent dat de router pakketten van het binnenapparaat moet krijgen voordat een vertaling wordt gemaakt. Om deze reden moet het interne apparaat alle verbindingen in werking stellen om het binnen en buiten apparaat te kunnen communiceren. Als het nodig was dat het externe apparaat verbindingen naar het interne apparaat opende, dan moet het adres voor het binnenapparaat ook statistisch worden geconfigureerd.
Er is momenteel geen verificatieprocedure beschikbaar voor deze configuratie.
Deze sectie bevat informatie waarmee u problemen met de configuratie kunt oplossen.
Het proces waarmee het interne apparaat DNS gebruikt om met het externe apparaat te communiceren, zoals hierboven beschreven, kan in detail worden bekeken met het volgende proces voor het oplossen van problemen.
Op dit moment zijn er geen vertalingen in de vertaaltabel die te zien zijn met de opdracht NAT-vertalingen. In plaats hiervan gebruiken de onderstaande voorbeelden het debug IP-pakket en debug ip Nat-opdrachten.
Opmerking: de opdrachten debug genereren een aanzienlijke hoeveelheid output. Gebruik het enkel wanneer het verkeer op het IP-netwerk laag is, zodat andere activiteit op het systeem niet nadelig wordt beïnvloed.
Router-A# show ip nat translations Router-A# show debug Generic IP: IP packet debugging is on (detailed) IP NAT debugging is on
Wanneer het interne apparaat zijn DNS-zoekopdracht naar de DNS-server stuurt, die zich buiten het NAT-domein bevindt, wordt het bronadres van de DNS-query (het adres van het interne apparaat) vertaald vanwege de ip-nat-opdrachten. Dit kan worden gezien in de onderstaande debug-uitvoer.
NAT: s=171.68.200.48->172.16.47.161, d=171.69.2.132 [0] IP: s=172.16.47.161 (Serial0), d=171.69.2.132 (Serial1), g=172.16.47.145, len 66, forward UDP src=6988, dst=53
Wanneer de DNS-server een DNS-antwoord verstuurt, wordt de lading van het DNS-antwoord vertaald vanwege de ip-nat opdrachten.
Opmerking: NAT kijkt niet naar de lading van het DNS-antwoord, tenzij er vertaling plaatsvindt in de IP-header van het antwoordpakket. Zie het ip nat bron lijst 7 pool bevel in de routerconfiguratie hierboven.
Het eerste NAT-bericht in de onderstaande debug-uitvoer toont dat de router het DNS-antwoord herkent en het IP-adres binnen de payload vertaalt naar 172.16.47.177. Het tweede NAT-bericht toont de router die de bestemming van het DNS-antwoord vertaalt, zodat er een antwoord kan worden doorgestuurd naar het interne apparaat dat de oorspronkelijke DNS-query heeft uitgevoerd. Het doelgedeelte van de header, het globale adres binnenin, wordt vertaald naar het lokale adres.
De lading van het DNS-antwoord wordt vertaald:
NAT: DNS resource record 171.68.200.48 -> 172.16.47.177
Het doelgedeelte van de IP-header in het DNS-antwoordpakket wordt vertaald:
NAT: s=171.69.2.132, d=172.16.47.161->171.68.200.48 [65371] IP: s=171.69.2.132 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 315, forward UDP src=53, dst=6988
Laten we een andere DNS-vraag bekijken en antwoorden:
NAT: s=171.68.200.48->172.16.47.161, d=171.69.2.132 [0] IP: s=172.16.47.161 (Serial0), d=171.69.2.132 (Serial1), g=172.16.47.145, len 66, forward UDP src=7419, dst=53 NAT: DNS resource record 171.68.200.48 -> 172.16.47.177 NAT: s=171.69.2.132, d=172.16.47.161->171.68.200.48 [65388] IP: s=171.69.2.132 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 315, forward UDP src=53, dst=7419
Nu de lading van de DNS is vertaald, heeft onze vertaaltabel een vermelding voor de externe lokale en algemene adressen van het externe apparaat. Met deze items in de tabel kunnen we de kop van de ICMP-pakketten die tussen het interne apparaat en het externe apparaat zijn uitgewisseld, nu volledig vertalen. Laten we kijken naar deze uitwisseling in de debug-uitvoer hieronder.
De volgende uitvoer toont het bronadres (het adres van het apparaat) dat wordt vertaald.
NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [406]
Hier wordt het doeladres (buiten het lokale adres van het apparaat) vertaald.
NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [406]
Na vertaling ziet het IP-pakket er zo uit:
IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward ICMP type=8, code=0
De volgende uitvoer toont het bronadres (het adres van het buitenapparaat) dat op het retourpakket wordt vertaald.
NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16259]
Nu wordt het doeladres (het globale adres van binnen apparaat) van het retourpakket vertaald.
NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16259]
Na vertaling ziet het retourpakket er zo uit:
IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward ICMP type=0, code=0
De uitwisseling van pakketten gaat tussen het binnenapparaat en het buitenapparaat verder.
NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [407] NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [407] IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward ICMP type=8, code=0 NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16262] NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16262] IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward ICMP type=0, code=0 NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [408] NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [408] IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward ICMP type=8, code=0 NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16267] NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16267] IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward ICMP type=0, code=0 NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [409] NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [409] IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward ICMP type=8, code=0 NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16273] NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16273] IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward ICMP type=0, code=0 NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [410] NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [410] IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward ICMP type=8, code=0 NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16277] NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16277] IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward ICMP type=0, code=0
Nadat de uitwisseling van pakketten tussen buiten en binnen is voltooid, kunnen we de vertaaltabel bekijken, die drie ingangen heeft. De eerste ingang werd gecreëerd toen het binnenapparaat een DNS vraag stuurde. De tweede vermelding werd gecreëerd toen de lading van het DNS-antwoord werd vertaald. De derde ingang werd gecreëerd toen het pingelen tussen het binnenapparaat en het buitenapparaat werd uitgewisseld. Het derde nummer is een samenvatting van de eerste twee inzendingen, en wordt gebruikt voor efficiëntere vertalingen.
Router-A# show ip nat translations Pro Inside global Inside local Outside local Outside global --- 172.16.47.161 171.68.200.48 --- --- --- --- --- 172.16.47.177 171.68.200.48 --- 172.16.47.161 171.68.200.48 172.16.47.177 171.68.200.48
Het is belangrijk om op te merken wanneer u probeert om connectiviteit tussen twee overlappende netwerken op te zetten door dynamische NAT op één enkele router van Cisco uit te voeren, moet u DNS gebruiken om een externe lokale aan externe globale vertaling te maken. Als u geen DNS gebruikt, kan de connectiviteit met statische NAT worden gevestigd, maar het is moeilijker te beheren.
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
1.0 |
10-Aug-2005 |
Eerste vrijgave |