CMLの環境準備ができたので、ルーターやスイッチを配置して簡単なネットワークを作ってみたいと思います。
この記事は、筆者が初めてCMLを操作し、そのやり方を解説していく記事になるますので、文体など途中途中でラフになったり、適当になったりしますが、ご容赦ください。(笑)
ちなみに前回のCML環境準備編は以下リンクから確認できます。
CML(Cisco modeling lab)は、無料版で最大5台までの仮想スイッチやルータを動かせるシミュレーションツールになります。
実機のisoと近い感覚で操作が可能なため、packet tracerで物足りない方はPCのスペックが許すのであれば、こちらを活用するのがおすすめです。
最終的なゴールは次の章に記載しますが、大まかな流れとしては以下のように進めていこうと考えています。
- ノードを立ち上げて、まずは仮想ルーターやスイッチを触れる状態にする
- CMLの基礎的な使い方を紹介する
- 最後に仮想PCにてping疎通を行う
大体ですが、ITに関する技術やツールって、初見で簡単そうに見えても何かしらで躓いて時間を溶かしたりすることがよくあるんですよね。
今回もそのようなパターンになると思いますので、まったりやっていこうと思います。
CMLのバージョンについて
CMLのバージョンは以下の通りとなります。
CML 2.9.0+build.3
今回のゴール
今回は以下のようなネットワークを作っていこうと思います。

スイッチ1台とルーター1台を配置した簡単なネットワークを構築
コマンドラインにて操作できるところまでをゴールにしたいと思います!
基本的な使い方について
まずは、本題に入る前に基本的なCMLの操作を解説していきたいと思います。
ノードを配置する
まずは、右上のADDをクリック

するとなんか、welcomeメッセージが表示されました!最初に使い方を簡単に教えてくれるガイドのようなものなので、素直にNEXTをクリックした。

なるほどね。ノード(スイッチ、ルーターなど)はそこのボタンをクリックするのね

ボタンを押して、設置したいノードのアイコンをドラッグ&ドロップするのか

これはちょっとよくわからので、読み飛ばしてスキップ

うーん。。まあ、いったん、NEXT

なんかパッとしないまま、ガイドが終了した。とりあえず触ってみる

色々触ったり、調べてみた結果、
下記画像の赤枠にカーソルを当てて頂くと「Add Nodes」と表示されている通り、ここから好きなノード(ルーターやスイッチなど)を選択してワークベンチ上に配置できる。

とりあえず、L2スイッチのアイコンをクリックしてドラッグ&ドロップしてみた
そしたら、配置できたので、電源を入れてみる

ノードの電源を入れる
配置したアイコンをクリック > 「START」をクリック

起動時にエラーが表示された場合:
ol-l2-0: No compute host can start nodes, rejecting all node starts (cml-controller has virtualization disabled.)
ノードを起動しようとした際に以下エラーが表示された場合の対処法になります。

エラー内容としては、chat GPTさんに問い合わせたところ
ノードを動かす「仮想化エンジン」が使えない状態のそうで、CMLコントローラー側で「仮想化が無効」になっているため、ルーターやスイッチの仮想マシンを起動できないとのこと。。。
どうやら、VMwareで以下の機能を無効化したことが原因

その為、上記の赤枠をチェックを入れてVMを再度起動させる。

もし、チェックを入れてVMを起動できない場合は、以下記事を参考にしてみてください。
対処法を解説しています。
再度、CMLを立ち上げて、L2スイッチのアイコンをドラック&ドロップ
右クリック > 「Start」をクリックする。

そうするとアイコンの右下に緑色のリサイクルマークみたいなロゴが表示され、少し待つと下記画像の通り、緑色のチェックマークへ遷移しました。
この状態で機器が起動ができたことを確認するようです。

CML上のコンソールで操作する
立ち上げたノードを右クリック > 「Console」をクリック

「OPEN CONSOLE」をクリック

おぉー!なんか見覚えのあるコンソール画面が出てきた!!

コンソール画面を拡大した画面は下記の通り
コンソール画面上でエンターキーを押してみたら、プロンプトが表示されて、コマンドが打てる状態になった!

とりあえず、ホストネームを変えてみることにしてみました。コマンドは書く必要がないと思うが一応記載しておきます。
inserthostname-here(config)#hostname test
▼実際の画面は以下の通り

