본문으로 바로가기
반응형

네트워킹의 왕도는 실습이다. - 피터 전


네트워크를 하시는 분들이라면 모를 수가 없는 피터 전 선생님의 명언입니다.

저도 네트워크를 공부하면서, 자격증을 따면서 느끼는 것은 네트워크는 '몸에 배어야 한다' 라는 것입니다.

콘솔만 봐도 자연스럽게 enable, configure terminal등이 나오게끔 하도록 몸에 배이도록 하는 것이 네트워크의 진정한 시작이라고 생각합니다.

그 시뮬레이션 프로그램 중 가장 많이 쓰이는 시뮬레이션인 GNS3에서 추가적인 Switch(Catalyst) 사용을 위한 IOU/IOL[각주:1]의 추가 과정입니다.


Cisco IOU/IOL이란? Cisco IOS on UNIX/IOS on Linux의 약자로써, Cisco 내부에서 사용하던 어플리케이션이다. CCIE R&S(Router & Switch) Lab에서 Troubleshooting용으로 사용되며 IOS랑 똑같이 CLI(명령줄 인터페이스)로 작동된다. PC의 Resource(자원)을 많이 잡아먹지 않아서 자주 활용된다.
GNS3는 Cisco社의 Switch(Catalyst)를 지원하지 않아서 이 IOU를 통해 Switch까지 시뮬레이션이 가능하다.


GNS3 특징
  • Cisco Packet Tracer(줄여서 CPT)에서 사용할 수 없었던 명령어들을 사용함으로써 더욱 더 풍부한 시뮬레이션이 가능하다.
  • Cisco社 이외의 다른 Vendor들의 장비들도(Juniper 등) 시뮬레이션이 가능하다.
  • CPT보다 더욱 더 실제적인 시뮬레이션이 가능하다.
본 게시글은 GNS3 V2.2.5 버전, Windows 10 1909 운영체제[각주:2], Google Chrome을 사용하여 다운로드 & 설치를 진행하고 있습니다. 추가적인 기능을 셋팅해야하는 새 버전이 나온다면 리빌딩 하겠습니다. (2020.01.27)


1. GNS3를 실행시킨 후 왼쪽 상단의 Edit -> Preferences 메뉴로 들어간다.

2. 왼쪽의 IOS on UNIX의 IOU Devices를 클릭하고 중앙 아래쪽 New 버튼을 클릭한다.

3. New IOU device template가 나오면서 IOU device의 서버의 종류를 설정할 수 있는데, IOU device는 외부 서버 또는 GNS3 VM에서만 작동시킬 수 있다.

자동으로 선택되어있는 'Run this IOU device on the GNS3 VM'을 확인하고 Next 버튼을 누른다.

4. IOU 파일을 불러드리는 과정이다. GNS3에서 지원하는 IOU의 리스트는 아래의 홈페이지를 참고한다.

이 과정에서는 Cisco IOU L2 15.1a를 추가한다. Browse... 버튼을 눌러서 IOU 파일을 로드한다.

5. Browse... 버튼을 눌러 IOU 파일을 불러오면 GNS3 VM 안에 IOU 파일을 복사하는 과정이 진행된다.

6. 복사가 완료되고 나면 Name에 자신이 사용하고 싶은 IOU 이름을 작성한다.

7. Finish 버튼을 누르면 추가된 IOU 장비와 장비의 설정 등이 나온다. IOU 장비는 IOS 장비와 다르게 장비를 추가 후 하단 Edit 버튼을 통해서 이더넷 어뎁터, 시리얼 어뎁터를 추가할 수 있다. OK를 눌러 저장한다.

8. 여기서부터 IOU 장비를 사용하기 위한 가장 중요한 단계가 남아있다.

IOU 장비는 IOS 장비와 다르게 특정한 License가 필요하다. 이 License가 없으면 IOU 장비를 사용할 수 없다. IOU 장비의 License를 발급하기 위하여 실행중인 GNS3 VM의 IP, 그리고 ID와 Password를 확인한다. 기본으로 설정되어있는 ID와 Password는 gns3/gns3이다.

