Help us understand the problem. What is going on with this article?

【CCNA】Cisco機器エミュレータ環境の構築(EC2+Ubuntu+GNS3)

はじめに

CCNA学習においては、実際にCisco機器の動作を検証できる環境があると理解が深まります。
本記事の目的は、Amazon EC2+Ubuntu+GNS3を使用して、PCとインターネット環境さえあればいつでもどこでも動作検証を行えるエミュレータ環境を構築することです。


※GNS3を使用するうえで一番のネックは、CiscoIOSの用意です。
「会社がCiscoパートナー契約を結んでいる」または「会社や知り合いがCiscoルータを所有している」に当てはまらない場合はAmazonやヤフオク、メルカリなどでGNS3対応のIOS搭載ルータを購入する必要があります。出費が発生しますのであくまで自己責任で。。。

目次

  1. AWS環境を用意する
  2. Ubuntuサーバを構築する
  3. リモートデスクトップ(xrdp)の準備
  4. GNS3のインストール
  5. GNS3でCiscoルータのテンプレート作成
  6. さいごに
  7. 参考文献

1.AWS環境を用意する

AWSアカウント作成やVPC、サブネットなどの作成に関しては、本記事の主旨ではないため割愛します。

2.Ubuntuサーバを構築する

AWSマネジメントコンソールで「EC2」のページにアクセスし、「インスタンスを起動」します。

以下のポイントを参考にEC2を作成します。

  • AMIはUbuntu Server 18.04 LTS (HVM), SSD Volume Type 64ビット(x86)を選択(無料利用枠の対象)
  • インスタンスタイプはt2.medium以上を選択(無料利用枠対象のt2.microだと、後述のubuntuデスクトップが重すぎて動かない)
  • 自動割り当てパブリックIPは、無料利用枠に収める場合は有効とする(ただし停止起動のたびにパブリックIPが変わる)
  • EBSボリュームは汎用 SSD(gp2) 8GiBでよい
  • タグはName:gns3でよい
  • セキュリティグループはタイプ:全てのトラフィックソース:現在使用しているパブリックIPをインバウンド許可 ※全開けでもよいが、非推奨・危険なので注意すること!

参考:パブリックIPを確認するには:あなたが現在インターネットに接続しているグローバルIPアドレス確認

インスタンスが作成されたら、pemキーを使用してTeraTermなどでubuntuサーバにSSHログインします。なお、Ubuntu AMIのデフォルトユーザはubuntuです。

以下の初期設定をおこないます。

最初のaptアップデート
$ sudo apt -y update && sudo apt -y upgrade
言語や時刻設定
$ sudo apt -y install language-pack-ja-base language-pack-ja ibus-mozc
$ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
$ source /etc/default/locale
$ sudo apt -y install manpages-ja manpages-ja-dev
$ sudo timedatectl set-timezone Asia/Tokyo
パスワードとSSH認証設定
$ sudo passwd ubuntu   #パスワードは任意のものを指定
$ sudo vi /etc/ssh/sshd_config   #「PasswordAuthentication」のnoをyesに修正して保存
$ sudo systemctl restart sshd

3.リモートデスクトップ(xrdp)の準備

xrdp設定については、こちらの記事を参考にさせていただきました。
参考:Windows10→Ubuntu 18.04のリモートデスクトップ接続メモ

以下の通りそれぞれパッケージをインストールして、rebootを実施します。

デスクトップ/xrdpパッケージをインストール
$ sudo apt install -y ubuntu-desktop
$ sudo apt install -y xrdp
aptアップデート
$ sudo apt -y update && apt -y upgrade

ここからは実際にリモートデスクトップ接続で使用するユーザに切り替えます。
今回は引き続き、ubuntuユーザで接続するものとして進めます。

2種類のスクリプトを用意します(viコマンドによる新規作成と下記コピペでOK)

/home/ubuntu/u_setting.sh
cat <<EOF > ~/.xsessionrc
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
EOF
/home/ubuntu/g_setting.sh
sudo sed -e 's/^new_cursors=true/new_cursors=false/g' -i /etc/xrdp/xrdp.ini

cat <<EOF | \
sudo tee /etc/polkit-1/localauthority/50-local.d/xrdp-color-manager.pkla
[Netowrkmanager]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device
ResultAny=no
ResultInactive=no
ResultActive=yes
EOF

sudo systemctl restart xrdp
sudo systemctl restart polkit

2種類のスクリプトを順に実行します。

$ sh /home/ubuntu/u_setting.sh
$ sh /home/ubuntu/g_setting.sh