ターミナルソフト経由でコンソール接続する
個人的に普段の実務ではteratermでコンソール操作するので、こちらが使える点はCMLの優秀な点だと思いました。(Alt + Bなどteratermのショートカットがそのまま使える点がいいですw)
今回は、teratermでやり方をご紹介します。
普段使っているから、いいよとお思いの方はここら辺は少し飛ばしてください。
まずは、teratermを立ち上げます。
CML本体のIPアドレスを入力して、サービスはSSHを選択し「OK」をクリックします。

※CMLのIPアドレスは、Web UIへアクセスする際のIPアドレスになります。
▼CMLのweb UIへアクセスする際のIPアドレス(アドレスは隠しております。)

SSHの接続がうまくいくと、ユーザー名とパスフレーズが聞かれますので、CMLのweb UIへアクセスするときのIDとパスワードを入力して、OKを押します。

認証が問題なく、完了するとconsole画面へ入れると思いますので、まずはここまでを確認してください。私は、ここまでできた時にワクワクしてました。(笑)

▼実際にコンソール画面に表示されている文章はこんな感じ
CML2 Console Server
Copyright (c) 2019-2025 Cisco Systems, Inc. and/or its affiliates
tab completion works
list available nodes and node labels / IDs with “list”
it’s also possible to do a “open /Lab at Wed 22:21 PM/iosv-0/0” command
or to directly connect via UUID “connect 697bb5b8-7181-49c5-8e85-540eacf9deac”
(e.g. lab name followed by node name and line number
open the console for viewing with the “view” or “observe” equivalents
consoles>
ここからは、VMサーバーから仮想ノードへコンソール接続する手順をご紹介していきます。
基本的なコマンドは以下表にまとめておきます。今の私のレベル感ですと以下の4つのコマンドを覚えておくだけで十分に感じました。
コマンド | 説明 |
---|---|
labs | ラボの一覧を表示 |
list | ラボの全ノードを一覧表示 |
open | ノードへ接続 |
Ctrl + ] | ノードの接続を解除 |
ちなみに、ノード解除のキーについて、「 ] 」の打ち方がわからない方向けにキーボードの打つ場所を載せておきます。

とりあえず、最初に「labs」コマンドを実行してみました。
現在、アクティブにしているノードがない為、コマンドを打っても表示されないようです。。。

現在アクティブになっているノードがあるか確認する「list」コマンドを実行してみました
アクティブなノードがない場合だと、リストには何も表示されません(当たり前)

とりあえず、ノードをアクティブにしてみました。

その状態で、上記2コマンドを実行してみた。すると、おぉ!!

▼最初に作成したlabと配置したノードがコマンドで確認できるようになりました!!

ここまで確認できたので、実際にCMLのVMサーバーから仮想ノードへコンソール接続してみます。
使用するコマンドは、「open」コマンド
consoles> open /Lab_simple Network/iol-l2-0/0
書き方としては、openコマンドの後に半角スペース + 「 /ラボ名/ノード名 」
ちなみにtabキーを使って、openコマンドの後は自動補完することができます。
下記の通り、「inserthostname-here>」のプロンプトが表示されれば、L2スイッチの仮想ノードをteratermで操作できるようになりました。
あとは、お好きなコマンドを試してみてください。

ここまで入れたので、VMサーバーのコンソールまで戻ってみようと思います。
使用するコマンドは「 Ctrl + ] 」
実際に入力してみると、抜けることができました。

【参考】初期状態のスイッチのコンフィグについて
仮想スイッチの初期コンフィグが気になったので、show runで見てみることにしました。
個人的にいくつか気になった点は以下の通りです。
- Ethernetポートのみ(FastEthernetがない)
- logging synchronousが初めから有効
logging synchronousコマンドがわからない方は3分で分かるコマンドの使い方や意味について解説しています。参考にしてみてください。
後はいくつか見たことがないコマンドはありますが、時間があるときに調べてみたいと思います。
inserthostname-here#ter len 0
inserthostname-here#show run
Building configuration…
Current configuration : 983 bytes
!
! Last configuration change at 01:09:08 UTC Wed Aug 27 2025
!
version 17.16
service timestamps debug datetime msec
service timestamps log datetime msec
!
hostname inserthostname-here
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
!
!
!
!
!
!
!
!
!
!
!
!
!
ip audit notify log
ip audit po max-events 100
ip cef
login on-success log
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
memory free low-watermark processor 79497
!
!
spanning-tree mode rapid-pvst
spanning-tree extend system-id
!
!
vlan internal allocation policy ascending
!
!
!
!
!
interface Ethernet0/0
!
interface Ethernet0/1
!
interface Ethernet0/2
!
interface Ethernet0/3
!
interface Ethernet1/0
!
interface Ethernet1/1
!
interface Ethernet1/2
!
interface Ethernet1/3
!
ip forward-protocol nd
ip forward-protocol udp
!
!
ip http server
ip http secure-server
ip ssh bulk-mode 131072
!
no logging btrace
!
!
!
control-plane
!
!
!
line con 0
logging synchronous
line aux 0
line vty 0 4
login
transport input ssh
!
!
end
inserthostname-here#
CMLの画面説明について
ここまでCMLの使い方について、ざっくりとわかったと思います。
その為、ここからCMLの画面について説明していこうと思います。
まず、以下の通りCMLのweb UIにアクセスした最初の画面を「ラボマネージャー」と言います。(下記画像の青枠部分)
実際に作成したシミュレーション環境の基礎単位を「ラボ」と呼びます。(下記画像の赤枠部分)

