[GNS3 Labs.] Cisco NAT, DHCP 설정하기

[GNS3 Labs.] Cisco NAT, DHCP 설정하기

* NAT(Network Address Translation)의 종류

Static NAT – 로컬주소와 글로벌 주소간 1:1 매핑을 허용하며, 네트워크의 모든 호스트에 대해 하나씩의 실제 IP주소가 있어야 한다.
Dynamic NAT – 등록되지 않은 IP주소를 등록된 IP주소 풀에서 등록된 IP주소로 매핑할 수 있다.
overloading(PAT) – 가장 많이 사용하는 NAT 유형. 여러 source port를 사용하여 등록되지 않은 IP주소를 하나의 등록된 IP주소로 매핑하는 Dynamic NAT의 한 형태다. 일반적으로 Port Address Translation이라고 알려져 있다.

Inside local – 보통 RFC1918 주소로, translation 되기 이전의 내부 호스트가 가진 IP 주소
Outside local – source 호스트가 인터넷에서 알려진 주소로 일반적으로는 실제 인터넷 주소인 ISP에 연결된 라우터 인터페이스의 IP 주소.
Inside global – 인터넷에 접속하기위해 translation 후에 사용한 source 호스트의 IP 주소로 실제 IP 주소
Outside global – 실제 인터넷 IP 주소

구성은 아래 그림과 같다. Cisco 스위치가 인터넷에 연결되어 있고, 스위치의 NAT 기능을 이용하여 VPCS-1, VPCS-2를 인터넷에 연결 되도록 구성한다.
GNS3 시뮬레이터에, Cisco IOU를 이용했다.

1. 스위치 SW-R의 인터넷 연결 설정

인터페이스 설정 및 라우팅 설정

SW-R(config)#int e0/0
SW-R(config-if)#no switchport
SW-R(config-if)#ip address  172.16.55.2 255.255.255.0
SW-R(config-if)#exit
SW-R(config)#ip routing
SW-R(config)#ip route 0.0.0.0 0.0.0.0 172.16.55.1
SW-R(config)#end

스위치 SW-R 인터넷 연결 확인을 위해 구글 DNS에 ping 테스트를 해 본다.

SW-R#ping 8.8.8.8
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds:
!!!!!

내부 네트워크의 게이트 웨이로 사용될 인터페이스 e0/1 설정(IP주소)

SW-R(config)#int e0/1
SW-R(config-if)#no switchport
SW-R(config-if)#ip address 192.168.100.1 255.255.255.0
SW-R(config-if)#exit

2. NAT 설정
2.1. Static NAT 설정
e0/0의 IP 주소와 192.168.100.11 을 1:1로 매핑 시켜준다. 이때, 192.168.100.11을 가지는 VPCS-1은 인터넷에 연결되지만, VPCS-2는 인터넷에 연결되지 않는다.

SW-R(config)#ip nat inside source static 192.168.100.11 172.16.55.2
SW-R(config)#int e0/1
SW-R(config-if)#ip nat inside
SW-R(config)#int e0/0
SW-R(config-if)#ip nat outside
SW-R(config-if)#exit

vpcs-1 에서, 외부로 ping 시험한다.

VPCS-1> sh ip

NAME        : VPCS-1[1]
IP/MASK     : 192.168.100.11/24
GATEWAY     : 192.168.100.1
DNS         :
MAC         : 00:50:79:66:68:00
LPORT       : 10008
RHOST:PORT  : 127.0.0.1:10009
MTU:        : 1500

VPCS-1> ping 8.8.8.8
84 bytes from 8.8.8.8 icmp_seq=1 ttl=34 time=65.321 ms
84 bytes from 8.8.8.8 icmp_seq=2 ttl=34 time=67.056 ms
84 bytes from 8.8.8.8 icmp_seq=3 ttl=34 time=64.194 ms
84 bytes from 8.8.8.8 icmp_seq=4 ttl=34 time=64.117 ms
84 bytes from 8.8.8.8 icmp_seq=5 ttl=34 time=64.340 ms

vpcs-2에서 외부로 Ping 시험을 하면, NAT가 적용되지 않았음을 확인 할 수 있다.

