[네트워크] 패킷 트레이서로 직접 확인해보는 VPN 터널링 구축
- 네트워크
- 2020. 1. 18. 21:56
VPN 관련 첫번째 포스팅에서 VPN 터널링이란 무엇인지에 대해 알아봤었다. 이번 포스팅에서는, 시스코 패킷 트레이서 프로그램을 사용해서 실제 터널링을 구축하고 터널링이 되어있으면 데이터 송수신 경로가 어떻게 되는지 직접 확인해본다.
[네트워크] VPN이란 ? 정의/ 터널링/터널링 프로토콜(IPSecVPN, MPLSVPN, SSL 등)
[네트워크] IPSecVPN의 정의와 두가지 모드(전송모드, 터널모드)
시스코 패킷 트레이서 (Cisco Packet Tracer) 란?
시스코 네트워크 장비들을 통해 각 개인이 원하는 실제 시뮬레이션을 할 수 있는 기능을 제공하는 프로그램이다. 시스코 패킷 트레이서를 사용해본 적은 있지만 어떤 프로그램인지 궁금해서 써봤던게 다였고 (거의 4년 전쯤...) 그 이후로는 써본적이 없어서 요번에 삽질을 많이 했다.
사실 네트워크 부분이 스스로 제일 부족하다고 생각해서 블로그의 초기 포스팅을 VPN으로 시작하게 된것인데 확실히 패킷트레이서로 직접 눈으로 확인하면서 공부하니 도움이 많이 되는 것 같다. 앞으로도 종종 패킷트레이서를 사용한 네트워크 구축 관련 포스팅을 시도할 생각이다.
사설이 길었는데, 시스코 패킷 트레이서 7.0 설치파일(zip 파일 형태)은 아래 링크에서 받을 수 있다.
네트워크 토폴로지(Network Topology) 및 네트워크 정보
먼저, 네트워크 토폴로지란 정보가 송수신될 수 있도록 유선이든 무선이든 연결된 형태를 의미한다. 정보보안기사는 물론 정보처리기사에서도 자주 등장하는 성형, 버스형, 링형 등의 개념이 이 네트워크 토폴로지이다.
아래는 라우터 간 터널링 구축을 위해 생성한 간단한 토폴로지이다. Router0, Router1, Router2, PC2, PC3 으로 이루어져 있다. 아직 아무런 연결을 하지 않았기 때문에 케이블 연결에 동그라미 색이 빨간색이다. 참고로 여기 적혀있는 IP 주소는 임의로 설정한 것이라서 특별한 의미는 없다.
네트워크 연결 설정 (패킷 트레이서 라우터 연결)
네트워크 구성은 아래 그림과 같다. PC2와 PC3가 통신을 위해 VPN을 구축했을 때, tracert 경로가 어떻게 되는지 확인하는 것이 목표이다. 위 그림에 나와있는 정보들을 토대로 각 라우터와 PC의 초기 연결 설정부터 할 것이다.
Router1 설정
Router1은 FastEthernet 0/0, 0/1을 갖고 있다. FastEthernet 0/0 의 IP 주소는 '192.168.10.1 / 255.255.255.0' 으로, FastEthernet 0/1의 IP 주소는 '11.0.0.1 / 255.0.0.0' 로 설정해준다.
여기서는 라우터 명령어를 통해 설정을 해주었지만 'Config>Interface' 영역에서 GUI 기반으로 설정해주어도 무관하다. 그리고 참고로 인터페이스 설정을 한 후에는 꼭 'no shut' 명령어로 활성화를 시켜주어야 한다.
Router>en
Router#config t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#host router1
router1(config)#int fa0/0
router1(config-if)#ip address 192.168.10.1 255.255.255.0
router1(config-if)#no shut
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
router1(config-if)#exit
router1(config)#int fa0/1
router1(config-if)#ip address 11.0.0.1 255.0.0.0
router1(config-if)#no shut
Router2 설정
Router2는 FastEthernet 0/0, 0/1을 갖고 있다. FastEthernet 0/0 의 IP 주소는 '10.0.0.1 / 255.0.0.0' 으로, FastEthernet 0/1의 IP 주소는 '192.168.20.1 / 255.255.255.0' 로 설정해준다.
Router>en
Router#config t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#host router2
router2(config)#int fa0/0
router2(config-if)#ip address 10.0.0.1 255.0.0.0
router2(config-if)#no shut
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
router2(config-if)#exit
router2(config)#int fa0/1
router2(config-if)#ip address 192.168.20.1 255.255.255.0
router2(config-if)#no shut
Router0 설정
Router0은 FastEthernet 0/0, 0/1을 갖고 있다. FastEthernet 0/0 의 IP 주소는 '11.0.0.2 / 255.0.0.0' 으로, FastEthernet 0/1의 IP 주소는 '10.0.0.2 / 255.0.0.0' 로 설정해준다.
Router>en
Router#config t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#host router0
router0(config)#int fa0/0
router0(config-if)#ip address 11.0.0.2 255.0.0.0
router0(config-if)#no shut
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
router0(config-if)#exit
router0(config)#int fa0/1
router0(config-if)#ip address 10.0.0.2 255.0.0.0
router0(config-if)#no shut
PC2 & PC3 설정
PC2와 PC3는 IP 주소, 서브넷마스크, 게이트웨이 주소 설정을 해준다. 'Desktop>IP Configuration'에서 설정해줄 수 있다.
네트워크 연결 후
네트워크 연결 후, 아래 그램과 같이 케이블의 동그라미가 연두색으로 변한 것을 볼 수 있다.
패킷트레이서 라우팅(Routing) 설정
네트워크 구성이 끝났으니 이제 라우터에 라우팅 정보를 입력할 차례이다. '라우팅'이란 데이터를 목적지로 전송하기 위한 최적의 경로를 설정하고 패킷을 포워딩할 수 있게 해준다.
Router1 라우팅
Router1 라우터에 라우팅 정보를 입력한다. 기본 라우팅 구성은 'ip route 0.0.0.0 0.0.0.0 [Net-hop-address]' 로 설정할 수 있는데 이런 형태는 데이터가 나갈 수 있는 곳이 한곳일 때만 가능하다.
router1#config t
Enter configuration commands, one per line. End with CNTL/Z.
router1(config)#ip route 0.0.0.0 0.0.0.0 11.0.0.2
Router 2 라우팅
Router2 라우터에 라우팅 정보를 입력한다.
router3(config-if)#exit
router3(config)#host router2
router2(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.2
라우터 간 연결 확인
네트워크 설정과 라우팅 정보를 입력했으니 이제 중간 점검으로 연결이 잘 되었는지 'ping'으로 테스트를 해본다. 서로 반대편에 있는 라우터 주소를 입력해주어 확인한다. 여태까지 설정이 알맞게 잘 되었다면 아래와 같이 성공했다고 나올 것이다.
Router1 -> Router2
Router 1 -> Router 2 연결을 확인해본다.
router1#ping 10.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 10/11/13 ms
Router2 -> Router1
Router 2 -> Router 1 연결을 확인해본다.
router2#ping 11.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 11.0.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/10/13 ms
VPN 터널 생성 및 구성
여태까지 서론이었다면, 드디어 본론으로 들어왔다. 각 라우터 Router1과 Router2에 VPN 터널 생성 및 구성을 해준다. 참고로 이 포스팅에서 구축하는 VPN 터널링은 아무런 보안 기능이 없는 터널링이다.
Router 1 VPN 터널 생성
인터페이스 'tunnel 10'을 생성하고 터널에 가상 IP 주소인 '172.16.1.1 / 255.255.0.0'를 설정하고 출발 인터페이스 주소 'fa 0/1'과 반대편 라우터 게이트웨이 주소 '10.0.0.1'을 설정한다.
router1>en
router1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
router1(config)#int tunnel 10
%LINK-5-CHANGED: Interface Tunnel10, changed state to up
router1(config-if)#ip address 172.16.1.1 255.255.0.0
router1(config-if)#tunnel source fa0/1
router1(config-if)#tunnel destination 10.0.0.1
%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel10, changed state to up
router1(config-if)#no shut
Router 2 VPN 터널 생성
인터페이스 'tunnel 10'을 생성하고 터널에 가상 IP 주소인 '172.16.1.1 / 255.255.0.0'를 설정하고 출발 인터페이스 주소 'fa 0/1'과 반대편 라우터 게이트웨이 주소 '10.0.0.1'을 설정한다.
router2#config t
Enter configuration commands, one per line. End with CNTL/Z.
router2(config)#interface tunnel 100
%LINK-5-CHANGED: Interface Tunnel10, changed state to up
router2(config-if)#ip address 172.16.1.2 255.255.0.0
router2(config-if)#tunnel source fa0/0
router2(config-if)#tunnel destination 11.0.0.1
%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel10, changed state to up
router2(config-if)#no shut
router2(config-if)#
라우터 간 연결 체크
그리고 아까 했던것과 마찬가지로 연결이 제대로 됐는지 ping 테스트를 수행한다.
router1#ping 10.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 9/11/13 ms
router1#ping 172.16.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 2/11/16 ms
router2>ping 11.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 11.0.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 2/8/12 ms
router2>ping 172.16.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 9/11/15 ms
VPN 터널 라우팅
이제 마지막 단계이다. 생성한 VPN 터널에 라우팅 정보를 입력하면 끝이다. 아래와 같이, Router1과 Router2에 터널 라우팅을 수행해준다.
router1(config)#ip route 192.168.20.0 255.255.255.0 172.16.1.2
router2(config)#ip route 192.168.10.0 255.255.255.0 172.16.1.1
VPN 터널링 결과 확인
길고 길었던 여정이 끝났다. 목표로 했던 VPN 터널링 결과를 확인해보자! 아래 캡쳐 화면은 PC2에서 반대편에 있는 PC3로, PC3에서 PC2로 ping 과 tracert 를 한 결과이다. (PC2 -> PC3 의 경우) 특히 tracert 결과를 확인해보면, 터널링이 되어있지 않았을 때는 <Router1 -> Router0 -> Router2> 의 순서로 경로가 나와야 하는데 Router0 이 빠져있는 것을 볼 수 있다. 즉, Router1과 Router2가 VPN 터널로 직접 연결되었기 때문에 가능한 결과이다.
참조
linuxtiwary, <vpn configuration lab using routers in cisco packet tracer>
'네트워크' 카테고리의 다른 글
[네트워크] 스노트(snort) TCP SYN Flooding(DDoS) 공격 탐지 (1) | 2020.02.04 |
---|---|
[네트워크] 눈으로 확인해보는 Vmware Host-Only, Nat, Bridge 차이 (0) | 2020.02.01 |
[네트워크] 스노트(snort) threshold를 사용한 nmap 포트스캐닝 탐지 (0) | 2020.01.22 |
[네트워크] 스노트(snort) 우분투(ubuntu) 설치 방법 (0) | 2020.01.22 |
[네트워크] 오픈소스 무료 IDS/IPS/방화벽/웹방화벽 추천 (6) | 2020.01.21 |