소개
이 문서에서는 Cisco IOS® 라우터에서 NAT(Network Address Translation) 서버 로드 밸런싱 TCP 트래픽을 구성하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
이 문서에 대한 특정 요건이 없습니다.
사용되는 구성 요소
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.이 문서는 Cisco IOS를 실행하는 모든 Cisco 라우터 및 스위치에 적용됩니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
목적
외부 인터넷에서 로컬 서버에 액세스하는 사용자는 단일 URL 또는 IP 주소를 사용하여 서버에 액세스하지만, NAT 디바이스는 미러링된 콘텐츠가 있는 동일한 여러 서버에 사용자 트래픽을 공유하는 데 사용됩니다.
설명
외부 사용자 A와 B는 외부 표시 IP 주소 172.16.2.3(서버의 가상 IP 주소)로 웹 서버의 내용에 액세스합니다. NAT 라우터는 172.16.1.3으로 향하는 트래픽을 라운드 로빈 방식으로 내부 IP 주소 10.1.1.1, 10.1.1.2 및 10.1.1.3으로 변환하여 해당 서버로 전달합니다.외부 사용자로부터 시작된 각 새 세션은 다음 물리적 서버 IP 주소로 변환됩니다.
구성
네트워크 다이어그램
단계
- User-A는 가상 서버 IP 주소 172.16.2.3으로 TCP 연결을 시작합니다.
- 연결 요청을 받으면 NAT 라우터는 사용 가능한 다음 실제 서버 IP 주소(예: 10.1.1.1)을 할당하는 NAT 변환 항목을 생성합니다.
- NAT 라우터는 대상 IP 주소를 할당된 실제 IP 주소로 대체하고 패킷을 전달합니다.
- 서버는 패킷을 수신하고 소스에 응답합니다.
- NAT 라우터는 서버에서 반환된 패킷을 수신하고 NAT 테이블 조회를 수행합니다.그런 다음 라우터는 소스 주소를 가상 서버 IP 주소(172.16.2.3)으로 변환하고 패킷을 전달합니다.
- User-B는 서버 가상 IP 주소 172.16.2.3으로 TCP 세션을 시작합니다. 연결 요청을 받으면 NAT 라우터가 이를 다음 사용 가능한 실제 서버 IP 주소(예: 10.1.1.2)으로 변환한 다음 패킷을 서버로 전달합니다.
고정 NAT는 다른 방향에서 양방향이므로 패킷의 대상이 변환됩니다.이 NAT 형식을 수행할 때 TCP 패킷을 전송하여 트리거됩니다.ICMP(Internet Control Message Protocol)를 보내면 NAT 변환이 트리거되지 않을 수 있습니다.
비 TCP 트래픽은 풀의 첫 번째 주소로 전달됩니다.
고정 내부 소스 NAT 및 고정 내부 소스 PAT와 달리, 해당 주소가 인터페이스에 할당되지 않은 경우 라우터는 전역 주소에 대한 ARP 조회에 응답하지 않습니다.따라서 보조 인터페이스와 같은 인터페이스에 추가해야 할 수 있습니다. 이 변환 방법으로 포트를 리디렉션할 수는 없습니다(예: 80 및 1087). 포트가 일치해야 합니다.
참고:NAT 풀 IP 주소는 외부 인터페이스 IP 주소와 같을 필요가 없습니다.동일한 내용을 설명하기 위해 이 예에서는 실제 인터페이스 IP 서브넷 172.16.1.x와 다른 블록 172.16.2.x의 IP 주소를 사용합니다.
- 실제 서버의 주소를 포함하는 주소 풀을 정의합니다.
ip nat pool NATPOOL 10.1.1.1 10.1.1.3 prefix-length 24 type rotary
- 가상 서버의 주소를 허용하는 액세스 목록을 정의합니다.
access-list 1 permit host 172.16.2.3
- 내부 대상 주소의 동적 변환을 활성화합니다.
ip nat inside destination list
pool
ip nat inside destination list 1 pool NATPOOL
- 내부 및 외부 인터페이스의 NAT를 정의합니다.
Interface gig0/0
ip address 10.1.1.4 255.255.255.0
Ip nat inside
Interface gig0/1
ip address 172.16.1.1 255.255.255.248
Ip nat outside
누군가 IP 주소에 액세스하려고 하면 IP 주소 10.1.1.1, 10.1.1.2 및 10.1.1.3이 로터리 방식으로 172.16.2.3
다음을 확인합니다.
이를 확인하려면 외부 호스트에서 가상 IP 주소로 여러 TCP 세션을 시작합니다.디버그 IP NAT 없음translation/show ip nat translation 출력을 확인에 사용할 수 있습니다.
Router#
Router#
*Jul 24 13:27:41.193: NAT*: s=192.168.1.1, d=172.16.2.3->10.1.1.3 [22864]
*Jul 24 13:27:41.196: NAT*: s=10.1.1.3->172.16.2.3, d=192.168.1.1 [18226]
Router#
*Jul 24 13:27:44.329: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35533]
*Jul 24 13:27:44.331: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14573]
*Jul 24 13:27:44.332: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35534]
*Jul 24 13:27:44.332: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35535]
*Jul 24 13:27:44.332: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35536]
*Jul 24 13:27:44.333: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14574]
*Jul 24 13:27:44.365: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14575]
*Jul 24 13:27:44.365: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14576]
*Jul 24 13:27:44.368: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35537]
Router#
*Jul 24 13:27:44.369: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35538]
*Jul 24 13:27:44.369: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35539]
*Jul 24 13:27:44.369: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35540]
*Jul 24 13:27:44.371: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14577]
*Jul 24 13:27:44.574: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14578]
Router#
*Jul 24 13:27:46.474: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14579]
*Jul 24 13:27:46.478: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35541]
*Jul 24 13:27:46.478: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35542]
*Jul 24 13:27:46.479: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14580]
Router#sh ip nat tr
Pro Inside global Inside local Outside local Outside global
tcp 172.16.2.3:23 10.1.1.1:23 192.168.2.1:49703 192.168.2.1:49703
tcp 172.16.2.3:23 10.1.1.2:23 192.168.2.1:50421 192.168.2.1:50421
tcp 172.16.2.3:80 10.1.1.3:80 192.168.1.1:26621 192.168.1.1:26621
Router#
문제 해결
현재 이 컨피그레이션에 사용할 수 있는 특정 문제 해결 정보가 없습니다.
제한 사항
- 그룹의 내부 서버가 실패하는지 여부를 감지할 수 없습니다.즉, Cisco IOS는 운영 상태와 상관없이 항상 그룹의 서버에 트래픽을 전달합니다.
- 내부 서버의 실제 부하를 확인할 수 없으므로 로드 밸런싱을 효율적으로 수행할 수 없습니다.