ラボをクリックして、実際のノードを触ったり、新しく配置する画面を「ワークベンチ」と言います。

ほーん。なるほどね
CMLのラボ名の変更について
正直、書くか迷いましたが、本ブログは筆者が実際に触って学んだことを紹介するのがコンセプトの為、こちらも解説していきたいと思います。
Lab名は変更することができます。こちらでお好きな名前を設定することができます。
前述したとおり、sshでワークベンチに配置したノードにアクセスできたりするので、管理する意味合いでも分かりやすい名前を付けておくのがいいかと思ってます。

ノードの削除について
ノードの削除方法についても触れていきます。
まずは、削除したい対象ノードを右クリック > 「Stop」

すると対象アイコンが、緑チェックからグレーのバツへ変わります。

次に、「Wipe」をクリック

下記画像が表示されますので、CONFIRMをクリック

すると、アイコンからグレーのバツマークも消えます。

ここまで確認できたら、再度対象のアイコンを右クリック > 「Delete」をクリック

ノードを削除してよいか聞かれますので、「CONFIRM」をクリック

仮想PCから仮想ルーターへping疎通を行う
さて、ここからはいよいよCMLで初めてのネットワークシュミレーションを行ってみたいと思います!!(どこかで沼る予感しかしませんが)
作るネットーワークはもの凄くシンプルで設定することも少ないです。
▼今回作るネットワーク

