소개
이 문서에서는 Cisco 1000 Series ASR1K(Aggregation Services Router)에서 NAT(Network Address Translation)로 변환해야 하는 패킷이 변환되지 않는 상황(NAT를 우회함)에 대해 설명합니다. 이 경우 다음 홉이 변환되지 않은 패킷을 처리하도록 구성되지 않아 트래픽 오류가 발생할 수 있습니다.
배경 정보
Software Version 12.2(33)XND에서 NAT Gatekeeper라는 기능이 기본적으로 도입되고 활성화되었습니다.NAT 게이트키퍼는 NAT 변환을 생성하기 위해 비 NAT-ed 흐름에서 과도한 CPU를 사용하지 못하도록 설계되었습니다.이를 위해 소스 주소를 기반으로 두 개의 작은 캐시(in2out 방향에 대해 하나씩, out2in 방향에 대해 하나씩)가 생성됩니다.각 캐시 엔트리는 소스 주소, 가상 라우팅 및 전달(VRF) ID, 타이머 값(10초 후 엔트리를 무효화하는 데 사용됨) 및 프레임 카운터로 구성됩니다.테이블에는 캐시를 구성하는 256개의 항목이 있습니다.일부 패킷에 NAT가 필요하고 일부는 필요하지 않은 동일한 소스 주소에서 여러 트래픽 흐름이 있는 경우, 패킷이 NAT를 사용하지 않고 라우터를 통해 전송될 수 있습니다.Cisco는 가능한 한 동일한 인터페이스에서 NAT-ed 및 비 NAT-ed 플로우를 사용하지 않는 것이 좋습니다.
참고:이건 H.323과는 아무 상관없어요
우회되는 NAT 데모
이 섹션에서는 NAT 게이트키퍼 기능으로 인해 NAT를 우회하는 방법에 대해 설명합니다.다이어그램을 자세히 검토합니다.소스 라우터, ASA(Adaptive Security Appliance) 방화벽, ASR1K 및 대상 라우터가 있습니다.
비 NAT-ed 대상으로 트래픽 흐름
- 소스에서 Ping이 시작됩니다.출처:172.17.250.201 대상:198.51.100.11.
- 패킷은 소스 주소 변환을 수행하는 ASA의 내부 인터페이스에 도착합니다.이제 패킷에 소스가 있습니다.203.0.113.231 대상:198.51.100.11.
- 패킷은 외부 NAT의 ASR1K에서 내부 인터페이스로 전달됩니다.NAT 변환은 대상 주소에 대한 변환을 찾지 못하므로 게이트키퍼 "out" 캐시는 소스 주소 203.0.113.231으로 채워집니다.
- 패킷이 대상에 도착합니다.대상은 ICMP(Internet Control Message Protocol) 패킷을 수락하고 ping을 성공한 ICMP ECHO Reply를 반환합니다.
동일한 소스의 트래픽이 NAT-ed 대상 전송을 시도합니다.
- .Ping은 소스에서 시작됩니다.출처:172.17.250.201 대상:198.51.100.9.
- 패킷은 소스 주소 변환을 수행하는 ASA의 내부 인터페이스에 도착합니다.이제 패킷에 소스가 있습니다.203.0.113.231 대상:198.51.100.9.
- 패킷은 외부 NAT의 ASR1K에서 내부 인터페이스로 전달됩니다.NAT는 먼저 소스 및 대상에 대한 변환을 찾습니다.찾지 못한 경우 게이트키퍼 "out" 캐시를 확인하고 소스 주소 203.0.113.231을 찾습니다. 이(가) 패킷에 변환이 필요하지 않다고 가정하고 대상에 대한 경로가 존재하거나 패킷을 삭제하는 경우 패킷을 전달합니다.어느 쪽이든 패킷이 원하는 대상에 도달하지 않습니다.
NAT-ed 트래픽 복원
- 10초 후 소스 주소에 대한 항목은 게이트키퍼 아웃 캐시에서 203.0.113.231 시간 초과됩니다.
참고:엔트리는 캐시에 실제로 존재하지만 만료되었으므로 사용되지 않습니다.
- 이제 동일한 소스 172.17.250.201이 NAT-ed 목적지 198.51.100.9으로 전송하면 패킷이 ASR1K의 out2in 인터페이스에 도착하면 변환이 발견되지 않습니다.게이트키퍼 아웃 캐시를 검사하면 활성 엔트리를 찾을 수 없으므로 대상에 대한 변환을 생성하고 패킷은 예상대로 이동합니다.
- 비활성 상태로 인해 변환 시간이 초과되지 않는 한 이 흐름의 트래픽은 계속됩니다.그 동안 소스가 비 NAT 대상 대상으로 트래픽을 다시 전송하여 게이트키퍼 아웃 캐시에 다른 항목이 채워지는 경우 설정된 세션에는 영향을 주지 않지만 동일한 소스에서 NAT-ed 대상으로의 새 세션이 실패하는 10초 기간이 있습니다.

