먼저 ISP(Internet Service Provider)란 SK, KT 등과 같이 인터넷 서비스를 제공해 주는 업체에 해당한다.

 외부 인터넷과 통신을 하기 위해 ISP로 부터 IP를 할당받게 되는데 이를 공인 IP라 한다.


 공유기는 외부 ISP로 부터 이 공인 IP주소를 할당 받아 이를 내부적으로 여러개의 주소를 사용하게 해줌으로써 여러 PC들 간에 인터넷 통신을 가능하게 해주는 장비이다.

 이 공유기 내부로 할당되어 지는 여러개의 주소들을 사설 IP라 불리며 이 IP들은 공유기에 연결된 내부 장비들 끼리의 통신과 내부에서 외부로의 통신만 가능하며 외부에서 공유기 내부에 있는 PC에 직접 접속하기 위해서는 포트포워딩이란 추가 설정이 필요하다.


 좌측에 SW1과 R1을 합쳐놓은 것이 공유기에 해당하며 R1을 기준으로 좌측은 모두 내부 주소를 사용하게 된다.



 실제로 ISP와 인터넷으로 연결되는 공간에는 수많은 라우터들이 존재할 것이다. 그외에도 웹 주소의 실제 IP 주소를 알려주기 위한 DNS 서버도 존재 할 것이다.  또한 R1과 R2 사이에는 WAN으로 시리얼 링크 같은 전용선을 통해 연결되어 있을 것이다. 그런데 여기서는 공유기의 시뮬레이션을 목적으로 하기 때문에 R2를 ISP의 라우터라 가정하고 DNS와 전용선은 생략하도록 하자.


 우측에 Kali_Linux 가상 머신은 외부 웹서버라고 하고서 진행하도록 하겠다.



 먼저 ISP에 해당되는 R2에 주소설정을 해주겠다.


R2#config terminal

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#interface f0/0

R2(config-if)#ip address 200.0.0.1 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#

*Mar  1 00:11:46.971: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up

*Mar  1 00:11:47.971: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up

R2(config-if)#interface f1/0

R2(config-if)#ip address 123.21.111.1 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#

*Mar  1 00:12:45.291: %LINK-3-UPDOWN: Interface FastEthernet1/0, changed state to up

*Mar  1 00:12:46.291: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0, changed state to up

R2(config-if)#




 다음으로 공유기가 ISP로 부터 자동으로 주소를 부여 받을 수 있도록 R2에 DHCP를 설정해 준다.


R2(config)#ip dhcp excluded-address 200.0.0.1 200.0.0.9 (200.0.0.1~200.0.0.9 는 자동 부여에서 제외한다.)

R2(config)#ip dhcp pool isp (DHCP 범위 항목의 이름을 'isp' 라 하여 생성한다.)

R2(dhcp-config)#network 200.0.0.0 255.255.255.0 (네트워크 주소 200.0.0.0, 넷마스크는 255.255.255.0)

R2(dhcp-config)#default-router 200.0.0.1 (공유기가 사용할 기본 게이트웨이 주소에 해당한다.)

R2(dhcp-config)#exit

R2(config)#service dhcp (R2 라우터에서 DHCP 서비스를 활성화 해준다.)

R2(config)#




이제 R2의 우측 부분을 설정하기로 하겠다.
f1/0에 123.21.111.1/24 의 IP 주소를 설정해준다.

R2(config)#int f1/0
R2(config-if)#ip address 123.21.111.1 255.255.255.0
R2(config-if)#no shutdown
*Mar  1 00:31:55.871: %LINK-3-UPDOWN: Interface FastEthernet1/0, changed state to up
*Mar  1 00:31:56.871: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0, changed state to up
R2(config-if)#



 이제 R1의 f0/0에서 DHCP를 활성화 해준다.


R1#configure terminal 

Enter configuration commands, one per line.  End with CNTL/Z. 

R1(config)#interface f0/0

R1(config-if)#ip address dhcp

R1(config-if)#no shutdown 