以下順番で行っていこうと思います。
- iol-0のipアドレス設定
- desktop-0のipアドレス設定
- desktop-0からiol-0へping確認
ルーターの設定
まずは、iol-0へコンソール接続を行い、E0/0にIPアドレスを設定していきたいと思います。
inserthostname-here>en
inserthostname-here#conf t
Enter configuration commands, one per line. End with CNTL/Z.
inserthostname-here(config)#
inserthostname-here(config)#interface ethernet0/0
inserthostname-here(config-if)#ip address 192.168.1.254 255.255.255.0
inserthostname-here(config-if)#no shutdown
endで抜けて、一応write memoryをしておきます。(笑)
inserthostname-here(config-if)#end
inserthostname-here#write memory
Building configuration…
[OK]
inserthostname-here#
PCの設定
今度は、desktop-0側の設定になります。コンソール接続してください。
パスワードを聞かれますが、初期パスワードは以下の通りになります。
- login:cisco
- password:cisco
■■■■■■■■■■■■■■■■■■■■■
CMLからdesktop-0へコンソールへ入るところ
■■■■■■■■■■■■■■■■■■■■■
consoles>
consoles> open /Lab_simple Network/desktop-0/0
Connecting to console for desktop-0
Connected to CML terminalserver.
Escape character is ‘^]’.
■■■■■■■■■■■■■■■■■■■■■
desktop-0へコンソールで入れた後
■■■■■■■■■■■■■■■■■■■■■
Welcome to Alpine Linux 3.21
Kernel 6.12.27-0-virt on an x86_64 (/dev/ttyS0)
inserthostname-here login: cisco
Password:
Welcome to Alpine!
The Alpine Wiki contains a large amount of how-to guides and general
information about administrating Alpine systems.
See https://wiki.alpinelinux.org/.
You can setup the system with the command: setup-alpine
You may change this message by editing /etc/motd.
inserthostname-here:~$
以下は、調べながら、Linuxの使い方を学んで解説する内容になりますので、他の情報を参照することをお勧めします。
まずは、IPアドレスの確認コマンドを紹介します。以下の通り「ip a」でIPアドレスを確認できるようです。
inserthostname-here:~$ ip a
▼実際の出力結果は以下の通り
1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:a6:b8:10 brd ff:ff:ff:ff:ff:ff
inet6 fe80::5054:ff:fea6:b810/64 scope link
valid_lft forever preferred_lft forever
inserthostname-here:~$
ループバックインターフェースはルーター自信を示す、論理的なインターフェスなのでここではいったんスルー。
eth0にipアドレスを割り当てていきます。chat GPTさんに聞いて設定してみました。コマンドを実行した結果、なんか入ったようなので再度IPアドレスを確認してみます。
inserthostname-here:~$ sudo ip addr add 192.168.1.100/24 dev eth0
inserthostname-here:~$
もう一回、「ip a」を実行します。
すると、おお!!IPアドレスが入った~!!!!!
inserthostname-here:~$ ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:a6:b8:10 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fea6:b810/64 scope link
valid_lft forever preferred_lft forever
inserthostname-here:~$
Ping疎通
ping疎通を行ってみます。
inserthostname-here:~$ ping 192.168.1.254
やったー!無事に通りました。windowsとは異なり、ずっとpingを打ち込むように見えたため、ctrl + Cにてキャンセルしてみました。
inserthostname-here:~$ ping 192.168.1.254
PING 192.168.1.254 (192.168.1.254): 56 data bytes
64 bytes from 192.168.1.254: seq=0 ttl=42 time=1.714 ms
64 bytes from 192.168.1.254: seq=1 ttl=42 time=0.910 ms
64 bytes from 192.168.1.254: seq=2 ttl=42 time=0.925 ms
64 bytes from 192.168.1.254: seq=3 ttl=42 time=0.895 ms
64 bytes from 192.168.1.254: seq=4 ttl=42 time=1.053 ms
64 bytes from 192.168.1.254: seq=5 ttl=42 time=1.010 ms
64 bytes from 192.168.1.254: seq=6 ttl=42 time=0.926 ms
64 bytes from 192.168.1.254: seq=7 ttl=42 time=1.186 ms
64 bytes from 192.168.1.254: seq=8 ttl=42 time=1.324 ms
64 bytes from 192.168.1.254: seq=9 ttl=42 time=0.966 ms
64 bytes from 192.168.1.254: seq=10 ttl=42 time=1.082 ms
^C
— 192.168.1.254 ping statistics —
11 packets transmitted, 11 packets received, 0% packet loss
round-trip min/avg/max = 0.895/1.090/1.714 ms
inserthostname-here:~$
初めて使う分にはこのくらいでちょうどいいのではないでしょうか。
CMLを初めて使ってみた感想
良い点
CMLを初めて使ってみた感想としては、率直に実機に近い感覚で機器を操作することができてすごい!!
この一言に尽きます。
packet Tracerも十分CCNAなどの勉強でコマンドを打ち込む程度では十分活躍するのですが、ブログや個人的に検証したいときに、コマンドがサポートされていないなどありました。
CMLはそこら辺の痒いところに手が届くようなツールだと感じました。
GNS3と比較した際に、IOSイメージを準備する必要がない為、実機を買うところがなく、ネットワーク機器の操作をpacket tracerよりも本格的に行いたい方向けに向いているなと思います。
また、接続しているインターフェースが自動で表示される点も個人的にはありがたいです。(笑)
packet tracerの時はいちいち自分で表示名を記載する必要がありましたので、この手間を省けたのは大きいです。

今後は、CMLを活用して私自身が学んだ知識や検証結果をご紹介していきたいと考えております。
微妙な点
仮想で設定できるPCがLinuxのみ
普段、Linuxを触れている方は問題ありませんが、私や普段Windowsのみを触れている方にとってはIPアドレスの設定など、初期設定で少しハードルに感じる方はいるかと感じました。
筆者が学習で使っている教材のご紹介
筆者は、CCNAに向けて勉強中になります。
学習中に使用している教材を紹介してますので、気になる方は確認してみてください。ネットワークの基礎について動画で分かりやすく解説している教材になります。
最後に
今回はCMLの使い方について、筆者自身も初めて触りながらブログ記事を書いたため、文章が長くなってしまいました。。。(すみません)
色々触って、CMLの理解が少し深まりましたが、その分、不明な点も多く出てきました。。
例えば、仮想ルーターが3種類あるけど、どれ使えばいいの。。など
気になったことや検証作業など今後も引き続き続けていきますので、温かい目で読んで頂けると嬉しいです!!
参考にさせて頂いた情報
参考にさせて頂いた記事や情報は以下の通りになります。

コメント