네트워크 실습은 꽤 많은 구축 비용을 요구합니다. 통신을 하려면 일단 최소한 2개 이상의 기기(PC, 서버, IoT 장비 등)가 필요하니까요. 그리고 고작 단말 2~3개로 끝나지 않고, 때론 수십 개의 단말이 여러 서브 네트워크로 쪼개져서 복잡한 토폴로지를 구성하는 일이 잦을 겁니다.
이런 경우에는 서버나 PC 장비 뿐만 아니라 스위치, 허브, AP, 라우터 같은 네트워크 장치도 넉넉히 보유해야 하며, 또 그것들을 배치할 공간도 마련해야겠죠.
일반인들은 이러한 고가의 장비들, 다수의 네트워크 단말을 손에 넣을 수 없습니다. 그래서 네트워크 테스트베드를 가상 환경에서 빠르고 저비용으로 설계하고 실험해볼 수 있는 도구들이 개발되어 왔습니다.
1. GNS3 = 네트워크 입문자를 위한 시뮬레이터
GNS3는 대표적으로 잘 알려진 네트워크 시뮬레이션 프로그램입니다. 오픈 소스이고요. GNS3를 설치할 컴퓨터만 있어도 Cisco, Fortinet, Juniper, HuaWei 등 다양한 네트워크 장비 벤더들의 제품을 가상 이미지로 띄울 수 있습니다.
라우터 및 스위치 장비 이외에도 방화벽, 또는 다양한 버전의 Linux/Windows PC나 Kali, Raspberry Pi와 같은 단말 기기도 가상 머신(이젠 Docker 컨테이너 형태로도 지원합니다!) 형태로 네트워크 환경에 배치할 수 있습니다.
GNS3를 통해서 다양한 네트워크 이론과 아키텍처를 눈으로 이해하고 더 나아가 네트워크 보안 실습도 심도 깊게 학습하는데도 도움이 됩니다. 특히, CCNA와 같은 자격증 시험을 준비하는 분들에게 실기 부분적으로 매우 유용하게 쓰이고 있습니다.
GNS3 (Graphical Network Simulator)는 복잡한 구조의 네트워크를 테스트해볼 수 있는 네트워크 에뮬레이터입니다. 라우터나 스위치와 같은 네트워크 장비들을 가상의 인프라에 올려보고 내부적인 동작을 프로그램 화면 안에서 확인 가능합니다. 네트워크를 공부하는 사람들에게 실제 장비 구축 없이도 여러가지를 시뮬레이션해볼 수 있는 유용한 도구입니다.
2. GNS3 설치
설치 파일을 다운로드 받으려면 GNS3 홈페이지에서 회원 가입을 해야 합니다. 아래 링크로 들어가 Download 버튼을 클릭하면 친절히 가이드라인이 나오니 그대로 따라하면 됩니다.
https://gns3.com/software/download
https://gns3.com/software/download
Incompatible Browser! Looks like you're using an older browser. To get the best experience, please upgrade. UPGRADE MY BROWSER
gns3.com
설치 구성 요소에 GNS3 WebClient도 포함 시키도록 합시다.
설치 프로세스가 끝날 때 즈음, SolarWinds라는 도구를 추가로 설치할 거냐고 묻는데요. 네트워크 노드(스위치, 라우터, 기타 VPC 등)에 연결할 때 쓸 console 기능을 제공하긴 합니다만, 꼭 쓸모가 있는 건 아니라서 ‘No’로 체크하고 넘어갑니다.
설치가 마무리되고 GNS3 인터페이스가 나타납니다. Setup Wizard 창이 한번 더 등장하는데요. 3개의 선택지 중 ‘Run appliances on my local computer‘을 체크하고 넘어갑니다.
2-n. GNS3 Console 테마 설정
💡 아래 내용은 개인 취향에 따라 건너뛰셔도 됩니다. 기본 터미널을 사용하실 분들은 [3. 프로젝트 생성] 항목으로 이동하세요.
GNS3는 네트워크 장비 시스템에 터미널로 접근할 수 있는데, 기본적으로 Solar-Putty라는 콘솔을 사용합니다. 사용하기에 마냥 나쁘진 않지만, 저는 Windows 터미널에서 일괄적으로 작업하는 것을 선호하므로 기본 콘솔 정보를 변경하였습니다.
GNS3에서 쓸 콘솔 종류를 바꾸려면,
Edit
→ Preferences
→ General
→ Console applications
→ Console settings
→ Edit
Windows Terminal
로 선택 후, OK 버튼 클릭
네트워크 장비 시스템에 접속하기 위해서 반드시 telnet이 활성화되어야 합니다. 하단 검색창에서 Windows 기능 켜기/끄기를 찾은 뒤, 맨 아래에 있는 ‘텔넷 클라이언트’ 항목을 체크해주세요.
3. 프로젝트 생성
이제 준비도 다 됬겠다, 아주 간단한 네트워크 구성으로 시뮬레이션을 체험해보겠습니다.
File
->New_blank_project
탭을 클릭하고 프로젝트 이름을 지어줍니다.
본 실습에서는 네트워크 스위치 1개와 VPC 2개를 배치하여 VPC끼리 스위치를 사이에 두고 통신을 하는 과정을 눈으로 확인하고자 합니다.
네트워크 노드 배치
좌측 탭에서 엇갈린 화살표 아이콘을 클릭하면 네트워크 스위치 장비 목록이 나타날텐데요, 여기서 Ethernet switch라는 것을 마우스로 집어 우측 빈 공간에다가 끌어다 놓습니다.
다음으로 화살표 아이콘 바로 아래에 있는 모니터 그림을 클릭한 뒤, VPCS 라는 노드를 2개 배치해봅니다.
노드끼리 연결
장비들을 배치했으니 이제 각각의 노드들을 링크로 연결해야합니다. 제일 아래 플러그 아이콘을 선택한 뒤에, 우측에 배치된 스위치를 우클릭하여 나열된 포트 중 Ethernet1
을 선택합니다.
바로 이어, PC1
에 해당하는 노드를 클릭하면 유일하게 딱 하나 존재하는 네트워크 인터페이스( Ethernet0
)가 있을텐데요. 해당 항목을 선택하면 이제 Switch1
과 PC1
사이의 물리적인 연결이 허용된 것입니다.
마찬가지로 Switch1
과 PC2
도 선으로 이어주되, 방금 전에 스위치 쪽에서 사용했던 포트(Ethernet1) 외에 다른 것을 선택하도록 합니다. 아래 예시에서는 Ethernet2
를 골랐습니다.
상단 도구모음에서 왼쪽으로부터 4번째에 있는 아이콘을 클릭하면 각 네트워크 인터페이스/포트 기호를 표시할 수 있습니다.
테스트베드 가동
상단의 초록색 화살표 아이콘을 클릭하면 생성한 노드들과 링크가 초록색으로 활성화됩니다.
이제 VPC 시스템에 접속하여 네트워크 설정을 마무리해줍니다. 콘솔 아이콘을 클릭하면 터미널이 띄워지며 VPC의 개수만큼 탭이 생성될텐데요.
PC1
및 PC2
노드에 다음과 같이 IP 주소를 할당해봅니다.
# PC1
$ ip 10.0.2.11/24
# PC2
$ ip 10.0.2.12/24
두 VPC는 같은 스위치에 연결되어 있어서 통신이 가능하며, 이제 IP 주소도 주어졌기 때문에 ping을 날려 연결이 원활하게 되고 있음을 확인할 수 있습니다.
# PC1
$ ping 10.0.2.12
그 외...
이로써 간단한 실습은 마무리되었습니다. 좀 더 디테일한 네트워크 설정에 대해 궁금하다면 콘솔에서 ?
를 입력하여 관련 명령어들을 찾아보시길 권장합니다.
마지막으로, 프로젝트를 종료하더라도 각 VPC의 네트워크 설정을 유지하고자 한다면 save
명령어를 빠짐없이 입력하도록 합니다.