GNS

✒️ 2025-05-22 15:10 내용 수정


GNS3

가상 라우터, 가상 스위치, 가상 방화벽 에뮬레이터


설치 및 환경설정

참고 자료 : NET Study GNS3 다운로드, 설치 및 설정(1) - 다운로드 & 설치, Gandalp's GNS 라우터에 VMWare 연결하기

GNS3 VM 설치

  1. https://gns3.com/software/download-vm 에서 GNS3 VM을 다운 받는다.
    • 원하는 버전이 없다면 구글 검색에서 다운로드 사이트들을 참고한다.
  2. GNS3 VM을 실행하고 연결 장치는 VMware를 선택한다. (VMWare가 없으면 따로 다운받아야 한다.)

gns 2.png

  1. GNS3 VM 이름과 VM 설치 경로를 선택하고 import를 누른다.

gns 3.png

  1. GNS3 VM의 두 네트워크 어댑터의 설정을 서로 바꿔준다.

gns 4.png
gns 5.png

  1. GNS3 VM을 실행하고, 아래와 같은 창이 뜨면 ssh 접속용 ip 주소와 사용자, 비밀번호를 기억해둔다.

gns 6.png


GNS3 설치

  1. GNS3 설치 파일을 실행한다.

gns 7.png

  1. 아래 화면들에서 Next를 선택해서 넘어간다.

gns 8.png

gns 9.png

gns 10.png

  1. Choose Components에서 Tool - WinPCAP을 선택 해제하고 Next를 선택한다.
    • 상위 버전의 WinPCAP 설치 예정

gns 11.png

  1. 설치 위치를 설정하고 Next를 눌러준다.

gns 12.png

  1. 설치 진행 중 나오는 Npcap 설치 화면에서 I Agree를 누른다.

gns 13.png

  1. Installation Options에서 3번째 항목이 선택된 상태로 Install을 누른다.

gns 14.png

  1. 설치 성공 혹은 실패가 떠도 넘어가고 아래 Solar-Putty 창이 뜨면 x버튼으로 닫거나 Continue로 이메일 입력 없이 넘어간다.

gns 16.png

  1. Installation Complete 창이 뜨면 Next를 누른다.

gns 17.png

  1. Solarwinds Standard Toolset 창이 뜨면 No를 선택하고 Next를 누른다.

gns 18.png

  1. 설치가 모두 완료되었으면 Start GNS3가 체크된 상태로 Finish를 누른다.

gns 19.png

  1. 프로그램 실행을 조금 기다린 후 뜨는 창에서 Setup Wizard에 Run appliances in a virtual machine을 선택하고 Next를 누른다.

gns 20.png

  1. Local server configuration에서 server path 파일 위치를 확인하고, host binding과 port가 아래처럼 되어있으면 Next를 눌러 넘어간다.

gns 21.png

  1. Local server status에서 local GNS3 server 연결이 완료되었다고 뜨고 Next를 누른다.

gns 22.png

  1. 아래처럼 경고창이 떠도 당황하지 말고 OK를 누른다. GNS3 VM 위치를 잡아줄 예정이다.

gns 23.png

  1. GNS3 VM 창에서 VMware를 선택하고, VM name을 GNS#GNS3 VM 설치에서 만든 항목을 찾아 선택한다. vCPU cores는 1개, RAM size는 2048 MB 기본 옵션으로 선택하고 Next를 누른다.

gns 24.png

  1. Summary 화면에서 모든 설정을 재확인하고 Finish를 눌러 완료한다.

gns 25.png

  1. 실습에선 2.2.21 버전을 사용했기에 업데이트 안내창이 떴다. 하지만 안정성을 위해 업데이트를 진행하지 않으므로 No를 눌러준다.

gns 26.png

  1. 만약 GNS3가 연결이 제대로 되지 않는다면 Windows 개인 네트워크 방화벽이 꺼져 있는지 확인한다.
    • 이 문제가 해결이 안되서 네트워크 드라이버도 재설치하고, 드라이버 삭제 후에 재설치도 해보고, 네트워크 초기화도 했지만 안되서 결국 포멧 했었다.. 특히 문제 해결 시도 중 cmd 창에서 장치 설정을 reset한 것이 나중에 다른 network usb 연결 때 장치 인식이 안되는 문제의 원인이 되어 포멧밖에는 해결 방법이 없었다. 다행히도 포멧 후에는 네트워크 어댑터도 잘 뜨고 GNS3에서 VMware와의 연결도 정상적이었다.

