### NAT (Network Address Translation)
-NAT
: IP 주소의 낭비를 막기위해서 사설 IP 주소를 공인 IP 주소로 변환하여 통신하는 기능
-사설 IP 주소는 공중망을 통해서 외부 네트워크로 통신할 수 없다.
.사설 IP 주소는 공중망으로 라우팅 업데이트 할 수 없다. (RIP , EIGRP , OSPF로 라우팅 업데이트하지 않는다.)
.ISP에서는 방화벽을 사용하여 출발지 IP 주소가 사설대역인 모든 트래픽을 차단한다.
-일반적으로 ISP와 같은 공중망은 공인 IP 주소를 사용하여 네트워크를 구성하며
사설망은 사설 IP 주소를 사용하여 네트워크를 구성한다.
-내부 사설 IP 주소는 동일 네트워크 내에서 통신하기위한 용도이며
외부 네트워크로 통신시에는 NAT기능을 사용하여 공인 IP 주소로 변환되어 외부 네트워크로 통신한다.
-NAT 기능은 용도에 따라서 Static NAT와 Dynamic NAT로 구성가능하다.
.Static NAT : 사설 IP 주소와 공인 IP 주소가 1:1로 변환되어 통신하는 기능
.Dynamic NAT : 다수의 사설 IP 주소가 소수의 공인 IP 변환되어 통신하는 기능
.일반적으로 사용되는 NAT는 Dynamic NAT이며 Static NAT는 특수한 용도로만 사용된다.
-사설 IP 주소 범위
.A class : 10.0.0.0 ~ 10.255.255.255
.B class : 172.16.0.0 ~ 172.31.255.255
.C class : 192.168.0.0 ~ 192.168.255.255
-NAT의 기능
.
.
.
=========================================================================================================================
## Static NAT
-Static NAT
: 사설 IP 주소와 공인 IP 주소가 1:1로 고정 변환되는 기능
-Static NAT 구성시 외부망에서 NAT를 설정한 Router의 공인 IP 주소를 목적지로 하여 통신하게되면
Static NAT에 의해 사설 IP 주소로 변경되므로 외부에서 내부의 사설 네트워크로 접속이 가능하다. (역변환 기능 가능)
-R1 = PC
-R2 = Gateway
-R3 = ISP
-R4 = RTX (Web Server Gateway)
S1/0 121.160.23.0/24 S1/1 S1/2 121.160.34.0/24 S1/3
R2----------------------------------R3----------------------------------R4
| 23.2 23.3 34.3 34.4 |
Fa0/1 Loopback 211
| |
R1 (PC) Web Server
192.168.10.1 211.241.228.4
EX1) GIT Router는 내부 사설망의 192.168.10.1 네트워크가 외부 네트워크로 통신시
공인 IP 주소인 121.160.23.2로 변환되어 통신해야한다.
# GIT (R2)
ip nat inside source static 192.168.10.1 121.160.23.2
!
interface fastethernet 0/1
ip nat inside
!
interface serial 1/0
ip nat outside
!
정보 확인
PC1# ping 211.241.228.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 211.241.228.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 604/674/752 ms
GIT# show ip nat translation
Pro Inside global Inside local Outside local Outside global
icmp 121.160.23.2:5 192.168.10.1:5 211.241.228.4:5 211.241.228.4:5
--- 121.160.23.2 192.168.10.1 --- ---
####### Debug를 사용한 NAT IP 주소 변환 확인 #######
GIT# debug ip nat
IP NAT debugging is on
PC1# ping 211.241.228.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 211.241.228.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 604/674/752 ms
S1/0 121.160.23.0/24 S1/1 S1/2 121.160.34.0/24 S1/3
R2----------------------------------R3----------------------------------R4
| 23.2 23.3 34.3 34.4 |
Fa0/1 Loopback 211
| |
R1 (PC) Web Server
192.168.10.1 211.241.228.4
********** GIT(R2)에서 Debug 확인 **********
*Mar 1 00:21:01.679: NAT*: s=192.168.10.1->121.160.23.2, d=211.241.228.4 [30]
*Mar 1 00:21:01.707: NAT*: s=211.241.228.4, d=121.160.23.2->192.168.10.1 [30]
*Mar 1 00:21:01.723: NAT*: s=192.168.10.1->121.160.23.2, d=211.241.228.4 [31]
*Mar 1 00:21:01.755: NAT*: s=211.241.228.4, d=121.160.23.2->192.168.10.1 [31]
*Mar 1 00:21:01.775: NAT*: s=192.168.10.1->121.160.23.2, d=211.241.228.4 [32]
*Mar 1 00:21:01.799: NAT*: s=211.241.228.4, d=121.160.23.2->192.168.10.1 [32]
*Mar 1 00:21:01.831: NAT*: s=192.168.10.1->121.160.23.2, d=211.241.228.4 [33]
*Mar 1 00:21:01.859: NAT*: s=211.241.228.4, d=121.160.23.2->192.168.10.1 [33]
*Mar 1 00:21:01.887: NAT*: s=192.168.10.1->121.160.23.2, d=211.241.228.4 [34]
*Mar 1 00:21:01.911: NAT*: s=211.241.228.4, d=121.160.23.2->192.168.10.1 [34]
####### Debug를 사용한 NAT 역변환 확인 #######
GIT# debug ip nat
IP NAT debugging is on
PC1# debug ip icmp
ICMP packet debugging is on
RTX# ping 121.160.23.2 source 211.241.228.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 121.160.23.2, timeout is 2 seconds:
Packet sent with a source address of 211.241.228.4
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/707/1984 ms
S1/0 121.160.23.0/24 S1/1 S1/2 121.160.34.0/24 S1/3
R2----------------------------------R3----------------------------------R4
| 23.2 23.3 34.3 34.4 |
Fa0/1 Loopback 211
| |
R1 (PC) Web Server
192.168.10.1 211.241.228.4
********** GIT(R2)에서 Debug 확인 **********
*Mar 1 00:27:03.495: NAT*: s=211.241.228.4, d=121.160.23.2->192.168.10.1 [10]
*Mar 1 00:27:03.527: NAT*: s=192.168.10.1->121.160.23.2, d=211.241.228.4 [10]
*Mar 1 00:27:03.555: NAT*: s=211.241.228.4, d=121.160.23.2->192.168.10.1 [11]
*Mar 1 00:27:03.583: NAT*: s=192.168.10.1->121.160.23.2, d=211.241.228.4 [11]
*Mar 1 00:27:03.611: NAT*: s=211.241.228.4, d=121.160.23.2->192.168.10.1 [12]
*Mar 1 00:27:03.647: NAT*: s=192.168.10.1->121.160.23.2, d=211.241.228.4 [12]
*Mar 1 00:27:03.691: NAT*: s=211.241.228.4, d=121.160.23.2->192.168.10.1 [13]
*Mar 1 00:27:03.719: NAT*: s=192.168.10.1->121.160.23.2, d=211.241.228.4 [13]
*Mar 1 00:27:03.747: NAT*: s=211.241.228.4, d=121.160.23.2->192.168.10.1 [14]
*Mar 1 00:27:03.783: NAT*: s=192.168.10.1->121.160.23.2, d=211.241.228.4 [14]
********** PC1(R1)에서 Debug 확인 **********
*Mar 1 00:26:36.779: ICMP: echo reply sent, src 192.168.10.1, dst 211.241.228.4
*Mar 1 00:26:36.815: ICMP: echo reply sent, src 192.168.10.1, dst 211.241.228.4
*Mar 1 00:26:36.843: ICMP: echo reply sent, src 192.168.10.1, dst 211.241.228.4
*Mar 1 00:26:36.875: ICMP: echo reply sent, src 192.168.10.1, dst 211.241.228.4
*Mar 1 00:26:36.911: ICMP: echo reply sent, src 192.168.10.1, dst 211.241.228.4
S1/0 121.160.23.0/24 S1/1 S1/2 121.160.34.0/24 S1/3
R2----------------------------------R3----------------------------------R4 (RTX)
| 23.2 23.3 34.3 34.4 |
Fa0/1 Loopback 211
| |
R1 (PC) Web Server
192.168.10.1 211.241.228.4
# R1 , R2
line vty 0 4
password ciscovty
login
!
RTX# telnet 121.160.23.2 /source-interface loopback 211
Trying 121.160.23.2 ... Open
User Access Verification
Password:
PC1> <----- PC1(R1)으로 Telnet 접속 확인
-RTX(R4)에서 GIT(R2)의 Serial 1/0의 IP 주소인 121.160.23.2로 Telnet 접속하게되면
NAT 기능에 의해서 192.168.10.1 사설 IP주소로 변환되기때문에 PC1(R1)으로 접속된다.
## Dynamic NAT실습을위해서 Static NAT 설정 삭제
# GIT (R2)
GIT# clear ip nat translation *
GIT#conf t
!
GIT(config)# no ip nat inside source static 192.168.10.1 121.160.23.2
!
GIT(config)# interface fastethernet 0/1
GIT(config-if)# no ip nat inside
!
GIT(config)# interface serial 1/0
GIT(config-if)# no ip nat outside
-NAT Table에 변환된 주소 정보가 존재하게되면 NAT설정은 삭제되지 않는다.
['clear ip nat translation *' command를 사용하여 NAT table삭제후 NAT 설정을 삭제할수 있다.]
=========================================================================================================================
## Dynamic NAT
-Dynamic NAT는 다수의 사설 IP 주소가 소수의 공인 IP 주소로 변환되어 통신하는 기능으로
내부에서 외부로 통신시 Port번호를 사용하여 사설 IP 주소가 공인 IP 주소로변환이 이루어지며
외부에서 생성되어 입력되는 트래픽에 대해서는 Port 번호가 존재하지 않기때문에 IP 주소변환되지 않는다.
(Static NAT와 달리 역변환 기능은 지원되지 않기때문에 외부에서 내부로 통신은 불가능하다.)
# PC1 (R1)
interface fastethernet 0/1
ip address 192.168.10.1 255.255.255.0 : PC1 IP 주소 할당
ip address 192.168.10.2 255.255.255.0 secondary : PC2 IP 주소 할당
ip address 192.168.10.3 255.255.255.0 secondary : PC3 IP 주소 할당
!
PC1# ping 192.168.10.254 source 192.168.10.1 : G/W <---- PC1
PC1# ping 192.168.10.254 source 192.168.10.2 : G/W <---- PC2
PC1# ping 192.168.10.254 source 192.168.10.3 : G/W <---- PC3
-R1 = PC
-R2 = Gateway
-R3 = ISP
-R4 = RTX (Web Server Gateway)
S1/0 121.160.23.0/24 S1/1 S1/2 121.160.34.0/24 S1/3
R2----------------------------------R3----------------------------------R4
| 23.2 23.3 34.3 34.4 |
Fa0/1 Loopback 211
| |
R1 (PC) Web Server
192.168.10.1 211.241.228.4
EX1) GIT Router는 192.168.10.0/24 네트워크가 외부 네트워크로 통신시
Serial 1/0 (121.160.23.2)로 변경되어 통신이 실시 되어져야 한다.
1.ACL을 사용하여 사설 주소의 범위를 지정
2.NAT Pool을 사용하여 공인주소의 범위를 지정
3.NAT를 사용하여 사설주소를 공인주소로 대입
4.Interface에 NAT Inisde/Outside 적용
# GIT (R2)
access-list 1 permit 192.168.10.0 0.0.0.255
!
ip nat pool S_NET 121.160.23.2 121.160.23.2 netmask 255.255.255.0
!
ip nat inside source list 1 pool S_NET overload
!
interface fastethernet 0/1
ip nat inside
!
interface serial 1/0
ip nat outside
!
정보 확인
PC1# ping 211.241.228.4 source 192.168.10.1
PC1# ping 211.241.228.4 source 192.168.10.3
PC1# ping 211.241.228.4 source 192.168.10.3
GIT# show ip nat translation
Pro Inside global Inside local Outside local Outside global
icmp 121.160.23.2:11 192.168.10.1:11 211.241.228.4:11 211.241.228.4:11
icmp 121.160.23.2:12 192.168.10.2:12 211.241.228.4:12 211.241.228.4:12
icmp 121.160.23.2:13 192.168.10.3:13 211.241.228.4:13 211.241.228.4:13
####### Debug를 사용한 NAT IP 주소 변환 확인 #######
GIT# debug ip nat
IP NAT debugging is on
PC1# ping 211.241.228.4 source 192.168.10.1
PC1# ping 211.241.228.4 source 192.168.10.2
PC1# ping 211.241.228.4 source 192.168.10.3
S1/0 121.160.23.0/24 S1/1 S1/2 121.160.34.0/24 S1/3
R2----------------------------------R3----------------------------------R4
| 23.2 23.3 34.3 34.4 |
Fa0/1 Loopback 211
| |
R1 (PC) Web Server
192.168.10.1 ~ 192.168.10.4 211.241.228.4
********** GIT(R2)에서 Debug 확인 **********
## 192.168.10.1 --------> 211.241.228.4
*Mar 1 01:19:08.639: NAT*: s=192.168.10.1->121.160.23.2, d=211.241.228.4 [124]
*Mar 1 01:19:08.687: NAT*: s=211.241.228.4, d=121.160.23.2->192.168.10.1 [124]
## 192.168.10.2 --------> 211.241.228.4
*Mar 1 01:19:11.063: NAT*: s=192.168.10.2->121.160.23.2, d=211.241.228.4 [129]
*Mar 1 01:19:11.103: NAT*: s=211.241.228.4, d=121.160.23.2->192.168.10.2 [129]
## 192.168.10.3 --------> 211.241.228.4
*Mar 1 01:19:14.647: NAT*: s=192.168.10.3->121.160.23.2, d=211.241.228.4 [134]
*Mar 1 01:19:14.687: NAT*: s=211.241.228.4, d=121.160.23.2->192.168.10.3 [134]
# R1 , R2
line vty 0 4
password ciscovty
login
!
R1# telnet 121.160.70.2 /source-interface loopback 211
Trying 121.160.70.2 ... Open
User Access Verification
Password:
GIT> <----- GIT(R2)로 Telnet 접속 확인
-RTX(R4)에서 GIT(R2)의 Serial 1/0의 IP주소인 121.160.23.2로 Telnet 접속하게되면
외부에서 생성된 트래픽에 대해서는 Port 번호가 없기때문에 주소변환되지 않는다.
즉 역변환 기능이 되지 않기때문에 GIT(R2)로 Telnet접속이 실시된다.
반응형
반응형