NAT 또는 PAT는 인터넷에서 사용되는 공인 IP가 부족해지는 현상을 해결하기 위해서 발전되었다. IP v4의 주소의 수는 2의 32승으로 4,294,967,296개가 되지만 현재와 같이 인터넷이 점점 발달하고 팽창하고 있는 상황에서는 얼마가지 않아 부족해진다는 사실은 IT에 종사하는 분들이라면 익히 들어 뉴스도 아닐 것이다. 이 부족현상은 IP v6를 사용하면 해결이 된다고 하지만 여러가지 제약으로 인해 아직까지 그 진행 상황은 더딘편이다. 여기서 소개되는 NAT/PAT 기법도 IP v6로의 이전을 더디게 하는 여러 요인 중 하나일지도 모른다.
본 포스트에서는 GNS3를 이용하여 간단한 네트워크 토폴로지를 구성한 후 NAT(정확하게는 NAT overload[PAT])를 설정해 보기로 한다. 본 포스트와 함께 이전 포스트들도 함께 참고하시기 바란다.
[GNS3] 스위칭 환경 구성하기
[GNS3] 스위칭 환경 구성하기 2
[GNS3] 토폴로지에 PC 추가하기
이제 본론으로 들어가서 본 포스트에서 구성할 네트워크 구성은 아래와 같다.

Router 'Seoul'
IOS : Cisco 3600 Series
IP 주소 : 10.100.100.1 (f0/0), 192.168.1.130 (s1/0)
Router 'ISP'
IOS : Cisco 3600 Series
IP 주소 : 192.168.1.131 (s0/0)
C1 & C2
IP 주소 : 10.100.100.2 (C1), 10.100.100.3 (C2)
1. 가상 장비의 인터페이스에 IP 설정하기
GNS3를 실행한 후 위 다이어그램과 같이 토폴로지를 구성하여 모든 가상 장비를 구동시킨다. 다음으로는 라우터 seoul과 ISP의 각 인터페이스에 IP를 부여한다.
라우터 seoul에 콘솔 접속하여 IP 부여하기
Enter configuration commands, one per line. End with CNTL/Z.
seoul(config)#int fa0/0
seoul(config-if)#ip address 10.100.100.1 255.255.255.0
seoul(config-if)#no shutdown
seoul(config-if)#int s1/0
seoul(config-if)#ip address 192.168.1.130 255.255.255.254
seoul(config-if)#no shutdown
seoul(config-if)#^Z
seoul#wr
라우터 ISP에 콘솔 접속하여 IP 부여하기
Enter configuration commands, one per line. End with CNTL/Z.
ISP(config)#int s0/0
ISP(config-if)#ip address 192.168.1.131 255.255.255.254
ISP(config-if)#no shutdown
ISP(config-if)#^Z
ISP#wr
VPCS를 실행하여 C1, C2에 IP 설정하기
본 포스트에서 사설 IP는 10.100.100.x를 사용할 것이다. 그래서 C1, C2의 IP를 각각 10.100.100.2, 10.100.100.3으로 설정한다.
VPCS 1 >2
VPCS 2 >ip 10.100.100.3 10.100.100.1 24
VPCS 2 >
2. 라우터 seoul에 NAT overload 설정하기
NAT와 NAT overload(PAT)의 차이점은 PAT는 하나의 공인 IP로 수 개의 호스트를 서비스할 수 있다는 것이다. 이때 PAT(Port Address Translation)라는 이름에서 알 수 있듯이 포트를 이용하여 라우터는 내부 호스트를 구별한다. 라우터 seoul가 주소 변환을 담당하게 된다.
seoul(config)#int fa0/0
seoul(config-if)#ip nat inside
seoul(config-if)#int s1/0
seoul(config-if)#ip nat outside
seoul(config-if)#exit
seoul(config)#access-list 10 permit 10.100.100.0 0.0.0.255
seoul(config)#ip nat inside source list 10 int fa0/0 overload
seoul(config)#^Z
seoul#wr
3. 연결 확인 및 주소 변환 상태 보기
이제 NAT를 위한 기본적인 설정은 완료되었다. 이제 설정이 제대로 적용되고 주소 변환이 의도한 대로 이루어지는지 확인해보도록 하자.
가상 PC에서 ISP의 s0/0로 ping을 날려보자.
192.168.1.131 icmp_seq=1 time=10.832 ms
192.168.1.131 icmp_seq=2 time=11.686 ms
192.168.1.131 icmp_seq=3 time=12.864 ms
192.168.1.131 icmp_seq=4 time=9.316 ms
VPCS 1>2
VPCS 2>ping 192.168.1.131
192.168.1.131 icmp_seq=1 time=7.684 ms
192.168.1.131 icmp_seq=2 time=14.843 ms
192.168.1.131 icmp_seq=3 time=16.201 ms
192.168.1.131 icmp_seq=4 time=12.349 ms
VPCS 2>
라우터 seoul에 접속하여 enable 모드에서 아래 명령어를 입력하면 변환된 주소 리스트를 출력할 것이다.
Pro Inside global[footnote]An inside address seen from the outside[/footnote] Inside local[footnote]An actual address assigned to an inside host[/footnote] Outside local[footnote]An actual address assigned to an outside host[/footnote] Outside global[footnote]An outside address seen from the inside[/footnote]
icmp 192.168.1.130:21368 10.100.100.2:21368 192.168.1.131:21368 192.168.1.131:21368
icmp 192.168.1.130:17528 10.100.100.3:17528 192.168.1.131:17528 192.168.1.131:17528
seoul#
간단하게나마 NAT overload를 설정하는 방법을 살펴보았다. 하지만 실무에서는 위와 같이 간단한 구성으로 해결되는 경우가 드물며 훨씬 복잡한 네트워크에서 NAT를 구현해야 하지만 기본적인 개념은 크게 다르지 않을 것이다. NAT에 대해 더 자세히 알고자 할 경우에는 위키피디아[footnote]위키피디아 Network Address Translation (http://en.wikipedia.org/wiki/NAT)[/footnote]를 참고하기 바란다.
댓글 없음:
댓글 쓰기