WinSCP 설치

  1. WinSCP 사이트 ( https://winscp.net/eng/download.php )에서 파일을 다운 받는다.
  2. 다운 받은 파일을 실행하고, 현재 사용자를 위한 설치를 선택한다.

winscp 1.png

  1. 사용자 계약을 수락한다.

winscp 2.png

  1. 일반 설치를 진행해도 되고, 나는 설치 위치를 지정하기 위해 사용자 지정 설치를 선택했다.

winscp 3.png

  1. 설치할 위치를 지정하고 다음을 누른다.

winscp 4.png

  1. 구성 요소 설치는 기본 설정대로 두고 다음을 누른다.

winscp 5.png

  1. 선택적 기능 적용도 기본 옵션으로 둔 후 다음을 누른다.(바탕화면 아이콘은 선택 시 제외해도 된다.)

winscp 6.png

  1. 사용자 인터페이스 스타일을 기본인 커맨더로 지정하고 다음을 누른다.

winscp 7.png

  1. 설치 준비 완료 창이 뜨면 옵션을 확인하고 설치를 누른다.

winscp 8.png

  1. 설치가 완료되면 시작 페이지 열기를 체크 해제하고 WinSCP 실행을 체크한 상태로 완료를 누른다.

winscp 9.png

  1. WinSCP에서 GNS#GNS3 설치의 5번 항목에서 본 아이피, 사용자 이름, 비밀번호를 입력한다.

winscp 10.png

  1. 연결이 정상적으로 되었다면 호스트 키를 캐시에 추가하라는 창이 뜨는데, ssh에 처음 접속할 때는 암호화 키를 생성해야 하고, 이를 통해 접속할 수 있으므로 "예"를 눌러준다.

  2. 연결이 성공적으로 끝나면 CiscoIOUKeygen.py 파일을 GNS3로 전송해준다.

    • CiscoIOUKeygen.py 는 Cisco IOU의 라이센스 키를 생성하는 파일이다.
    • 참고 자료 : Online CCNA CCNP Classes
      • 위 링크의 원문에 있는 주의사항을 꼭 읽어볼 것 (=> Therefore, it should only be used for testing and educational purposes on a lab environment.)
    • ip와 네트워크 문제 때문에 WinSCP로 GNS3 연결을 할 수 없어 대신에 CentOS 7 가상머신에서 CiscoIOUKeygen.py을 받아 SFTP로 GNS3에 전송했다.

Cisco license 생성

  1. GNS3 VM에서 enter를 눌러 메뉴창을 띄운 다음 Shell를 방향키로 선택한 후 enter를 누른다.

winscp 11.png

  1. 셸에서 sudo su로 root 계정으로 전환한 후 home에 CiscoIOUKeygen.py 파일이 있는지 확인한다.
  2. python3 CiscoIOUKeygen.pyCiscoIOUKeygen.py 파일을 실행해준다.
  3. 실행 결과로 나온 라인에서 gns3vm 부분의 코드를 확인하여 iourc.txt에 해당 내용을 적어둔다.
    • 운영체제별로 코드가 다르다.

winscp 12.png


GNS3 IOU 설정

  1. 이번엔 GNS3에서 메뉴 중 Edit - Preference를 선택한다.

gns 27.png

  1. General에서 Console applications를 선택하고, Console settings에서 Edit를 누른다.

gns 28.png

  1. Choose a predefined command에서 SuperPutty를 찾아 선택한 후 OK를 누른다.

gns 29.png

  1. 이번엔 IOS on UNIX 메뉴를 눌러 Browse를 누른다.

gns 31.png

  1. GNS#Cisco license 생성의 5번에 확인한 license 항목을 적어둔 메모장 파일의 위치를 지정해준다.

gns 30.png
gns 32.png

  1. 파일이 정상적으로 인식되었다면 아래처럼 IOU license 항목에 메모장에 쓴 내용이 그대로 들어있다.

gns 33.png

  1. 이번엔 IOU Devices 메뉴를 눌러 New를 누른다.

gns 34.png

  1. 새로 뜨는 창에서 Next를 누른다.

gns 35.png

  1. Name을 Switch로 만들고 i86bi-linux-l2-adventerprisek9-15.2d.bin 파일을 선택해준다. 선택 후에는 Finish를 눌러 완료한다.
    • 구글에 검색하면 다운 받는 링크들이 존재한다.

gns 36.png

  1. 다시 7번 과정으로 돌아가서 New를 눌러 이번엔 Router를 추가한다.
  2. Name에 Router를 입력하고 New Image를 선택해서 L3 image로 바꾼 후, i86bi-linux-l3-adventerprisek9-15.4.1T.bin 파일을 선택한다.
  3. 선택이 모두 완료되었으면 Finish를 눌러 장치 추가를 완료한다.

gns 37.png

  1. 장치들이 제대로 추가되었는지 확인한다.

gns 38.png

  1. 이번엔 VMware VMs 메뉴를 눌러 New를 누른다.

gns 39.png

  1. 새 창에서 Next를 누른다.

gns 40.png

  1. VM list에서 추가할 VM을 선택하고 Finish를 눌러 장치를 추가한다.
  2. 장치가 2개 있다면 둘 다 추가한다.(연결 테스트를 위해 2대의 VM이 필요)
  3. VM을 2대 추가했다면 Apply를 누르고 OK를 눌러 설정을 저장한다.

gns 41.png
gns 42.png

  1. GNS3를 종료한 후 이번엔 SuperPuTTY 파일을 인터넷에서 받아 압축을 해제한 후 폴더 내에 있는 파일과 디렉터리를 모두 복사한다.

gns 43.png

  1. 복사한 파일과 디렉터리를 GNS3 폴더에 붙여넣기 한다. 같은 파일은 덮어쓰기 해준다.

gns 44.png

  1. VMware에서 작동중이었던 VM을 모두 shutdown 시켜주고, 메뉴창에서 Edit - Virtual Network Editor를 선택한다.
  2. Change Settings를 누르면 VMnet0번도 화면에 뜬다.
    • VMnet8은 외부 인터넷 연결을 해준다.
    • VMnet0은 Bridged 모드를 가능하게 해준다.
    • 두 네트워크는 삭제하면 안된다.

gns 46.png

gns 47.png

  1. Add Network를 선택해서 VMnet2부터 VMnet7까지 추가한다.
  2. 그리고 VMnet0번과 VMnet8번을 제외한 모든 VMnet은 Use local DHCP service to distribute IP address to VMs를 체크 해제한다.

gns 48.png
gns 49.png
gns 50.png
gns 51.png

  1. 만약 집에서 작업을 한다면 Subnet Address에서 중복되는 주소가 없어서 문제가 없으나, 학원 등에서 수강 하는 실습 환경에서는 주소가 겹칠 수 있기 때문에 이 때는 Subnet IP의 3번째 자릿수를 변경해준다.

gns 52.png

  1. 마지막으로 VMnet8번만 NAT, 나머지는 Host-only인지 확인한 후, Apply를 누른 후 OK를 누른다.
  2. 설정이 완료되면 컴퓨터를 재부팅한다.
  3. 재부팅 후 제어판 - 네트워크 및 인터넷 - 네트워트 연결 창을 열면 VMware에서 추가한 네트워크 어댑터가 추가된 것을 확인할 수 있다.
    • 이제 GNS3에서 프로젝트를 생성할 준비가 완료되었다.

gns 53.png


GNS3 Project 생성 및 네트워크 설정

  1. GNS3를 실행시키고, VMware의 gns3.vm이 자동으로 켜질 때까지 대기한다.
  2. 화면이 GNS#GNS3 VM 설치의 5번 화면이 뜨면 VMware는 잠시 최소화 시키고 GNS3로 돌아와서 프로젝트를 생성한다. 프로젝트의 이름과 위치를 지정하고 OK를 눌러 생성한다.

gns project 1.png

  1. 왼쪽 아이콘들 중 아래에서 2번째 항목을 누르면 모든 장치를 볼 수 있다. 이 중에서 VM 2대, Cloud(서버는 로컬 기본), Router, Switch, VPCS(서버는 로컬 기본)을 마우스로 드래그 앤 드롭해서 중앙 화면에 배치한다.

gns project 2.png

  1. 배치 후 위쪽 메뉴에 초록색 삼각형 버튼(시작버튼)을 눌러 모든 장치의 전원을 켠다.
  2. 장치들이 정상적으로 켜졌다면 오른쪽 Node 창에 녹색 불이 들어온 것을 볼 수 있다.

gns project 3.png
gns project 4.png

  1. VM 운영체제(서버)랑 Switch랑 연결할 때는 반드시 전원을 끈 상태에서 연결해야 하므로 빨간색 네모 버튼(정지 버튼)을 눌러 모든 장치의 전원을 다시 끈다.

gns project 5.png
gns project 6.png

  1. 각 아이콘의 이름을 더블 클릭하면 이름을 변경할 수 있고, 드래그하면 위치를 바꿀 수 있다. 좀 더 보기 편하게 아래처럼 이름을 변경했다.

gns project 7.png

  1. Switch 1개 당 VMnet 1개의 네트워크에 연결한다. 실습에서 VM 장치 2개를 Switch에 연결하기 위해 먼저 VMware에서 해당 장치들의 Device에서 Network Adapter를 Custom - VMnet1(Host-only)로 변경한다.
    • 만약 Switch에 여러 개의 서버가 연결될 경우, 같은 Switch에 연결되는 서버들은 같은 VMnet 번호를 가진다.
    • ex) vmnet1 = 192.168.213.0/24
    • 주의사항 : ip를 할당할 때는 1~9까지는 사용하지 않는다.
      • VMnet이 자동으로 사용하는 번호다.