xrdpサービスの確認と起動、自動起動有効化を行います。

$ systemctl status xrdp
$ sudo systemctl start xrdp   #既に起動していれば不要
$ sudo systemctl is-enabled xrdp
$ sudo systemctl enabled xrdp   #既に有効化されていれば不要

4.GNS3のインストール

GNS3のインストールについては、公式ドキュメントを参考にしました。
参考:GNS3 Linux Install

以下の通り実行します。

$ sudo add-apt-repository ppa:gns3/ppa
$ sudo apt install gns3-gui gns3-server

2つ目のコマンドを実行した際、以下キャプチャのように
「root以外のユーザに、ubridgeとwiresharkの使用を許可するかどうか」を聞かれたら、どちらも「はい」を選択してEnterします。
20201115_GNS3サーバ構築キャプチャ01.PNG
20201115_GNS3サーバ構築キャプチャ02.PNG

CUIによる設定は以上で完了です。OSをrebootします。

$ sudo reboot

GNS3サーバが起動してきたら、次は自PCからGNS3サーバへリモートデスクトップ接続します。

コンピュータを識別できません警告は「はい」を押下。
20201115_GNS3サーバ構築キャプチャ03.PNG

xrdpの認証画面が表示されるので、
username:ubuntu
password:設定したパスワード
を入力してOKを押下。
20201115_GNS3サーバ構築キャプチャ04.PNG

ubuntuのデスクトップが表示されます。初回のセットアップ画面が出てきますが右上の「Next」でスキップします。
20201115_GNS3サーバ構築キャプチャ07.PNG

デスクトップにて[Ctrl]+[Alt]+[t]キーの同時押しでUbuntuターミナルを起動し、$ gns3を入力実行します。
20201115_GNS3サーバ構築キャプチャ08.PNG

GNS3のセットアップウィザードが表示されるので、Run appliances on my local computerを選択して「Next」を押下します。
保存先パスやポート設定などはデフォルトのまま進み、最後に「Finish」を押下します。
20201115_GNS3サーバ構築キャプチャ12.PNG

セットアップが完了し、GNS3を使用できるようになります。
20201115_GNS3サーバ構築キャプチャ13.PNG

5.GNS3でCiscoルータのテンプレート作成

こちらの記事を参考にさせていただきました。(というかほぼそのままです、ごめんなさい)
参考:ネットワークエンジニアとして 「GNS3 - Setup」

また、ここではCisco 3745のIOSイメージをあらかじめWinSCPでubuntuサーバ内に配置しています。

GNS3メニューの Edit から Preferences を選択します。
20201115_GNS3サーバ構築キャプチャ14.PNG

Dynamipsの IOS routers を選択したら、下の「New」を押下します。
20201115_GNS3サーバ構築キャプチャ15.PNG

IOS image:New Image を選択し、CiscoルータのIOSファイルを指定して「Next」を押下します(.binファイルを選択するとdecompressメニューが出て、自動で.imageファイルにしてくれる)
20201115_GNS3サーバ構築キャプチャ16.PNG

Name and platform:デフォルトのまま「Next」を押下します。
20201115_GNS3サーバ構築キャプチャ17.PNG

Memory:デフォルトのまま「Next」を押下します。
20201115_GNS3サーバ構築キャプチャ18.PNG

Network adapters:お好みでイーサネットインターフェースを追加(後で変更可)して「Next」を押下します。
20201115_GNS3サーバ構築キャプチャ19.PNG

WIC modules:お好みでシリアルインターフェースを追加(後で変更可)して「Next」を押下します。
20201115_GNS3サーバ構築キャプチャ20.PNG

Idle-PC:この設定はホストOS側のCPU高騰を防止するための設定です。「Idle-PC finder」をクリックして、設定が自動入力されたら下の「Finish」を押下します。
20201115_GNS3サーバ構築キャプチャ21.PNG

これでCiscoルータのテンプレートが作成されたので、GNS3でルータを使用できるようになります。

さいごに

冒頭でも書きましたが、CiscoIOSイメージの入手は人によってはハードルが高いかと思います。
私の場合、会社に研修用のCisco 3745実機があったので、そこからIOSイメージを吸い出したものを使用しました。

また、Cisco 3745のIOSイメージを使えばスイッチのテンプレートも作成できるみたいで、vlanの検証なども可能なようです。

参考文献

本記事はこちらの文献を参考に執筆しました。この場を借りてお礼申し上げます。

pm_yy
社内で担当しているCCNA研修の内容を主にまとめます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away