그럼 잠시후 DHCP 로부터 주소를 받았다는 메세지가 뜨고 R1에서 show dhcp lease 명령어로 확인을 해보면 정상적으로 주소를 받아온 것을 확인 할 수 있다. R2에서는 show ip dhcp binding 명령어를 통해 정상적으로 IP주소를 부여 한 것을 확인 할 수 있다.








 이제 Kali_Linux에 123.21.111.111 주소를 설정해 주고  웹서버 서비스를 시작하도록 하겠다.








이제 R1에서 NAT 설정을 하기로 하겠다.

f0/0에서 ip nat outside 명령어를 f1/0에서 ip nat inside 명령어를 입력한 후 f1/0을 활성화 해준다.

또한 스크린샷에는 빠졌는데... f1/0에 ip address 192.168.100.1 255.255.255.0 명령어를 입력해준다.






이제 Default Route 를 설정해 준다. Default Route란 라우터가 외부 주소로 접속하기 위해 기본적으로 이동할 경로를 설정해 주는 것이다.

 기본경로는 IP주소와 넷마스크 모두 0으로 채워준다. IP 주소로 0.0.0.0 넷마스크로 0.0.0.0를 사용한다.

여기서 ISP로 향하는 주소는 200.0.0.1 이므로 ip route 0.0.0.0 0.0.0.0 200.0.0.1 명령어를 입력해준다.

 show ip route 명령어를 통해 확인을 해보면 *S 로 표시되는 것을 확인할 수 있다.

 * 는 Default Route 를 의미하며 S 는 Static Route 즉 경로를 고정적으로 지정해 주었다는 의미이다.







다음으로 192.168.100.100과 192.168.100.101에 대해 허용하는 두 access-list 1을 만들어 준다.

R1(config)#access-list 1 permit 192.168.100.100

R1(config)#access-list 1 permit 192.168.100.101

그런 후 ip nat inside source list 1 interface f0/0 overload 명령어로 NAT을 활성화 해준다.

 여기서 interface f0/0은 R1에서 외부 ISP와 연결되는 인터페이스이다.

 NAT의 종류엔 다음과 같은 것들이 있으며 여기서 사용하는 NAT의 종류는 PNAT에 해당한다.

(SNAT - Static NAT 외부주소와 내부주소를 1:1로 연결해 주는 방식 외부주소의 수와 내부주소의 수가 같다.

DNAT - Dynamic NAT SNAT과 비슷한 개념이지만 사용하고 있지 않은 외부주소를 자동으로 내부주소와 연결해 준다.

PNAT - Port Translation NAT 포트 변환을 통해 외부주소 한개로 여러개의 내부주소를 할당하는 것이 가능하다. 공유기에서 많이 쓰는 방식)








이제 R1의 내부주소로의 DHCP를 활성화 하기 위해 다음과 같이 설정해 준다. DHCP 설정방법에 대한 설명은 위해서 간단히 설명한 바 있으므로 여기선 생랙하도록 하겠다.


R1(config)#ip dhcp excluded-address 192.168.100.1 192.168.100.99

R1(config)#ip dhcp pool nat

R1(dhcp-config)#network 192.168.100.0 255.255.255.0

R1(dhcp-config)#default-route 192.168.100.1

R1(dhcp-config)#^Z

R1#








 이제 공유기에 연결된 Ubuntu_14.04에서 확인을 해보면 192.168.100.100의 주소가 자동으로 할당되었고, 123.21.111.111로 접속을 해보면 정상적으로 접속이 되는 것을 확인 할 수 있다.

(참고로 가상머신 인터페이스들 중 외부 인터넷과 연결된 것이 있다면 '케이블 연결됨' 옵션의 체크를 해제하여 주기 바란다. 그렇지 않을 경우 시뮬레이션 내의 123.23.111.111 가 아닌 외부 인터넷을 통해 123.23.111.111로 연결하려 하기 때문에 접속이 되지 않는다.)








Linux_Mint 에서도 192.168.100.101의 주소가 자동으로 할당되었고, 마찬가지로 123.21.111.111에 정상적으로 접속이 되는 것을 확인 할 수 있다.



'NAT' 카테고리의 다른 글

[NAT] NAT 테스트 - PAT(Port Address Translation)  (0) 2013.12.22
[NAT] NAT 테스트 - DNAT (Dynamic NAT)  (0) 2013.12.22
Posted by jollaman999