gns project 8.png

  1. 다시 GNS3로 돌아와서 장치들을 링크로 연결한다.
    • 왼쪽 아이콘에서 랜 케이블처럼 생긴 버튼을 누르면 장치들간의 링크를 연결할 수 있는데, 클릭하면 이더넷과 시리얼을 선택할 수 있다.
    • 우선은 장치들끼리 이더넷으로 순차적 연결을 해준다.
    • 링크를 잘못 연결했다면 연결한 링크에 우클릭 - delete를 선택해서 지울 수 있다.

gns project 9.png

  1. 연결이 완료되었으면 Router의 클라우드와 연결되는 이더넷과 Switch랑 연결되는 이더넷쪽에 배정할 ip를 텍스트 박스로 추가한다.
    • 텍스트 박스는 위쪽 아이콘 메뉴 중 연필 모양 아이콘이다.
  2. 그 다음 사각 점선 아이콘을 눌러 박스를 생성하고, 내부와 외부 네트워크끼리 포함되도록 영역을 설정한다.

gns project 10.png

  1. 박스에 우클릭을 하면 속성이 뜨는데 Style로 색이나 테두리 등을 지정할 수 있고, Raise one layer는 앞으로 가져오기, Lower one layer는 뒤로 밀어내기다.

gns project 11.png
gns project 12.png

  1. Router를 기준으로 내부 네트워크와 외부 네트워크를 작성 완료했다면 이제 다시 위쪽 초록색 삼각형 버튼(실행 버튼)을 눌러 모든 장치들의 전원을 켜 준다.
    • 주의 사항 : 직접 VMware의 장치를 수동 부팅 시켜버리면 연결되지 않는다.
    • CentOS만 다시 쓰고 싶다면 LAN 카드를 Bridged로 변경해야 한다.

