なぜGNS3はネットワークエンジニアにとって不可欠な「武器」なのか?
駆け出しの頃、私は軽量で使いやすいCisco Packet Tracerをよく使っていました。しかし、複雑なプロトコル設定や仮想マシン(VM)との接続が必要な実案件に直面した際、Packet Tracerの限界に気づきました。それはあくまでコマンドの「シミュレーター(Simulator)」であり、本物のOSを動かしているわけではないからです。
特に印象に残っているのは、大手銀行で発生した断続的なパケットロスのトラブル対応です。実機のIOS(Internetwork Operating System)をGNS3で動かして初めて、そのバグを再現することができました。GNS3は本物の「エミュレーター(Emulator)」であり、実機と全く同じようにネットワーク機器を操作できるのです。
ネットワークラボ用ツールのクイック比較
選択の助けになるよう、代表的な3つのツールの実態をまとめました:
- Cisco Packet Tracer: 基本的なCCNA学習には最適です。弱点は機能に制限があり、高度なコマンドを完全にサポートしていない点です。
- EVE-NG: 非常に強力で、Webブラウザから管理できます。ただし、Ubuntu上でのリソース最適化は初心者には少し難しい場合があります。
- GNS3: 完璧なバランス。Ciscoルーター、Juniperスイッチ、Checkpointファイアウォールをドラッグ&ドロップで配置でき、Linux上でのDocker連携も非常にスムーズです。
Ubuntu上でGNS3を直接動かす最大のメリット
WindowsでGNS3を使用する場合、通常はVMware経由でGNS3 VMをインストールする必要があります。これだけで、中間仮想化レイヤーを維持するために2〜4GBのRAMを余計に消費します。一方、UbuntuではGNS3サーバーがKVM(Kernel-based Virtual Machine)を直接利用します。これによりパフォーマンスが約30%向上し、数十台のルーターを動かしても動作は非常に軽快です。
実践的なGNS3ラボのデプロイ手順
ステップ 1: GNS3サーバーとGUIのインストール
最新の安定版を入手するために、公式のPPAリポジトリを使用しましょう。ターミナルを開き、以下のコマンドを入力してください:
sudo add-apt-repository ppa:gns3/ppa
sudo apt update
sudo apt install gns3-gui gns3-server
インストール中に、dumpcapやubridgeの実行権限について確認ダイアログが表示されたら、Yesを選択してください。これにより、後でWiresharkを使ってパケットキャプチャを行う際に、Root権限のエラーを回避できます。
ステップ 2: システムアクセス権限の設定
これは、多くの人がネットワークノードを起動できない原因となる典型的なミスです。現在のユーザーに仮想化プロセスを操作する権限を与える必要があります:
sudo usermod -aG ubridge,libvirt,kvm,wireshark,docker $USER
実行後、一度ログアウトして再ログインし、Ubuntuに新しい権限を反映させてください。
ステップ 3: Ciscoルーターに「魂」を吹き込む
GNS3は、IOSイメージファイルがなければ魂の抜けた殻のようなものです。ルーター7200シリーズや3725シリーズの.binまたは.imageファイルを用意してください。
- Edit -> Preferences -> Dynamips -> IOS Routersへ進みます。
- Newをクリックし、イメージファイルのパスを指定します。
- 重要な注意点: Idle-PC findを必ず実行してください。これを忘れると、仮想ルーターが待機ループを回すだけでPCのCPUを100%使い果たしてしまいます。
ステップ 4: Dockerをワークステーション(PC)として活用する
ラボの動作を重くする Windows 10 をワークステーションとして入れる代わりに、私は Docker をよく使います。Alpine Linux のコンテナはわずか 5MB 程度ですが、ping、traceroute、curl などのツールは一通り揃っています。
sudo apt install docker.io
GNS3内でDocker containersに移動し、alpineイメージを追加します。このような仮想PCを起動するのにかかる時間はわずか1秒です。
初めてのネットワーク構成を構築する
接続を確認するために、1台のルーターと1台のLinuxワークステーションを接続する構成を組んでみましょう。
ネットワーク図の設計
- c3725ルーターとDockerコンテナを画面上にドラッグします。
- ケーブルツールを使って、ルーターのf0/0ポートとDockerのeth0を接続します。
- スタートボタン(緑色のアイコン)を押して、すべてのデバイスを起動します。
クイックIP設定
ルーターでコンソールを開き、次のように入力します:
Router(config)# interface f0/0
Router(config-if)# ip address 192.168.1.1 255.255.255.0
Router(config-if)# no shutdown
Alpine Linux側で、同じセグメントのIPを設定します:
ip addr add 192.168.1.2/24 dev eth0
ip link set dev eth0 up
ping 192.168.1.1
ラボをフリーズさせないための実践的なコツ
長年GNS3を使い込んできた経験から、いくつかのアドバイスがあります:
- KVMの確認: QEMUのAdvanced設定で
-enable-kvmオプションが有効になっていることを常に確認してください。これがないと、仮想マシンは非常に低速になります。 - プロジェクト管理: GNS3は多くのファイルを生成します。バックアップや共有を容易にするため、ラボごとに個別のフォルダを作成することをお勧めします。
- Wiresharkで学ぶ: コマンドラインを見るだけでは不十分です。ケーブルを右クリックしてStart Captureを選択しましょう。実際のTCP/IPパケットが流れる様子を見ることで、知識の定着率は読書の10倍以上になります。
UbuntuでGNS3を使いこなすことは、ネットワークに強くなるだけではありません。Linuxシステム管理や仮想化を深く理解するための足がかりにもなります。ぜひ、質の高いラボ環境を構築してください!