9. FTP 프로그램을 이용하여 GNS3 VM에 접속한다. 대표적인 무료 FTP 프로그램으로 FileZilla가 있다.

호스트에 IP, 사용자명과 비밀번호에 각각 gns3, gns3, 포트번호에 22번을 입력 후 GNS3 VM에 FTP로 접속한다.[각주:3]

10. 접속 후 기본으로 접속되어있는 /home/gns3 폴더에 License 생성 파일을 업로드해준다.[각주:4]

#!/usr/bin/python3

import os
import socket
import hashlib
import struct

hostid = os.popen("hostid").read().strip()
hostname = socket.gethostname()
ioukey = int(hostid, 16)

for x in hostname:
    ioukey = ioukey + ord(x)

print("hostid=" + hostid + ", hostname=" + hostname + ", ioukey=" + hex(ioukey)[2: ])

iouPad1 = b'\x4B\x58\x21\x81\x56\x7B\x0D\xF3\x21\x43\x9B\x7E\xAC\x1D\xE6\x8A'
iouPad2 = b'\x80' + 39 * b'\0'

md5input = iouPad1 + iouPad2 + struct.pack('!i', ioukey) + iouPad1
iouLicense = hashlib.md5(md5input).hexdigest()[: 16]

print("[license]\n" + hostname + " = " + iouLicense + ";\n")

11. 라이센스 생성 파일을 업로드 후 위 GNS3 VM에서 Enter를 누르면 아래와 같은 화면이 뜨는데, 키보드의 방향키로 조작하여 Shell을 눌러준다.

12. shell로 접속이 되고나면 자동으로 위에서 접속했던 ftp 폴더인 /home/gns3로 접속된다. 여기서 python3 keygen.py를 입력하여 License를 생성한다.

13. 생성된 License를 GNS3 -> Preferences를 실행하여 왼쪽 사이드바의 IOS on UNIX를 클릭한 다음 IOU license에 똑같이 작성 후 OK 버튼을 누른다.

14. 왼쪽 상단 File -> New blank project를 통해서 새로운 프로젝트를 만들어준 후, 좌우 화살표가 있는 버튼을 누르면 추가한 장비가 나오게 되며 장비를 클릭하고 드래그하면 프로젝트에 장비를 추가할 수 있다.

장비가 추가되면 오른쪽 위의 Topology Summary에 추가한 장비의 Node 상태와 Console 정보를 볼 수 있다.[각주:5]

15. 추가된 장비에 마우스 오른쪽 버튼을 눌러서 Start 버튼을 눌러주면 장비가 시작된다.

16. 장비가 시작되면서 오른쪽 위의 Topology Summary에 있는 Node 상태가 빨간색 네모에서 초록색 동그라미로 변하는 것을 확인할 수 있다.

18. 실행된 장비를 더블 클릭하면 터미널이 나오면서 장비를 설정할 수 있다.


IOU/IOL L2 장비만 추가했지만 L3 장비도 똑같은 방법으로 추가해주시면 됩니다.

라이센스는 한 번만 생성해주시면 계속 사용 가능합니다.


IOU/IOL 파일은 Cisco社에 저작권이 있습니다.


  1. 보통은 IOU로 부르며, 일반적으로 IOL도 지칭한다. 이 게시글에서는 IOU/IOL 둘 다 사용한다. [본문으로]
  2. 'Ctrl + R' 후 뜨는 실행 창에 winver을 입력하여 자신의 Windows 10 버전을 확인할 수 있다. [본문으로]
  3. FileZilla 기준 첫 접속시 '알 수 없는 호스트키'가 뜨는 경우가 있는데 상관없이 '확인' 버튼을 눌러주면 접속된다. [본문으로]
  4. License 생성 파일의 확장자는 .py로 한다. [본문으로]
  5. 위에서부터 순서대로 Routers, Switches, End devices, Security devices, All devices, Cabling [본문으로]
반응형