VPCS-2> sh ip

NAME        : VPCS-2[1]
IP/MASK     : 192.168.100.12/24
GATEWAY     : 192.168.100.1
DNS         :
MAC         : 00:50:79:66:68:01
LPORT       : 10010
RHOST:PORT  : 127.0.0.1:10011
MTU:        : 1500

VPCS-2> ping 8.8.8.8
8.8.8.8 icmp_seq=1 timeout
8.8.8.8 icmp_seq=2 timeout
8.8.8.8 icmp_seq=3 timeout
8.8.8.8 icmp_seq=4 timeout
8.8.8.8 icmp_seq=5 timeout

VPCS-2> ping 192.168.100.1
84 bytes from 192.168.100.1 icmp_seq=1 ttl=255 time=0.558 ms
84 bytes from 192.168.100.1 icmp_seq=2 ttl=255 time=0.573 ms

2.2.Dynamic NAT 설정
인터넷과 연결되는 172.16.55.0/24대역에서, 10~20번과 내부네트워크인 192.168.100.0/24 대역을 매핑하여 인터넷 접속을 하도록 설정한다.

SW-R(config)#ip nat pool fox_net 172.16.55.10 172.16.55.20 netmask 255.255.255.0
SW-R(config)#ip nat inside source list 1 pool fox_net
SW-R(config)#int e0/0
SW-R(config-if)#ip nat outside
SW-R(config-if)#int e0/1
SW-R(config-if)#ip nat inside
SW-R(config-if)#exit
SW-R(config)#access-list 1 permit 192.168.100.0 0.0.0.255
SW-R(config)#end
SW-R#

구글 DNS에 ping 시험을 하여 인터넷 접속을 확인한다.

VPCS> sh ip

NAME        : VPCS[1]
IP/MASK     : 192.168.100.11/24
GATEWAY     : 192.168.100.1
DNS         :
MAC         : 00:50:79:66:68:00
LPORT       : 10008
RHOST:PORT  : 127.0.0.1:10009
MTU:        : 1500

VPCS> ping 8.8.8.8
84 bytes from 8.8.8.8 icmp_seq=1 ttl=34 time=64.789 ms
84 bytes from 8.8.8.8 icmp_seq=2 ttl=34 time=65.175 ms
84 bytes from 8.8.8.8 icmp_seq=3 ttl=34 time=66.543 ms
VPCS> sh ip

NAME        : VPCS[1]
IP/MASK     : 192.168.100.12/24
GATEWAY     : 192.168.100.1
DNS         :
MAC         : 00:50:79:66:68:01
LPORT       : 10012
RHOST:PORT  : 127.0.0.1:10013
MTU:        : 1500

VPCS> ping 8.8.8.8
84 bytes from 8.8.8.8 icmp_seq=1 ttl=34 time=68.081 ms
84 bytes from 8.8.8.8 icmp_seq=2 ttl=34 time=67.924 ms
84 bytes from 8.8.8.8 icmp_seq=3 ttl=34 time=65.200 ms
^C

스위치에서 show ip nat translation 명령으로, NAT를 확인 할 수 있다.
아래 결과를 보면, 192.168.100.11은 172.16.55.10으로 translation 되었음을 볼 수 있다.

SW-R#sh ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- 172.16.55.10       192.168.100.11     ---                ---
--- 172.16.55.11       192.168.100.12     ---                ---

2.3. PAT(Overloading) 설정
스위치의 인터넷 접속 인터페이스의 IP주소인 172.16.55.2를 통해 192.168.100.0/24 네트워크를 인터넷과 연결하도록 설정한다.

SW-R(config)#ip nat pool pat 172.16.55.2 172.16.55.2 netmask 255.255.255.0
SW-R(config)#ip nat inside source list 1 pool pat overload
SW-R(config)#int e0/0
SW-R(config-if)#ip nat outside
SW-R(config-if)#int e0/1
SW-R(config-if)#ip nat inside
SW-R(config-if)#exit
SW-R(config)#access-list 1 permit 192.168.100.0 0.0.0.255
SW-R(config)#exit