gns project 13.png

  1. 전원이 켜진 VM 장치들을 root 계정으로 접속한다.
  2. DHCP 서버 컴퓨터의 네트워크 설정을 GNS3에서 작성한대로 바꿔준다. 적용 후 네트워크를 한 번 껐다가 켜야 적용이 된다.
    • ip 주소는 DHCP 서버에서 사용하려는 주소로, 게이트웨이는 Router의 e0/1 주소로 설정

gns project 14.png

  1. 두 번째 VM 장치는 IPv4를 자동으로 받도록 설정해준다. 적용 후 네트워크를 한 번 껐다가 켜야 적용이 된다.

gns project 15.png

  1. 이제 Router를 설정한다. 먼저 GNS3에서 라우터 아이콘을 더블 클릭해서 SuperPuTTY Options을 열어준다.

    • 만약 Windows 기능 설치 창이 뜬다면 설치를 진행하고 다시 더블 클릭한다.
  2. putty.exe 파일의 위치를 Browse를 눌러서 나오는 창에서 exe 파일을 찾아서 눌러주고 Advanced로 이동한다.

gns project 16.png

  1. Only allow single instance of SuperPuTTY to run 만 체크해주고, 나머지는 체크 해제를 한 후 OK를 누른다.

gns project 17.png

  1. 창이 종료될 때 뜨는 새 창은 닫아주고 다시 Router 아이콘을 더블 클릭하면 SuperPuTTY 창이 뜬다.
    • tip : GNS3 창에서 PC1를 더블 클릭하면 SuperPuTTY에 창이 추가된다.
    • Commands에 명령을 입력하면 두 창에 모두 입력이 들어간다.

gns project 18.png

  1. command에 다음 내용을 입력한다. 마지막에 ping 확인을 통해 Router와 이더넷 연결(로컬의 공유기)을 확인한다.
# conf t
# int e 0/0
# ip add e0/0아이피주소 서브넷마스크
# no shut

# int e 0/1
# ip add e0/1아이피주소 서브넷마스크
# no shut
# exit

# ip route 0.0.0.0 0.0.0.0 로컬게이트웨이
# do ping 8.8.8.8

gns project 19.png
gns project 20.png

  1. 핑을 확인했다면 아래 내용도 작성해준다.
# access-list 1 permit 192.168.0.0 0.0.255.255
# ip nat inside source list 1 int e 0/0 overload

# conf t
# int e 0/1
# ip nat inside

# int e 0/0
# ip nat outside
# end

# copy run start

gns project 21.png

  1. VM에서 ping 8.8.8.8로 외부 통신을, ping 라우터ip로 내부 통신을 확인한다.

gns project 22.png
gns project 23.png