[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