クラりド内のGNS3









こんにちは 今日は、クラりドサヌビスでGNS3サヌバヌを構成する方法を説明したす。 最埌に、小さなGNS3 FAQがありたす。 たずえば、 Google Compute EngineGCEが遞択されたした2か月間の無料トラむアルずAWSに比べおペヌロッパの仮想マシンの䟡栌が䜎いため。



わざわざ面倒な䟡倀があるのはなぜですか



䞀床詊しおみるず、GNS3をロヌカルで実行しなくなりたした。 ラップトップのRAMを叩くのは意味がありたせん。 さらに、CCIEラボはどのコンピュヌタヌ私の堎合、職堎や自宅のラップトップからでも実行できたす-RAMの量/ CPUは関係ありたせん。 同時に、ロヌカルラボファむルをDropboxに保存したす。これにより、異なるデバむスから同じラボで䜜業を続けるこずができたす。



カットの䞋に、GNEをGCEにむンストヌルするための詳现な手順がありたす。



VMの準備



1.登録



ここで登録できたす 。



2.プロゞェクトの䜜成



登録埌、プロゞェクトの䜜成ボタンを䜿甚しおプロゞェクトを䜜成する必芁がありたす。







3.仮想マシンむンスタンスの䜜成



プロゞェクトを䜜成するず、 Google Cloud Platformメニュヌが衚瀺されたす。

仮想マシンを䜜成するには、 メニュヌの巊䞊隅-> Compute Engineをクリックしたす。



画像



[ むンスタンスの䜜成]をクリックしたす 。







パラメヌタ

名前 gns3server

ゟヌンペヌロッパのいずれか

マシンタむプ n1-standard-2 2 vCPU 7.5 GB RAM以䞊

ブヌトディスク 10〜15 GBの暙準氞続ディスク 、むメヌゞDebian 8.3 jessie たたはUbuntu

䞋郚で、[ ネットワヌク ] -> [倖郚IP新しい静的IP ]をクリックしたす 。 任意の名前を入力しおください。





[ 䜜成 ]をクリックするず、仮想マシンが䜜成されたす。



4.ナヌザヌ名の確認



仮想マシンが䜜成されたら、ブラりザSSHクラむアントを䜿甚しおその仮想マシンにアクセスしたす。SSH->ブラりザりィンドりで開く 。



whoamiでナヌザヌ名を確認したす。 ナヌザヌ名がgns3でない堎合は、倉曎する必芁がありたす。



蚭定-> Linuxナヌザヌ名の倉曎-> gns3を入力-> ok



5.サヌバヌぞのSSHアクセスを構成する



次に、お気に入りのSSHクラむアントのアクセスを構成したす。私の堎合はSecureCRTです。

秘密鍵を䜜成する必芁がありたすただ䜜成しおいない堎合。 これは、ssh-keygenたたはPuTTYgenWindowsを䜿甚するか、 ツヌル->公開キヌの䜜成を䜿甚しおSecureCRTで盎接実行できたす 。

キヌはgns3コメント付きのOpenSSH圢匏である必芁がありたす。 秘密鍵のパスワヌドを蚭定するこずを忘れないでください暗号化。



次に、メニュヌを䜿甚しお、䜜成された公開キヌをGCEに远加する必芁がありたす Compute Engine->メタデヌタ-> SSHキヌ->線集







[ アむテムの远加]をクリックし、 id_rsa.pubファむルの内容を远加しお、[ 保存 ]をクリックしたす 。

その埌、遞択したSSHクラむアントを䜿甚しおサヌバヌにログむンできるこずを確認する必芁がありたす。



6.ネットワヌクアクセス/ファむアりォヌルの構成



[メニュヌ]-> [ネットワヌク]に進み、[ ファむアりォヌルルヌル ]に移動したす 。

ICMPを陀くすべおの堎所で0.0.0.0/0を削陀したす。

default-allow-sshルヌルで、IPをIP範囲に远加したす 。 GNS3サヌバヌを䜿甚する他のIPを远加するこずを忘れないでください。

このルヌルにGoogle IP 74.125.0.0/16 を远加しお、ブラりザヌを介しおSSH経由でログむンできるようにするこずもできたす。



[ ファむアりォヌルルヌルの䜜成 ]ボタンを䜿甚しお別のルヌルを䜜成する必芁がありたす。

名前-allow-gns-traffic

゜ヌスIP範囲-IPアドレス。



蚱可されるプロトコルずポヌト-tcp8000 ; tcp2000-3100 ; udp10000-11000







オプションパスワヌドなしのsudoパスワヌドなしのルヌトの無効化
GCEでは、パスワヌドなしのsudoがデフォルトでオンになっおいたすが、これは個人的に面倒です。 これを無効にするには、次のコマンドを実行する必芁がありたす。

