이전에 1.5.3버전으로 작성한 것이 있으나


최신버전의 설정에 변화가 생겨서 새로 설치하는 겸, 한번 정리해서 올려봅니다.


설치가 조금 번거로워서 그렇지, 한 번 하고나면 패킷트레이서는 쳐다보지도 않게 됩니다.


지원되는 명령어가 압도적으로 많은건 당연하고,


실제 망의 장비나 VMware의 가상머신과 붙일 수 있기 때문에 확장성이 비할 바가 못 됩니다.

정말 못할게 없어져요.


단언컨대 GNS3, VMware만 있다면 실습환경 구축 끝입니다.




0. GNS3는 설치되어 있다고 가정합니다.


없으신 분은 아래에서 계정만드시고 로그인 하면 무료로 받을 수 있습니다.


현재 최신버전은 2.1.11이네요.

 

GNS3 다운로드: https://www.gns3.com/software/download


 

1. IOU 이미지 구하기


IOU 이미지라 함은 시스코 스위치의 가상구동용 OS라 생각하시면 됩니다.


IOU는 L2, L3가 있는데 정확하진 않지만 L2가 스위치, L3가 라우터인 듯 합니다.


구글에 "cisco iou image" 로 검색하면..?



2. IOU 키젠 구하기


IOU라는 시뮬이 프리웨어가 아닙니다. 따라서 인증된 키파일이 있어야 사용이 가능합니다.


다행인건 이 키파일을 만드는 것이 매우 쉽다는 거죠.


키젠으로 키값을 알아내고 텍스트파일로 만들어 넣어주면 됩니다.


이 키값이 디바이스마다 상이하므로 GNS3 VM 내에서 알아내야 합니다.


키젠은 파이썬으로 작성되어 있습니다.


처음 IOU를 사용할 때가 파이썬 버전2.7에서 3으로 넘어갈 때라.. 삽질을 했던 기억이 나네요.

 

아래분께 지금도 참 감사합니다.

 

 

 


http://forum.gns3.net/download/file.php?id=2950



3. GNS3 가상머신 파일(*.ova) 다운로드


스위치 운영체제인 CatOS는 IOU방식으로 구동되므로 다이나밉스에서 구동이 불가능합니다.


리눅스기반의 가상머신이 필요합니다.


참고로 GNS3와 GNS3 가상머신의 버전이 서로 일치해야 합니다.


같은 시점에서 다운로드 하신다면 신경쓰실일 없겠지만요.


가상머신의 버전도 2.1.11입니다.


다운받은 zip파일을 풀면 ova파일이 있습니다.


GNS3 가상머신 다운로드: https://www.gns3.com/software/download-vm




4. 가상화 프로그램 설치


GNS3 가상머신을 구동시켜줄 가상화 프로그램을 설치해야합니다.


VMware Workstation Player(비상업용), Oracle VirtualBox는 무료입니다.


VMware Workstation Player 다운로드: https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html


Oracle VirtualBox 다운로드: https://www.virtualbox.org/wiki/Downloads




5. 가상화 프로그램에서 GNS3 가상머신 불러오기


위에서 다운로드한 ova파일을 가상머신으로 만들 차례입니다.


GNS3 VM.ova를 실행해서 가상화 프로그램에 올립니다.

 

부팅이 끝나면 GNS3 VM의 IP주소가 나옵니다.

 

 

 

 

 

 

6. GNS3와 GNS3 VM 연동시키기

 

GNS3가 GNS3 VM을 인식하고, GNS3의 다이나밉스와 VM이 서로 같은 망에 있도록 해야합니다.

 

다이나밉스 서버는 본래 127.0.0.1에 바인딩 되도록 되어있으므로

 

GNS3 VM과 같은 망에 바인딩되도록 설정을 조정해야 합니다.

 

참고로 다이나밉스 서버를 네트워크에 연결된 어댑터에 바인딩하면

 

다른 PC에서도 가상화된 장비의 콘솔에 접근할 수 있게 됩니다.

 

만약 그렇게 한다면 GNS3 VM도 브리지로 구성해서 같은 네트워크에 붙여야 겠죠.

 

GNS3 메뉴의 Edit를 눌러 Preferences를 열고,

 

Server항목의 Host binding을 위 화면에서 본 GNS3 VM와 같은 망의 어댑터를 지정해줍니다.

 

 

 

 