문제의 예
- Ping은 소스 라우터에서 시작됩니다.출처:172.17.250.201 대상:198.51.100.9. [FLOW1]을(를) 2회 이상 반복하면서 Ping이 실행됩니다.
- 그런 다음 ASR1K에서 NAT가 아닌 다른 대상을 ping합니다.출처:172.17.250.201 대상:198.51.100.11 [FLOW2].
- 그런 다음 198.51.100.9 [FLOW1]에 더 많은 패킷을 전송합니다.이 흐름의 처음 몇 개의 패킷은 대상 라우터에서 일치하는 access-list에 표시된 대로 NAT를 우회합니다.
source#ping 198.51.100.9 source lo1 rep 2
Type escape sequence to abort.
Sending 2, 100-byte ICMP Echos to 198.51.100.9, timeout is 2 seconds:
Packet sent with a source address of 172.17.250.201
!!
Success rate is 100 percent (2/2), round-trip min/avg/max = 1/1/1 ms
source#ping 198.51.100.9 source lo1 rep 2
Type escape sequence to abort.
Sending 2, 100-byte ICMP Echos to 198.51.100.9, timeout is 2 seconds:
Packet sent with a source address of 172.17.250.201
!!
Success rate is 100 percent (2/2), round-trip min/avg/max = 1/1/1 ms
source#ping 198.51.100.11 source lo1 rep 200000
Type escape sequence to abort.
Sending 200000, 100-byte ICMP Echos to 198.51.100.11, timeout is 2 seconds:
Packet sent with a source address of 172.17.250.201
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.
Success rate is 99 percent (3007/3008), round-trip min/avg/max = 1/1/16 ms
source#ping 198.51.100.9 source lo1 rep 10
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 198.51.100.9, timeout is 2 seconds:
Packet sent with a source address of 172.17.250.201
...!!!!!!!
Success rate is 70 percent (7/10), round-trip min/avg/max = 1/1/1 ms
source#
목적지 라우터의 ACL 일치에는 실패한 세 개의 패킷이 변환되지 않은 것으로 표시됩니다.
Router2#show access-list 199
Extended IP access list 199
10 permit udp host 172.17.250.201 host 198.51.100.9
20 permit udp host 172.17.250.201 host 10.212.26.73
30 permit udp host 203.0.113.231 host 198.51.100.9
40 permit udp host 203.0.113.231 host 10.212.26.73 (4 matches)
50 permit icmp host 172.17.250.201 host 198.51.100.9
60 permit icmp host 172.17.250.201 host 10.212.26.73
70 permit icmp host 203.0.113.231 host 198.51.100.9 (3 matches) <<<<<<<
80 permit icmp host 203.0.113.231 host 10.212.26.73 (42 matches)
90 permit udp any any log (2 matches)
100 permit icmp any any log (4193 matches)
110 permit ip any any (5 matches)
Router2#
ASR1K에서 게이트키퍼 캐시 항목을 확인할 수 있습니다.
PRIMARY#show platform hardware qfp active feature nat datapath gatein
Gatekeeper on
sip 203.0.113.231 vrf 0 cnt 1 ts 0x17ba3f idx 74
sip 10.203.249.226 vrf 0 cnt 0 ts 0x36bab6 idx 218
sip 10.203.249.221 vrf 0 cnt 1 ts 0x367ab4 idx 229
PRIMARY#show platform hardware qfp active feature nat datapath gateout
Gatekeeper on
sip 198.51.100.11 vrf 0 cnt 1 ts 0x36db07 idx 60
sip 10.203.249.225 vrf 0 cnt 0 ts 0x36bb7a idx 217
sip 10.203.249.222 vrf 0 cnt 1 ts 0x367b7c idx 230
해결 방법/수정
대부분의 환경에서 NAT 게이트키퍼 기능은 정상적으로 작동하며 문제를 일으키지 않습니다.그러나 이 문제를 해결할 수 있는 몇 가지 방법이 있습니다.
솔루션 1
선호하는 옵션은 Cisco IOS® XE를 게이트키퍼 개선 사항이 포함된 버전으로 업그레이드하는 것입니다.
Cisco 버그 ID CSCun06260 XE3.13 게이트키퍼 강화
이 개선 사항을 통해 NAT 게이트키퍼는 소스 및 대상 주소를 캐시할 수 있을 뿐만 아니라 캐시 크기를 구성할 수 있습니다.확장 모드를 켜려면 이러한 명령을 사용하여 캐시 크기를 늘려야 합니다.또한 캐시를 모니터링하여 크기를 늘려야 하는지 확인할 수 있습니다.
PRIMARY(config)#ip nat settings gatekeeper-size 1024
PRIMARY(config)#end
다음 명령을 확인하여 확장 모드를 확인할 수 있습니다.
PRIMARY#show platform hardware qfp active feature nat datapath gatein
Gatekeeper on
sip 10.203.249.221 dip 10.203.249.222 vrf 0 ts 0x5c437 idx 631
PRIMARY#show platform hardware qfp active feature nat datapath gateout
Gatekeeper on
sip 10.203.249.225 dip 10.203.249.226 vrf 0 ts 0x5eddf idx 631
PRIMARY#show platform hardware qfp active feature nat datapath gatein active
Gatekeeper on
ext mode Size 1024, Hits 2, Miss 4, Aged 0 Added 4 Active 1
PRIMARY#show platform hardware qfp active feature nat datapath gateout active
Gatekeeper on
ext mode Size 1024, Hits 0, Miss 1, Aged 1 Added 2 Active 0
솔루션 2
Cisco 버그 ID CSCun06260에 대한 수정 사항이 없는 릴리스의 경우, 유일한 옵션은 게이트키퍼 기능을 끄는 것입니다.NAT가 아닌 트래픽의 성능은 약간 저하되고 QFP(Quantum Flow Processor)의 CPU 사용률은 향상됩니다.
PRIMARY(config)#no ip nat service gatekeeper
PRIMARY(config)#end
PRIMARY#PRIMARY#Sh platform hardware qfp active feature nat datapath gatein
Gatekeeper off
PRIMARY#
다음 명령을 사용하여 QFP 사용률을 모니터링할 수 있습니다.
show platform hardware qfp active data utilization summary
show platform hardware qfp active data utilization qfp 0
솔루션 3
NAT 패킷과 비 NAT 패킷이 동일한 인터페이스에 도달하지 않도록 트래픽 흐름을 구분합니다.
요약
NAT 게이트키퍼 명령은 비 NAT-ed 흐름에 대한 라우터의 성능을 높이기 위해 도입되었습니다.일부 조건에서 이 기능은 NAT 패킷과 비 NAT 패킷의 혼합이 동일한 소스에서 도착할 때 문제를 일으킬 수 있습니다.향상된 게이트키퍼 기능을 사용하거나, 가능하지 않을 경우 게이트키퍼 기능을 비활성화하는 것이 해결 방법입니다.
참조
게이트키퍼를 끌 수 있는 소프트웨어 변경 사항:
Cisco 버그 ID CSCty67184 ASR1k NAT CLI - 게이트키퍼 켜기/끄기
Cisco 버그 ID CSCth23984 nat 게이트키퍼 기능을 켜거나 끄는 cli 기능 추가
NAT 게이트키퍼 개선
Cisco 버그 ID CSCun06260 XE3.13 게이트키퍼 강화