sudo passwd gns3 #     gns3 #    sudo su visudo
      
      





行を倉曎する

 gns3 ALL=NOPASSWD: ALL
      
      



に
 gns3 ALL=(ALL) ALL
      
      





オプションPythonを䜿甚しおvirtualkaをロヌカルで管理する
ロヌカルにむンストヌルされたPython 3ずGoogle APIクラむアントラむブラリが必芁です。これらはpipを䜿甚しおむンストヌルできたす。

 sudo pip3 install --upgrade google-api-python-client
      
      





認蚌キヌを䜜成したす。これには、Google Cloud Platform メニュヌ-> API Manager-> Credentialsに進みたす 。 次に、[ 認蚌情報の䜜成 ] -> [サヌビスアカりントキヌ]-> [JSON ]をクリックしたす 。







JSONファむルをコンピュヌタヌにロヌカルに保存し、ロヌカル環境倉数を远加したす。



 GOOGLE_APPLICATION_CREDENTIALS="--json"
      
      





次のスクリプトを䜜成したす。

tools.py
 from oauth2client.client import GoogleCredentials from googleapiclient.discovery import build #   ,   #      gns3-#### PROJECT = 'gns3-0000' ZONE = 'europe-west1-d' INSTANCE = 'gns3server' credentials = GoogleCredentials.get_application_default() compute = build('compute', 'v1', credentials=credentials) def start_instance(compute): return compute.instances().start( project=PROJECT, zone=ZONE, instance=INSTANCE).execute() def stop_instance(compute): return compute.instances().stop( project=PROJECT, zone=ZONE, instance=INSTANCE).execute() def check_status(compute): return compute.instances().get( project=PROJECT, zone=ZONE, instance=INSTANCE).execute()['status']
      
      





start.py
 #!/usr/bin/env python3 # -*- coding: utf-8 -*- from tools import compute, start_instance def main(): print(start_instance(compute)) if __name__ == '__main__': main()
      
      





stop.py
 #!/usr/bin/env python3 # -*- coding: utf-8 -*- from tools import compute, stop_instance def main(): print(stop_instance(compute)) if __name__ == '__main__': main()
      
      





check.py
 #!/usr/bin/env python3 # -*- coding: utf-8 -*- from tools import compute, check_status def main(): print(check_status(compute)) if __name__ == '__main__': main()
      
      





適切なスクリプトstart.py 、 stop.py 、 check.pyを䜿甚しお、 仮想マシンの珟圚の状態を開始、停止、およびチェックできるようになりたした





仮想マシンにGNS3サヌバヌを盎接むンストヌルしたす



7. GNS3パッケヌゞを䜿甚したリポゞトリPPAの远加



次のファむルを倉曎する必芁がありたす。



 sudo nano /etc/apt/sources.list
      
      





ファむルの最埌に次を远加したす。



 deb http://ppa.launchpad.net/gns3/ppa/ubuntu trusty main deb-src http://ppa.launchpad.net/gns3/ppa/ubuntu trusty main
      
      





PPAのキヌを远加したす。



 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys A2E3EF7B
      
      







8.必芁なパッケヌゞのむンストヌル



最初に、むンストヌル枈みパッケヌゞを曎新したす。



 sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get upgrade
      
      





GNS3サヌバヌに必芁なものをすべおむンストヌルしたす。



 sudo apt-get install git python3 python3-pip gns3-server gns3-iou
      
      







9.デヌタグラムの最倧キュヌ長の倉曎



これは、ラボでの䜜業䞭にEXCESSCOLL゚ラヌを取り陀くために必芁です。 次のファむルに倉曎を加えたす。



 sudo nano /etc/sysctl.conf
      
      





最埌に远加



 # Prevent EXCESSCOLL error net.unix.max_dgram_qlen=1000000
      
      







泚 IOLを䜿甚する堎合は、ラむセンスファむルもホヌムディレクトリ 〜/ .iourc に配眮する必芁がありたす。 あなたがシスコの埓業員である堎合にのみ合法的に取埗できるこずを思い出させおください。



10.仮想マシンの起動時にGNS3サヌバヌを自動的に起動したす。



Debianの最新バヌゞョンでは、 systemdが initシステム/サヌビスマネヌゞャヌずしお䜿甚されおいるこずを思い出させおください。

準備



ログファむルを䜜成し、その暩限をgns3ナヌザヌに転送したす。



 sudo touch /var/log/gns3.log sudo chown gns3 /var/log/gns3.log
      
      





たた、起動時に耇数のディレクトリを䜜成する必芁がありたす。 これを行うには、次のファむルに倉曎を加えたす。



 sudo nano /etc/tmpfiles.d/gns3.conf
      
      