다음 GNS3 VM 항목으로 넘어가서, Enable the GNS VM을 체크하고,

 

Virtualization engine과 VM name을 지정해줍니다.

 

 

 

 

설정이 잘 되면 아래처럼 서버리스트에 GNS3 VM이 추가되고 구동중이라는 것이 보입니다.

 

 

 

 

이렇게 GNS3와 GNS3 VM의 연동은 끝났습니다.

 

 

 

7. IOU키젠 업로드 및 라이센스 파일 만들기

 

앞서 언급했던 것처럼 키젠을 GNS3 VM에서 구동하고 키값을 알아내야 합니다.

 

이전과 바뀐 점이라면 이젠 웹에서 업로드가 아예 불가능합니다. 1.4버전부터 막혔다네요.

 

 

 

 

저번처럼 GNS3 VM에 lrzsz를 설치해서 올릴수도 있지만 이번엔 SFTP로 올려봅니다.

 

 

 

 

이제 콘솔을 열어서

 

 

 

 

python3 CiscoIOUKeygen.py 명령으로 키젠을 돌려주면 키값이 보입니다.

 

메모장으로 IOURC.txt 파일을 만들어서 안에

 

[license]

gns3vm = 73635fd3b0a13ad0;

 

이라고 적어서 저장해주시면 됩니다. 키값 끝에는 세미콜론이 있어야 합니다.

 

 

 

8. 라이센스파일 등록 및 IOU 이미지 업로드

 

GNS3 Preferences를 열고 IOS on UNIX 항목을 선택합니다.

 

Browse를 눌러 IOURC.txt 파일을 지정하면 이전에 입력한 값이 보입니다.

 

 

 

 

이제 드디어 IOU 이미지를 올립니다. IOU Devices 에서 New를 눌러줍니다.

 

 

 

 

Browse를 누르고 IOU 이미지를 선택하면 저절로 GNS3 VM에 업로드됩니다. Type은 일치되는 값으로 지정합니다.

 

 

 

 

IOU 장비가 추가되었습니다.

 

 

 

 

장비리스트에서 끌어다 놓으면 콘솔포트가 할당됩니다.

 

 

 

 

Xshell로 접속해보면 부팅되는 것이 보입니다.

 

 

 

 

스위치에서만 적용되는 명령인 이더채널을 확인해봅니다.

 

 

 

 

최신버전의 GNS3 v2.1.11 에서 시스코 스위치 부팅 성공!

Posted by 비형랑#
:




콘솔로 장비를 설정하고 통신이 가능한 상태가 되면 콘솔보단 원격에서 장비를 관리하게 된다.
원격으로 장비에 접근하려면 텔넷이나 SSH를 사용해야 하는데, 텔넷은 데이터를 암호화하지 않아 캡쳐될 경우 설정내역이 그대로 노출되게 된다.
실습망과 같이 상용네트웍이 아니라면 텔넷을 사용해도 문제가 없지만 보안이 요구되는 네트워크의 경우 매우 치명적이다.
데이터를 암호화하여 전송하는 SSH를 적용하고, 포트번호도 기본값에서 바꿔주면 데이터의 유출과 무분별한 접근을 차단할 수 있다.

요구사항
k9(crypto)기능이 포함된 Cisco IOS image.
ex) c3750e-universalk9-tar.122-35.SE5.tar

1. 호스트네임 설정
Router(config)#hostname keysco
keysco(config)#

2. 도메인네임 설정
keysco(config)#ip domain-name keysco.com
keysco(config)#

3. RSA 키 생성 (시스코 권고안에 따라 1024비트 사용)
keysco(config)#crypto key generate rsa  
The name for the keys will be: keysco.keysco.com
Choose the size of the key modulus in the range of 360 to 2048 for your
  General Purpose Keys. Choosing a key modulus greater than 512 may take
  a few minutes.

How many bits in the modulus [512]: 1024
% Generating 1024 bit RSA keys, keys will be non-exportable...[OK]

keysco(config)#
*Mar  1 00:02:18.263: %SSH-5-ENABLED: SSH 1.99 has been enabled
keysco(config)#


4. 인증을 위한 계정 설정
keysco(config)#username cisco secret cisco
keysco(config)#enable secret cisco

5. 계정 인증 및 SSH 접근 설정
keysco(config)#line vty 0 4
keysco(config-line)#login local
keysco(config-line)#transport input ssh
keysco(config-line)#