VPCS-1, VPCS-2에서 google dns 서버까지 ping 테스트후, 스위치에서 nat 상태를 확인해 보면 172.16.55.2를 통해 인터넷에 연결 되었음을 확인 할 수 있다.

SW-R#sh ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
icmp 172.16.55.2:1024  192.168.100.11:40366 8.8.8.8:40366    8.8.8.8:1024
icmp 172.16.55.2:1025  192.168.100.11:40622 8.8.8.8:40622    8.8.8.8:1025
icmp 172.16.55.2:1026  192.168.100.11:40878 8.8.8.8:40878    8.8.8.8:1026
icmp 172.16.55.2:1027  192.168.100.11:41134 8.8.8.8:41134    8.8.8.8:1027
icmp 172.16.55.2:1028  192.168.100.11:41390 8.8.8.8:41390    8.8.8.8:1028
icmp 172.16.55.2:1033  192.168.100.11:49582 8.8.8.8:49582    8.8.8.8:1033
icmp 172.16.55.2:1035  192.168.100.11:49838 8.8.8.8:49838    8.8.8.8:1035
icmp 172.16.55.2:1036  192.168.100.11:50094 8.8.8.8:50094    8.8.8.8:1036
icmp 172.16.55.2:1037  192.168.100.11:50350 8.8.8.8:50350    8.8.8.8:1037
icmp 172.16.55.2:1029  192.168.100.12:48558 8.8.8.8:48558    8.8.8.8:1029
icmp 172.16.55.2:1030  192.168.100.12:48814 8.8.8.8:48814    8.8.8.8:1030
icmp 172.16.55.2:1031  192.168.100.12:49070 8.8.8.8:49070    8.8.8.8:1031
icmp 172.16.55.2:1032  192.168.100.12:49326 8.8.8.8:49326    8.8.8.8:1032
icmp 172.16.55.2:1034  192.168.100.12:49582 8.8.8.8:49582    8.8.8.8:1034
 

3. DHCP(Dynamic Host Configuration) 설정
이제, 스위치에 dhcp를 설정하여, ip주소를 수동으로 설정하지 않아도 자동으로 ip주소를 할당받도록 설정한다.

특정 ip주소 (아래예에서는 192.168.100.1 ~ 192.168.100.10 까지)를 dhcp에서 사용하지 않도록 하려면, 아래와같이 excluded-address 로 지정하면 된다.

SW-R(config)#ip dhcp excluded-address 192.168.100.1 192.168.100.10
SW-R(config)#ip dhcp pool dhcp_pool
SW-R(dhcp-config)#network 192.168.100.0 255.255.255.0
SW-R(dhcp-config)#default-router 192.168.100.1
SW-R(dhcp-config)#dns-server 8.8.8.8

IP lease 시간을 3일 12시간 15분으로 설정.

SW-R(dhcp-config)#lease 3 12 15

VPCS-2에서 DHCP로 IP주소 받은후, 구글 DNS 서버까지 Ping 테스트를 해 본다.

VPCS-2> ip dhcp
DDORA IP 192.168.100.12/24 GW 192.168.100.1

VPCS-2> ping 8.8.8.8
84 bytes from 8.8.8.8 icmp_seq=1 ttl=34 time=81.868 ms
84 bytes from 8.8.8.8 icmp_seq=2 ttl=34 time=59.570 ms
^C

스위치에서 dhcp 현황을 확인해 보려면,

SW-R#sh ip dhcp binding
Bindings from all pools not associated with VRF:
IP address          Client-ID/              Lease expiration        Type
                    Hardware address/
                    User name
192.168.100.12      0100.5079.6668.01       Jan 26 2018 06:47 PM    Automatic

VPCS-1의 IP설정을 삭제하고, DHCP로 IP주소를 받아본다.

VPCS> show ip

NAME        : VPCS[1]
IP/MASK     : 192.168.100.11/24
GATEWAY     : 192.168.100.1
DNS         :
MAC         : 00:50:79:66:68:00
LPORT       : 10008
RHOST:PORT  : 127.0.0.1:10009
MTU:        : 1500

VPCS> clear ip
IPv4 address/mask, gateway, DNS, and DHCP cleared