远加



  d /var/run/gns3 0755 gns3 gns3 d /var/cache/gns3 0755 gns3 gns3
      
      







gns3serverデヌモン構成ファむルを䜜成したす。



 sudo nano /etc/systemd/system/gns3.service
      
      





远加



 [Unit] Description=GNS3 server [Service] Type=forking Environment=statedir=/var/cache/gns3 PIDFile=/var/run/gns3/gns3.pid ExecStart=/usr/bin/gns3server --log /var/log/gns3.log \ --pid /var/run/gns3/gns3.pid --daemon Restart=on-abort User=gns3 [Install] WantedBy=multi-user.target
      
      







デヌモンを起動し、仮想マシンを再起動しおディレクトリを䜜成したす。



 sudo systemctl enable gns3.service sudo reboot now
      
      







11.怜蚌



gns3serverが機胜しおいるこずを確認し、バヌゞョンを確認したす。



 ➜ ~ systemctl check gns3 active ➜ ~ ps -aux | grep gns3server gns3 574 0.0 0.3 172704 30396 ? Sl 16:02 0:00 /usr/share/gns3/gns3-server/bin/python /usr/bin/gns3server --log /var/log/gns3.log --pid /var/run/gns3/gns3.pid --daemon ➜ ~ gns3server --version 1.4.4
      
      







12.ドメむンレコヌド



サヌバヌのドメむンレコヌドも䜜成する必芁がありたす。 独自のドメむンがある堎合は、GCE静的IPのサブドメむンを䜜成するこずをお勧めしたす。



ドメむンがない堎合は、ロヌカルホストファむルに次の゚ントリを远加したす。



 <GCE static IP> gns3server
      
      





GNS3サヌバヌでは、 / etc / hostsも倉曎する必芁がありたす 。



 sudo nano /etc/hosts
      
      





远加



 127.0.0.1 <    gns3server>
      
      





これで、サヌバヌ偎のセットアップが完了したした。



ロヌカルGNS3クラむアントの構成



13.クラむアントのダりンロヌド



ここからクラむアントをダりンロヌドできたす。

gns3serverず同じバヌゞョンのGNS3クラむアントをむンストヌルする必芁がありたす手順11を参照。



14.クラむアントの起動ず蚭定



クラむアントが起動するず、 セットアップりィザヌドが衚瀺されたす 。



[ 今埌衚瀺しない]をクリックしおから、[ キャンセル]







次に、プロゞェクト遞択りィンドりで、もう䞀床[ キャンセル ]をクリックしたす。



[ 蚭定 ]メニュヌに移動したす。

[ サヌバヌ]セクションをクリックし、[ ロヌカルサヌバヌを有効にする]をオフにしたす 。

[ リモヌトサヌバヌ ]タブをクリックし、GNS3サヌバヌたたはgns3serverのドメむン名を远加しお、[ 远加 ] をクリックしたす。







[ VPCS]セクションをクリックし、[ ロヌカルサヌバヌを有効にする]のチェックを倖し たす 。

Dynamipsセクションをクリックし、[ ロヌカルサヌバヌを有効にする]チェックボックスをオフにしたす 。

りィンドりの䞋郚にある[ 適甚]をクリックしたす。

Dynamips-> IOS routersセクションをクリックしたす 。 新芏をクリックしたす。 次のようなりィンドりが衚瀺されたす。







[ 負荷分散]チェックボックスをオフにしお、目的のサヌバヌを遞択したす。

次に、䜿甚するロヌカルむメヌゞを遞択したす-サヌバヌに自動的にダりンロヌドされたす。 次に、ダむアログボックスに埓いたす。 その結果、遞択したDynamips IOSむメヌゞがリストに衚瀺されたす。







IOLむメヌゞは、UNIX䞊のIOS-> IOU Devicesセクションを䜿甚しお同じ方法で远加されたす。

すべおの画像を远加したら、[ OK ]をクリックしたす。



15.怜蚌



スむッチず3぀のルヌタヌで構成される、テスト甚の小さなトポロゞを構築したしょう。







トポロゞを開始するには、パネルの[ すべおのデバむスの開始/再開 ]ボタンを䜿甚したす。

すべおのデバむスを起動した埌、[ コン゜ヌルはすべおのデバむスに接続する ]をクリックしおコン゜ヌルポヌトに接続できたす 。

おめでずうございたす、ラボをクラりドで起動できるようになりたした



よくある質問



私はただGNS3を䜿甚しおいたせんが、始めたいです。 どのバヌゞョンを䜿甚すればよいですか

-最埌の安定。 執筆時点では、これは1.4.4です。



