Skip to content

GNS3:スイッチング機能使用時の注意点

はじめに

GNS3でCiscoスイッチを設定しようとする場合、いろいろと実機とは異なる点があり注意が必要なため、注意点をまとめていきます。特にスイッチの設定方法は合っているはずなのに、なぜがGNS3でPingが通らないといった読者を想定しています。


最初に:GNS3でのスイッチの設定方法

GNS3でスイッチ(SW)を使う方法は、デフォルトで設定されているスイッチを使う方法と、ルータをスイッチとして使う方法の2種類があるようです。デフォルトで設定されているスイッチは使える機能が少ないようですので、今回はルーターをスイッチとして使う方法を前提として話を進めていきます。

スイッチとして使えるCiscoルーターは、Cisco 2600、Cisco 3600、Cisco 3700など複数存在するようです。が、しかし、GNS3でスイッチとして使えるCiscoルーターは、Cisco 3700シリーズのみです。(GNS3で使えるスイッチの機能に関しては、こちらをご参考ください。)

そのため、GNS3でスイッチを設定する場合は、Cisco 3700シリーズのIOS(c3725、c3745など)を用意してください。
スイッチを設定する場合のIOSの設定方法は、基本的にIOSを使ったルータの設定方法と同じですが、ルータをスイッチとして利用する設定(「This is an EtherSwitch router」にチェックを入れる)ことと、「NM-16ESW」モジュールを搭載させる必要があります。

以下に、GNS3でのスイッチの設定方法を簡単に記します。
(スイッチの設定方法は、ルータの設定方法とほぼ同じです。下記の設定方法で不明瞭な点がある場合は、GNS3でIOSを使ったルータの設定方法などを調べてください。)

  1. Edit
  2. Preferences
  3. 「IOS routers」を選択
  4. 「New」をクリック
  5. スイッチを動作させるサーバーを選択して「NEXT」をクリック
  6. 入手したCisco 3700シリーズのIOSを選択して、「NEXT」をクリック
  7. 「This is an EtherSwitch router」にチェックをいれて、「NEXT」をクリック (機器名(name)は、自由に決めてください。)
  8. 「256 MiB」に数値を訂正して「NEXT」をクリック
  9. 「NM-16ESW」が搭載されていることを確認して「NEXT」をクリック
  10. WICインターフェイスを任意で設定して「NEXT」をクリック
  11. Idle-PCの値を設定して「Finish」


スイッチが動かない場合の対処1:vlanが作れない場合

IOS c3725で実行した所、vlanを以下のように作成しようとするとvlanが作成できないようです。

switch#configure terminal
switch(config)#vlan 10
                    ^
% Invalid input detected at '^' marker.

switch(config)#


原因としては、IOSが古いバージョンだと下記のように、vlan databaseからvlanを作成する必要があるようです。

switch#vlan database
switch(vlan)#vlan 10 name TEST
VLAN 10 modified:
    Name: TEST
switch(vlan)#


スイッチが動かない場合の対処2:Up/Downのときの対処法

FastEthernet1/0のポートにトランク・リンクを設定したが、なぜが以下のようにプロトコルがdownしている場合があります。(所謂、Up/Downの状態です。)

switch#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet1/1            unassigned      YES unset  up                    down


上記のような場合は、FastEthernet1/0のポート設定から、一度シャットダウンを行い、再度ポートを上げる(no shutdown)とトランク・リンクが上手く設定できるようです。

switch#configure terminal
switch(config)#interface fastEthernet 1/1
switch(config-if)#shutdown
switch(config-if)#no shutdown


スイッチが動かない場合の対処3:同じスロットで設定しよう

単純なトランク・リンクを以下のように設定した場合は、同じvlan10のPC同士でPingが通りません。


しかし、上記の設定を下記のように変更するとPC間でPing疎通が成功します。どこが変わったか分かりましたか?



PingがNGの時は、SW01のFa2/4にトランクを設定しましたが、PingがOKの場合は、SW01のFa1/14にトランクが設定されています。GNS3では「NM-16ESW」モジュール単位でスイッチ1台だと認識しているのかもしれません。インターフェイスのスロット(ポートのスラッシュの左側の数字)を揃えてあげる必要があるようです。


補足1:スイッチのiosの選択

上記でGNS3では、Cisco 3700シリーズのIOS(c3725、c3745など)をスイッチとして利用できると記しましたが、同じCisco3700シリーズのIOS c3725と、IOS c3745では、GNS3上で動作が(vlanの設定などで)異なるようです。そのため、スイッチが想定通り動かない場合は、Cisco3700シリーズの別のIOSで実行したら上手くいく場合もあるかもしれません。


補足2:show vlan コマンドの代わりにshow vlan-switchport

vlanの設定情報を見るために使用する「show vlan」コマンドは効きませんので、代わりに以下のコマンドを使用します。

switch#show vlan-switch

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa1/0, Fa1/3, Fa1/4, Fa1/5
                                                Fa1/6, Fa1/7, Fa1/8, Fa1/9
                                                Fa1/10, Fa1/11, Fa1/12, Fa1/13
                                                Fa1/14, Fa1/15, Fa2/0, Fa2/1
                                                Fa2/2, Fa2/3, Fa2/5, Fa2/6
                                                Fa2/7, Fa2/8, Fa2/9, Fa2/10
                                                Fa2/11, Fa2/12, Fa2/13, Fa2/14
                                                Fa2/15
10   TEST                             active    Fa1/1, Fa1/2
900  VLAN0900                         active
1002 fddi-default                     active
1003 token-ring-default               active
1004 fddinet-default                  active
1005 trnet-default                    active
(以下省略)


最後に

終わりまでお読みいただきありがとうございました。
GNS3でスイッチを使おうとすると色々と癖があるようですが、上手く使いこなしてネットワーク技術を磨いていきましょう♪


参考

https://teratail.com/questions/115046
https://docs.gns3.com/docs/emulators/cisco-ios-images-for-dynamips