[제 목 : NAT 설정]
사설 IP ADDRESS를 공인 IP ADDRESS로 DYNAMIC하게 바꿔보자
작성자 : 심 완 보
작성일 : 99년 11월 9일
이 글을 같이 근무하는 서울통신실 가족들과 실무에서 라우터를 활용하고자 하는
분들께 드립니다.
다음은 시스코(SAN_FRAN router)라우터에 NAT설정을 하고 한아(NEWYORK router)
라우터로 확인하는 일련의 시나리오를 보인 것입니다.
왜 시스코 라우터만으로 하지 않고 한아라우터와 병용했느냐면... 사정상...헤헤 !!!
SAN_FRAN# <== 이 쪽이 시스코 라우터입니다.
SAN_FRAN#
SAN_FRAN#
SAN_FRAN#telnet 202.30.68.254 <== 이 쪽이 한아라우터입니다.
Trying 202.30.68.254 ... Open
RUSTLE Login: router
Welcome to "Rustle Router-4501"
Login O.K.(Type ? for help, Type CTL-C for interrupt.)
NEWYORK>
NEWYORK> conf
Enter config password : ******
NEWYORK(config)>> sh route act(10.1.1.0 NETWORK 에 대한 라우팅 테이블은 없다)
net mask gateway mt if prot ttl ucnt mapid
127.0.0.1 255.255.255.255 127.0.0.1 0 0 Static - 0
202.30.66.0 255.255.255.0 210.109.216.1 2 2 RIP 163 507 0
202.30.68.0 255.255.255.0 202.30.68.254 0 1 Static - 907
210.109.216.0 255.255.255.0 210.109.216.2 0 2 Static - 183 0
224.0.0.1 240.0.0.0 224.0.0.1 0 1 Static - 2
NEWYORK(config)>>
NEWYORK(config)>>
NEWYORK(config)>>
NEWYORK(config)>> exit
NEWYORK> exit
[Connection to 202.30.68.254 closed by foreign host]
SAN_FRAN#
SAN_FRAN#
SAN_FRAN#
SAN_FRAN#sh conf
(아래의 CONFIG는 10.1.1.0 NETWORK를 202.300.66.0 NETWORK로 바꿔주는 셋팅이다.)
Using 1055 out of 131066 bytes
!
version 11.2
no service password-encryption
no service udp-small-servers
no service tcp-small-servers
!
hostname SAN_FRAN
!
enable secret 5 $1$L.Ps$Gd77z0XorAmTdHqnGkkqt.
enable password router
!
ip subnet-zero
ip nat pool NET-POOL 202.30.66.1 202.30.66.254 netmask 255.255.255.0
(NET-POOL이라는 이름으로 공인주소인 202.30.66.1 ~ 254 까지를
dynamic address pool로 설정한다. )
: 참고로 공인 주소를 설정하는 범위는 해당 interface를 포함하지 않아도 된다.
즉 202.30.66.1 ~ 253까지여도 되고 202.30.66.1 ~ 1 까지여도 되는 것으로
해당하는 네트워크 중 임의의 범위를 설정하여 주면 된다.
: 202.30.66.1 ~ 1 로 단일의 ip addr을 줄 때 다수의 비공인 이용자가 외부로
나가려 하면 이용자들은 해당 ip addr의 서로 다른 port를 이용하여 외부로
나가게 된다.
ip nat inside source list 9 pool NET-POOL overload
(overload 옵션은 공인 주소에 비해 비공인 주소가 많을 경우 하나의
공인 주소에 여러개의 비공인 주소를 할당한다는 의미이다.)
ip nat pool NET-POOL2 20.1.1.1 20.1.1.254 netmask 255.255.255.0
(NET-POOL2라는 이름으로 비공인주소인 20.1.1.1 ~254 까지를
outside local address pool로 설정한다. )
: 이는 만약 인터넷에 있는 주소가 내부적으로 사용하는 비공인 주소와 겹칠
경우 이를 방지하기 위한 설정이다.
ip nat outside source list 9 pool NET-POOL2
!
interface Loopback0
ip address 202.30.66.254 255.255.255.0
(루프백 어드레스를 설정한다.)
!
interface Ethernet0
ip address 10.1.1.254 255.255.255.0
ip nat inside
(비공인 네트워크임을 명시한다.)
:여기에 명시된 네트워크가 외부로 나갈 때 공인 네트워크로 바뀌어 나간다.
media-type 10BaseT
!
interface Serial0
ip address 210.109.216.1 255.255.255.0
ip nat outside
(ISP와 연결하기 위한 네트워크임을 명기하고 공인 네트워크임을 명시한다.)
!
interface Serial1
no ip address
shutdown
!
router rip
(라우팅 프로세서에 비공인 네트워크는 인식시키지 않는다.)
network 210.109.216.0
network 202.30.66.0
!
ip classless
access-list 9 permit 10.1.1.0 0.0.0.255 ( 비공인 네트워크의 범위를 지정한다.)
!
line con 0
line aux 0
line vty 0 4
password router
login
!
end
[ 아래 과정은 위의 설정을 획인하여 보는 과정입니다]
SAN_FRAN#
SAN_FRAN#
SAN_FRAN#
SAN_FRAN#sh ip route
: 10.1.1.0 NETWORK를 라우팅테이블로 잡아오고 있다.
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, *- candidate default
U - per-user static route, o - ODR
Gateway of last resort is not set
10.0.0.0/24 is subnetted, 1 subnets
C 10.1.1.0 is directly connected, Ethernet0
C 210.109.216.0/24 is directly connected, Serial0
R 202.30.68.0/24 [120/1] via 210.109.216.2, 00:00:23, Serial0
C 202.30.66.0/24 is directly connected, Loopback0
SAN_FRAN#
SAN_FRAN#
SAN_FRAN#clear ip nat s
SAN_FRAN#
SAN_FRAN#sh ip nat s
: 1개의 NAT기능을 수행하고 있다.
Total active translations: 1 (0 static, 1 dynamic; 1 extended)
Outside interfaces: Serial0
Inside interfaces: Ethernet0
Hits: 440 Misses: 0
Expired translations: 0
Dynamic mappings:
-- Inside Source
access-list 9 pool NET-POOL refcount 1
pool NET-POOL: netmask 255.255.255.0
start 202.30.66.1 end 202.30.66.254
type generic, total addresses 254, allocated 1 (0%), misses 0
-- Outside Source
access-list 9 pool NET-POOL2 refcount 0
pool NET-POOL2: netmask 255.255.255.0
start 20.1.1.1 end 20.1.1.254
type generic, total addresses 254, allocated 0 (0%), misses 0
SAN_FRAN#
SAN_FRAN#
SAN_FRAN#clear ip nat t *
SAN_FRAN#
SAN_FRAN#sh ip nat t
:다이나믹하게 변환되어 202.30.68.241로 ICMP를 행하고 있다.
Pro Inside global Inside local Outside local Outside global
icmp 202.30.66.1:256 10.1.1.2:256 202.30.68.241:256 202.30.68.241:256
SAN_FRAN#
SAN_FRAN#
SAN_FRAN#
SAN_FRAN#
[기 타]
NAT를 이해하기에 좋은 글이 있기에 아래에 소개합니다.(출처는 소프트뱅크입니다.)
Q. NAT는 무엇이며 어떠한 경우에 사용되나?
NAT(Network Address Translation)은 IP 주소를 공인/비공인 주소로 구분하여 내부적으로는 비공인 주소를 사용하고 외부(특히 인터넷)에 나갈때 공인 주소로 변환하여 주는 기능이다.
Cisco 에서 제공되는 NAT는 여러가지 방식으로 구현이 가능한데 대표적인 사용예는 다음과 같다
제한된 IP 주소를 가지고 있기 때문에 전체 네트워크에 모두 공인 주소를 할당해 줄 수 없는 경우
보안이 필요한 경우(내부 네트워크가 비공인 주소로 구성되기 때문에 외부에서 접근할 수 없다)
이미 LAN이 구축되어 네트워크를 사용하고 있는 환경에서 새로이 인터넷을 접속하게 되면 공인 주소를 할당받게 되는데 이때 기존 주소체계를 전부 바꾸지 않고 유지하면서 인터넷에 접속하는 경우에도 효과적으로 사용될 수 있다.
Q. NAT 기능을 사용하기 위해서는 어떤 IOS가 필요한가?
NAT는 IOS 11.2 버전부터 지원하는 기능이며 버전별로는 다음과 같다.
- 11.2 : Base IOS(None), Plus IOS(Full NAT)
- 11.3 : Base IOS(PAT만 지원), Plus IOS(Full NAT)
- 12.0 : Base IOS(Full NAT), Plus IOS(Full NAT)
* Base IOS(IP only, IP/IPX/AT, Enterprise), Plus IOS(IP Plus, IP/IPX/AT Plus, Enterprise Plus)
* PAT(Port Address Translation)은 NAT의 기능중 many-to-one translation만 지원하고 static과 dynamic one-to-one translation기능은 제공하지 않는다.
* Cisco 1000 시리즈는 12.0 버전에서 Plus IOS에서만 NAT를 지원한다.
Q. Dynamic과 Static NAT 기능을 같이 설정할 수 있나?
가능하다. 대부분의 내부 시스템은 dynamic하게 설정하고 외부로 서비스하는 서버(Web, Mail, FTP등)은 static하게 설정함으로써 외부하고 통신이 가능하게 된다.
Q. NAT에서 사용되는 Address 정의
Inside Local Address : 내부 비공인 주소(임의로 설정 가능)
Inside Global Address : 내부 네트워크에 설정하는 ISP로 부터 할당받은 주소(공인 주소)
Outside Local Address : Inside Local Address와 특정 인터넷 주소가 겹칠 경우 외부 주소가 내부로 forwarding 되기 전 변환되는 주소
Outside Global Address : 외부 네트워크의 공인 주소