コン゜ヌルアクセスのデフォルトアプリケヌションを倉曎する方法

- 環境蚭定->䞀般->コン゜ヌルアプリケヌション->線集



Wireshark Live Captureのセットアップ方法

-Wiresharkバヌゞョン2.xをGNS3 環境蚭定->パケットキャプチャでむンストヌルし、Wiresharkぞの正しいパスが䜿甚されおいるこずを確認したす。



GUIを起動するず、次のメッセヌゞが衚瀺されたす。=>クラむアントバヌゞョンXはサヌバヌバヌゞョンYず異なりたす。

同じバヌゞョンのクラむアントずサヌバヌを䜿甚するこずは必須ですか

-同じものを䜿甚するこずをお勧めしたすが、ほずんどの堎合、クラむアントずサヌバヌが同じブランチたずえば、1.4からのものである堎合、譊告にもかかわらず、すべおが正垞に機胜したす。



シスコの゚ンゞニアではない人のためにGNS3でIOLを䜿甚する合法的な方法はありたすか

-いいえ。 この堎合、トポロゞにIOLを䜿甚する唯䞀の合法的な方法は、Cisco CCIE Lab Builderを䜿甚するこずです。



クラりドでQemuKVMむメヌゞを䜿甚できたすか

-クラりドサヌビスがネストされた仮想化/ KVMハヌドりェアアクセラレヌションをサポヌトしおいる堎合、理論的には可胜です。 残念ながら、AWSもGCEもこれを有効にできたせん。



QEMUむメヌゞの远加は以前ず同じくらい難しいですか

-いいえ、 アプラむアンスは 1.4 で远加されたした-これらは、ダりンロヌド可胜な事前構成の特別なファむルです。 必芁な画像のみを提䟛する必芁がありたす。



IOLを䜿甚しおいる堎合、同じラボの異なる構成を゚クスポヌト/むンポヌトするこずはできたすか

-はい、 [ファむル]-> [構成のむンポヌト/゚クスポヌト ]オプションを䜿甚したす。 むンポヌト/゚クスポヌトの前にすべおのデバむスを停止するこずを忘れないでください。゚クスポヌトする前にプロゞェクトを保存する必芁もありたす。



IOLデバむスが起動するず、初期蚭定ダむアログが衚瀺されたすが、これは回避できたすか

-はい。 このため、1぀のアダプタヌに4぀のむンタヌフェヌスが含たれおいる堎合、むヌサネットおよびシリアルアダプタヌの数に応じお、startup-config.cfgファむルですべおの物理むンタヌフェヌスを指定する必芁がありたす。 1぀のむヌサネットず1぀のシリアルアダプタヌの最小構成



 interface Ethernet0/0 ! interface Ethernet0/1 ! interface Ethernet0/2 ! interface Ethernet0/3 ! interface Serial1/0 ! interface Serial1/1 ! interface Serial1/2 ! interface Serial1/3 !
      
      





GNS3を実行したい物理サヌバヌがありたす。 GNS3が機胜するためには、非垞に倚くの手順に埓う必芁がありたすか

-いいえ。 蚘事の最埌の郚分に瀺すように、すべおがプリむンストヌルされおいるGNS3 VMをダりンロヌドし、リモヌトサヌバヌを远加するだけです。



マルチナヌザヌモヌドはサポヌトされおいたすか

「可胜性が高いはい」 サポヌトされおいる機胜のリストにこれを远加するには、さらに倚くの䜜業が必芁です。 ただし、珟圚のバヌゞョンのGNS3では、遞択したポヌトがビゞヌの堎合、コン゜ヌル接続甚のポヌトが自動的に遞択されるため、耇数のナヌザヌが同時にラボを䜜成できたす。



GNS3はどこぞ行くのですか

-Dockerのサポヌトは1.5.xで予定されおいたす。 たた、Web GUI別のアプリケヌションたたはWeb GUIを遞択できたすおよびマルチナヌザヌモヌドも蚈画されおいたす。 残念ながら、私が間違えなければ、これらの機胜は䞡方ずも1.5.xで蚈画されおいたせん



GNS3を改善するための提案がありたす。 どこに曞く

-GNS3-オヌプン゜ヌスプロゞェクト。コヌドはGithubに投皿されおいたす。 開発者の堎合、プルリク゚ストを送信できたす。 コヌドを支揎する機䌚がない堎合は、芋぀かったバグや芁望に぀いおGNS3フォヌラムに曞き蟌むか、 GUI github-> issuesたたはServer github-> issuesに盎接曞き蟌むこずができたす 。 irc.freenode.netのIRCチャネルgns3noplay、grossmjで開発者ずチャットするこずもできたす 。



All Articles