VPCS> ip dhcp
DDORA IP 192.168.100.13/24 GW 192.168.100.1

VPCS> ping 8.8.8.8
84 bytes from 8.8.8.8 icmp_seq=1 ttl=34 time=58.627 ms
84 bytes from 8.8.8.8 icmp_seq=2 ttl=34 time=59.003 ms

스위치에서 DHCP 현황을 다시 확인해 본다.

SW-R#sh ip dhcp binding
Bindings from all pools not associated with VRF:
IP address          Client-ID/              Lease expiration        Type
                    Hardware address/
                    User name
192.168.100.12      0100.5079.6668.01       Jan 26 2018 06:47 PM    Automatic
192.168.100.13      0100.5079.6668.00       Jan 26 2018 06:55 PM    Automatic

dhcp pool 확인(lease 개수, 제외된 ip주소 개수등 확인 가능)

SW-R#sh ip dhcp pool

Pool dhcp_pool :
 Utilization mark (high/low)    : 100 / 0
 Subnet size (first/next)       : 0 / 0
 Total addresses                : 254
 Leased addresses               : 2
 Excluded addresses             : 11
 Pending event                  : none
 1 subnet is currently in the pool :
 Current index        IP address range                    Leased/Excluded/Total
 192.168.100.14       192.168.100.1    - 192.168.100.254   2     / 11    / 254

수동으로 IP 설정한 경우, IP 주소 충돌 확인

SW-R#sh ip dhcp conflict
IP address        Detection method   Detection time          VRF
192.168.100.11    Ping               Jan 23 2018 06:32 AM

아래는 스위치에서 PAT와 DHCP를 설정한 내용

—————
SW-R의 설정
—————

SW-R#sh config
Using 1180 out of 8192 bytes, uncompressed size = 2020 bytes
!
! Last configuration change at 06:31:31 UTC Tue Jan 23 2018
!
version 15.1
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
service compress-config
!
hostname SW-R
!
boot-start-marker
boot-end-marker
!
!
logging discriminator EXCESS severity drops 6 msg-body drops EXCESSCOLL
logging buffered 50000
logging console discriminator EXCESS
!
no aaa new-model
no ip icmp rate-limit unreachable
!
ip cef
ip dhcp excluded-address 192.168.100.1 192.168.100.10
!
ip dhcp pool dhcp_pool
 network 192.168.100.0 255.255.255.0
 default-router 192.168.100.1
 dns-server 8.8.8.8
 lease 3 12 15
!
!
no ip domain-lookup
no ipv6 cef
ipv6 multicast rpf use-bgp
!
!
!
!
!
!
!
spanning-tree mode pvst
spanning-tree extend system-id
!
!
!
!
vlan internal allocation policy ascending
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
interface Ethernet0/0
 no switchport
 ip address 172.16.55.2 255.255.255.0
 ip nat outside
!
interface Ethernet0/1
 no switchport
 ip address 192.168.100.1 255.255.255.0
 ip nat inside
!
interface Ethernet0/2
 duplex auto
!
interface Ethernet0/3
 duplex auto
!
interface Ethernet1/0
 duplex auto
!
interface Ethernet1/1
 duplex auto
!
interface Ethernet1/2
 duplex auto
!
interface Ethernet1/3
 duplex auto
!
interface Ethernet2/0
 duplex auto
!
interface Ethernet2/1
 duplex auto
!
interface Ethernet2/2
 duplex auto
!
interface Ethernet2/3
 duplex auto
!
interface Ethernet3/0
 duplex auto
!
interface Ethernet3/1
 duplex auto
!
interface Ethernet3/2
 duplex auto
!
interface Ethernet3/3
 duplex auto
!
interface Vlan1
 no ip address
 shutdown
!
ip nat pool pat 172.16.55.2 172.16.55.2 netmask 255.255.255.0
ip nat inside source list 1 pool pat overload
!
no ip http server
!
ip route 0.0.0.0 0.0.0.0 172.16.55.1
!
access-list 1 permit 192.168.100.0 0.0.0.255
!
!
!
control-plane
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
end

답글 남기기

Your email address will not be published.