6. SSH 파라미터 설정 (v1보다 보안이 강력한 v2적용. v1+v2: no ip ssh version)
keysco(config)#ip ssh version 2
keysco(config)#ip ssh time-out ?
  <1-120>  SSH time-out interval (secs)

keysco(config)#ip ssh time-out 30
keysco(config)#ip ssh authentication-retries ?
  <0-5>  Number of authentication retries

keysco(config)#ip ssh authentication-retries 3
keysco(config)#

7. 포트 변경
keysco(config)#ip ssh port 2222 rotary 1 
keysco(config)#ip access-list extended sshBlock
keysco(config-ext-nacl)#permit tcp any any eq 2222
keysco(config-ext-nacl)#exit
keysco(config)#line vty 0 4
keysco(config-line)#rotary 1
keysco(config-line)#access-class sshBlock in

8. 검증
Xshell 5 (Build 1339)
Copyright (c) 2002-2017 NetSarang Computer, Inc. All rights reserved.

Type `help' to learn how to use Xshell prompt.
[c:\~]$ ssh 1.0.0.150 22


Connecting to 1.0.0.150:22...
Could not connect to '1.0.0.150' (port 22): Connection failed.

Type `help' to learn how to use Xshell prompt.
[c:\~]$ 
SSH 기본포트인 22번이 차단되었다.

Xshell 5 (Build 1339)
Copyright (c) 2002-2017 NetSarang Computer, Inc. All rights reserved.

Type `help' to learn how to use Xshell prompt.
[c:\~]$ ssh 1.0.0.150 2222


Connecting to 1.0.0.150:2222...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.


keysco>en
Password: 
keysco# 
새로 지정한 포트인 2222로 SSH연결이 성립되었다.

keysco#show ssh
Connection Version Mode Encryption  Hmac	 State	               Username
99         2.0     IN   aes128-cbc  hmac-sha1    Session started       cisco
99         2.0     OUT  aes128-cbc  hmac-sha1    Session started       cisco
%No SSHv1 server connections running.
keysco#
keysco#show ip ssh
SSH Enabled - version 2.0
Authentication timeout: 30 secs; Authentication retries: 3
라우터에서 확인


Posted by 비형랑#
:

GNS3 v.2.1.11의 최신버전으로 새로 작성한 글이 있으니 참고하세요.


https://se34.tistory.com/72






원래 시스코는 라우터만 만들던 회사였으나,

스위치를 만들던 회사인 카탈리스트를 인수하여 스위치까지 만드는 회사가 됩니다.


당시 카탈리스트에서 만드는 스위치에는 독자적인 CatOS(Catalyst-OS)를 탑재하였는데

시스코는 카탈리스트를 인수한 뒤에도 스위치의 운영체제로 CatOS를 유지합니다.


때문에 같은 회사의 제품임에도 불구하고 라우터와 스위치에 올라가는 운영체제가 다르게 되었는데,

이때문에 현재 스위치 시뮬레이터를 구동하는데 많은 어려움을 겪고 있습니다.


시스코의 라우터에 탑재되는 IOS라는 녀석은,

2005년도 즈음에 만들어진 다이나밉스(Dynamips)라는 무료 시뮬레이터 덕에

라우터의 IOS만 구하면 실제 라우터의 동작 99%를 가상으로 구현할 수 있었습니다.


비록 패킷트레이서처럼 토플로지를 직접 보면서 작업할 수도 없고, 설정도 약간 복잡한 편이지만

당시에는 패킷트레이서에 RIP인증도 없었고 안되는게 많았을 때라 다이나밉스를 거의 필수로 사용했습니다.


나중에는 다이나밉스를 기반으로한 Graphical Network Simulator 3, GNS3의 등장으로 매우 쉽게 라우터를 시뮬레이션 하게 됩니다.


다이나밉스가 0.2.8의 버전으로 정식 업그레이드를 종료했음에도 불구하고 GNS3개발자덕에 지속적으로 유지하고 있고,

나중엔 VPCS(Virtual PC Simulator), Wireshark, Host 브리징 등의 강력한 툴과 기능들을 시뮬레이터에 통합시킴으로써 많은 사용자를 확대해 나갑니다.


다만 CatOS의 특성상 다이나밉스에서 구동이 불가능해서 다이나밉스에서 스위치를 시뮬레이션 할수 없었습니다.

네트웍의 주요 장비인 L2스위치를 시뮬레이션 할 수 없다것은 네트워크 시뮬레이터로서는 치명적인 단점이었습니다.


하지만 GNS3 외에 달리 대안도 없기에 차선책으로 사용한 방법이 라우터에 NM-16ESW라는 스위칭 인터페이스를 꽂아 쓰는 것이었지만, 역시 라우터에 꽂아 쓰는 것이기에 실제 스위치와는 명령이 매우 다를 수 밖에 없었습니다.

간단한 VLAN등의 구현은 가능하지만 세부적인 STP조정, 이더채널 프로토콜 지정이 불가능 했으니 그저 더미허브보다 약간 나은 수준이었습니다. 요즘은 VLAN지정이 가능한 공유기도 나오니 고급 공유기 수준이랄까요.


최근 L3스위치를 가지고 실습할 게 많아져서 어쩔수 없이 패킷트레이서를 쓰고 있었습니다만

버전업이 되면서 명령이 많아졌다고 해도 역시 한계가 있더군요. 실제 돌아다니는 패킷을 캡쳐해볼수도 없고..


그래서 구글에서 검색에 검색을 거듭한 결과 IOS on UNIX, IOU라는 장비 시뮬레이터를 알게 됩니다.

대충 알아보니 시스코 내부 직원들이 교육용으로 사용한다는데, 장비 운영체제를 유닉스에서 가상으로 구동시켜놓고

그 유닉스에 접근해서 장비를 설정하는 개념이더군요. (그래서 Cisco IOU는 오픈소스가 아닙니다. 아쉽게도..)


그래서 이것저것 삽질해가며 IOU기반의 L2스위치를 GNS3에서 돌려보았습니다. 가장 먼저 확인한 것은 이더채널 커맨드..

LACP, PAgP 모두 구현 가능합니다. 드디어 카탈리스트 스위치를 GNS3에서 돌릴수 있습니다.


제가 늦게 알게 된건진 모르지만, 그래도 아직은 아는 분보단 모르는 분이 많을거 같아 구현하는 방법을 남겨봅니다.

(실제 이유가 다음에 또 헤매지 않기 위함인건 안비밀. 많이 헤맸습니다..)


스위치를 시뮬로 돌리게 되서 감동해서인지 서론이 길었습니다. 밑에 과정만 잘 따라와 주시면 됩니다~





0. GNS3는 당연히 깔려 있어야 합니다.


GNS3 다운로드: https://www.gns3.com/software


계정만드시고 로그인 하면 무료로 받을수 있습니다.



1. 가상화 솔루션 설치.


GNS3 가상머신을 구동시켜줄 가상화 솔루션을 설치해야합니다.


VMware Workstation Player(비상업용), Oracle VirtualBox는 무료입니다.


VMware Workstation Player 다운로드: http://www.vmware.com/products/player/playerpro-evaluation.html

Oracle VirtualBox 다운로드: https://www.virtualbox.org/wiki/Downloads




2. GNS3에서 제공하는 가상머신 파일(*.ova) 다운로드


가상화 솔루션에서 구동할 GNS3 가상머신을 내려받습니다.


https://github.com/GNS3/gns3-gui/releases


스크롤 쭈욱 내리시면 알파버전이 아닌 안정된 버전이 나옵니다.


사용할 GNS3와 버전이 일치해야 합니다. 원래 사용하던 GNS3는 1.4.x 였는데 가상머신을 1.5.3 받으니 에러 나더군요.


저는 VMware에서 구동할 것이기 때문에 VMware버전을 받았습니다





3. 가상머신에서 구동할 IOU 장비의 이미지 구하기


GNS3를 사용하기 전에 IOS를 추가하듯이, IOU장비도 이미지를 구해서 추가합니다.

구글에 검색하시면 구하실수 있을 겁니다.


이미지는 L2, L3가 있는데 구동해보니 L2는 L3스위치, L3는 라우터로 동작하는듯 합니다.






4. VMware, VirtualBox등의 가상화 솔루션에서 가상머신 파일 불러오기


이제 가상화 솔루션을 실행킵니다.


파일 들어가서 오픈 선택하시고 내려받은 "GNS3 VM.ova" 선택하시면 가상머신이 하나 추가됩니다.


사실 이 가상머신에서 모든 장비를 구현하라는게 GNS3의 권고안이고,


더 적은 CPU와 RAM을 가지고 많은 장비를 돌릴수 있습니다만


로컬서버에서 라우터를 돌리는게 확장성에서 더 유리하므로 IOU장비만 VM에서 구동하기로 합니다.




5. 가상화장치 부팅


가상머신을 설정하기 위해 부팅시킵니다. 우분투14.04 기반의 리눅스 시스템입니다.


vi는 없는데 python3는 올라가 있는 정말 요상한(?) 시스템입니다.


메롱하는 부팅이 끝나면 부팅된 GNS3 VM의 버전, IP, SSH계정 정보가 보입니다.







6. IOU License Generator를 가상머신으로 전송


IOU라는 시뮬레이터는 프리웨어가 아니라서 인증된 키파일을 올려야 사용할 수 있습니다.

이 키값이 디바이스마다 상이하므로 가상머신 내부에서 알아내야 합니다.


키젠은 "CiscoIOUKeygen.py" 라고 검색하시면 바로 나옵니다만.. 귀찮으신 분들을 위해!


http://forum.gns3.net/download/file.php?id=2950


받은 키젠을 가상머신에 올리는 방법은..


    - 웹 브라우저 열어서 <가상머신의아이피>:3080 입력하시면 흰색 배경의 GNS3 웹 페이지가 나옵니다.

    - 업로드 메뉴 들어가서 키젠 파일을 업로드 합니다.





업로드가 정상적으로 완료되면 파일의 경로가 리스트에 보이게 됩니다.


이게 정상적인 파일 업로드 방법 입니다만..

이전에는 업로드 단계에서 에러가 나서 SSH들어가서 ZMODEM으로 올렸습니다;;




7. 키젠 구동해서 키값 확인


GNS3 VM의 커맨드를 띄웁니다. 초기화면에서 OK를 누르고 Shell을 선택합니다.






키젠이 위치한 곳으로 경로를 옮기고 파일을 확인해봅니다.





이제 키젠을 구동해서 키값을 알아내면 됩니다만, 여기에서 삽질을 조금 했습니다.

현재 웹에 돌아다니는 키젠은 Python 2.7기준으로 작성된 것이 대부분인데,

최신의 GNS3 가상머신에는 Python 3가 기본으로 설치되어 있습니다.


따라서 키젠을 열어서 3버전으로 수정하시거나, Python 2.7을 설치하셔서 키젠을 구동해야 하지만

찾아보니 이미 GNS3 포럼에 Python 2.7, 3 모두 구동가능하도록 수정한 버전이 올라와있더군요.

올려주신 분이 무려 GNS3의 내부 패키지를 수정하시는 분입니다;;





6번 단계에 올려 놓은 링크는 수정된 버전의 키젠이니 실행만 하시면 됩니다. 아래처럼 키값이 보이면 성공입니다.





8. IOURC파일 만들기


IOURC파일 별거 없습니다. IOU의 라이센스를 인증하는 파일인데 2줄짜리 텍스트 파일입니다.


[license]

gns3vm = xxxxxxxxxxxxxxxx;


x표 한곳에 키젠에서 얻은 키값을 넣으시고 IOURC.txt 로 저장하시면 됩니다.

키값의 끝은 세미콜론이 있어야 에러가 안납니다.




9. GNS3에서 IOU설정


GNS3에서 가상머신, IOURC파일을 지정하고 IOU장비를 추가해야 합니다.


GNS3를 켜고 메뉴의 Edit - Preferences 로 들어갑니다



▲ Virtualization software는 설치한 가상화 솔루션을 고르시면 됩니다. VM name도 마찬가지..





▲ IOS on UNIX로 넘어와서.. IOURC파일의 위치를 지정해줍니다.




마지막으로.. 3번에서 받은 장비 이미지 파일을 L2, L3구분해서 IOU Devices에 추가해 주시면 설정은 끝납니다.




설정창 닫으시고 장비리스트 열어보시면 못보던 장비가 보일겁니다.


토플로지에 살포시 드래그 해놓으시고 스타트 해보시면 됩니다~


라우터에는 없는 커맨드.. 이더채널 명령이 모두 보입니다.





처음 설정할때는 2시간 정도 걸렸는데


캡쳐뜨려고 다시 해봤더니 10분도 안걸리네요.. ㅠㅠ




다른분들은 부디 저처럼 헤매지 마시길..

Posted by 비형랑#
: