ラップトップPCでCMLを使ってみた

この記事は[FUJITSU Advent Calendar 2020](https://qiita.com/advent-calendar/2020/fujitsu)の22日目の記事です。
記事の内容は全て個人の見解であり、執筆内容は執筆者自身の責任です。所属する組織は関係ありません。

##はじめに
皆さんはCMLというツールをご存じでしょうか。
CMLは正式名称をCisco Modeling Labsといい、Ciscoが提供するネットワークシミュレーションプラットフォームです。
少し前まで個人用途ではVIRL、企業用途ではCMLと呼ばれていて、この2つのツールが、今年の5月にCMLパーソナル、CMLエンタープライズとしてメジャーアップデートされました。
このCMLは実際のCisco機器のイメージを使用したり、サードパーティ製の機器のシミュレートが簡単に行え、
ベアメタルサーバ、もしくはVMware Workstation/Fusionなど仮想ソフトウェア上で動作します。
今回はこのCMLをラップトップPC上で動かしてみたいと思います。


## CMLの環境要件
CMLで要求されているスペックは以下になります。

> リソース

| システムリソース     | 最小構成     |
| :------------- | :------------- | 
| メモリ| 8GB | 
| CPU| 4コア （VTxとEPTまたはAMDvとRVIをサポートする必要あり）
| ネットワークインターフェース| 1 | 
| ハードディスク| 16GB|

> サポートされるソフトウェア

| 仮想化ソフトウェア| バージョン     |
| :------------- | :------------- | 
| VMware Workstation| 14以降 | 
| VMware Fusion Pro| 10以降|
| VMware Player| 14以降 | 
| VMware ESXi| 6.5以降|
| ブラウザ| HTML5対応ブラウザー（Chrome、Firefox、Safari）|


##環境
>  ラップトップPCのスペック

| リソース     | 構成     |
| :------------- | :------------- | 
| OS| Windows10 Enterprise 64bit | 
| メモリ| 16GB | 
| CPU| Intel(R) Core(TM) i7-7600U
| ネットワークインターフェース| 1 | 
| ディスク| 256GB|
|仮想化ソフトウェア| VMware Workstation 15.5.1| 


> CMLの各コンポーネントのバージョン

* cml2_controller-2.1.1-19.el8.x86_64-134.ova（CML本体のOSおよびコード）
* refplat-20201110-fcs.iso（ルーターやスイッチなどのディスクイメージ）

ちなみにOSおよびコード側のファイルには、VMware上で動かすためのovaファイルと、ベアメタルサーバ上で動かす為のiosファイルが用意されているので環境に合わせて選択できます。


##手順
ではここからCML使用開始するまでの手順を記載していきます。
###1.ソフトウェアの入手
はじめにCMLを使用するために必要な、各種イメージファイル、ライセンス認証用のトークンを入手します。

CMLを入手するためには[Cisco Learning Network Store](https://learningnetworkstore.cisco.com/cisco-modeling-labs-personal)にアクセスして購入します。
購入後My Accountページから各種イメージのダウンロードページへのアクセスと、ライセンス認証用のトークン発行が可能となります。

>ダウンロードするファイル

先ほど記載したファイルをダウンロードします。

* cml2_controller-2.1.1-19.el8.x86_64-134.ova
* refplat-20201110-fcs.iso

###2.仮想マシンのインポート
必要なファイルがそろったところで、いよいよ仮想化ソフトウェアへCMLをインポートしていきます。
今回はWindows10/VMware Workstation 15の環境で実施しました。

まずVMware Workstationでファイルをインポートしていきます。
![WS000011.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/271c9183-0db4-9668-7c04-eedb71d73e3d.jpeg)
インポートするファイルを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/330ce6a3-3294-e4be-9b7d-507ab47d0b39.png)
インポートを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/cafa7062-6eae-bc10-b20d-5b1b36a93b8d.png)



>仮想マシンのスペック・設定

インポート後、仮想マシンの設定を行います。

今回は最小スペックで構成するので、メモリ8GB、プロセッサ4コア、ハードディスク16GBに設定します。
以下は設定時に忘れやすい注意ポイント3つです。

プロセッサ：「Intel VT-x/EPTまたは AMD-V/RVIを仮想化」にチェックを入れる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/8d79fb5f-aa5a-63b6-4a0c-8bfdf6e4e015.png)


CD/DVD(TDE):「起動時に接続」をチェック、ダウンロードしたISOファイル（ルーターやスイッチなどのディスクイメージ）をマウントする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/3dc8871a-aef6-1797-14b1-38707ec68c91.png)


ネットワークアダプタ：環境、やりたいことに応じてNATもしくはブリッジのどちらかを選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/b3ae09dd-c2db-d6fc-eac6-1e84598ca274.png)



###3.CMLの初期設定
初期設定ではCMLで使用するアカウントの設定や、CMLサーバのネットワーク設定など行っていきます。

まずCMLを起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/fca1fc28-b923-fae8-6176-c3139d30e6c4.png)

使用許諾契約書が表示されるので確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/b5af11aa-9ce4-52c5-87ab-5e0761831d0b.png)


CMLサーバのシステム管理者アカウントを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/e4496441-91e3-96e5-72a2-fd5c522a5869.png)


CMLコントローラの初期アカウントを作成します。
<img width="65%" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/dc2af869-859d-f125-209d-9d04d1eb260f.png">

CMLサーバのIPアドレスを”DHCP”で取得するのか”Static”で手動設定するのか選択します。（Staticの場合、IPv4アドレス・ネットマスク・ゲートウェイ・DNSサーバの設定を次に行う）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/77cf2c26-9c2f-b8fa-af31-105c98b1783a.png)


設定が表示されるので確認した後、適用します。
<img width="65%" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/843f1f59-70a7-a499-560f-01d958ec9e30.png">

CMLサーバがリセットされ設定が適用された状態で起動します。
またこのコンソールウインドウにCMLのGUIアクセス用のURLが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/ea3066eb-5c5a-6958-7da2-f1ea0de22c2e.png)




###4.ライセンス認証
「1.　ソフトウェア入手」で発行したトークンを使用して、ラインセンス認証を行います。

ブラウザから、VMのコンソールウィンドウに表示されているIPアドレスにアクセスします。
ログイン画面が表示されるので、CMLコントローラユーザでログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/8f106f30-f713-4a3f-0fa4-c1be1ad2e73f.png)


ライセンス認証を行うため”Tools”から”Licensing”を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/5f7d4b80-7cc8-cd2b-a8cb-b64b97f40e11.png)

”Smart Software Licensing”ページが表示されます。
CMLをプロキシがある社内などの環境で使用したい場合は、"Transport Settings"のView/Editをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/72b237fc-da51-b4ea-4d65-f950bfa1788d.png)

"HTTP/HTTPS Proxy"にチェックを入れ、"IP Address/Hostname"と"Port"を設定することでプロキシがある環境でもライセンス認証を行うことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/c509f5a2-13fc-9599-c8d2-d79dfc052bb6.png)


”Smart Software Licensing”ページに戻り”Register”をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/eda77088-bf2a-6e48-7d12-ca513231d543.png)

トークン入力ページで、購入時に発行されたトークンを入力して”Register”をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/3b323014-abfb-b852-d2a1-6eb8b60302e6.png)


”Registration Status”が”Registered”に、” License Authorization Status”が”Authorized”になればライセンス認証は完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/9e54aeb5-50e9-ee37-6c5a-f04530c0be0d.png)


これでCMLが利用可能となります！
ちなみにCML2.0系ではインストールの段階でCMLパーソナルかCMLエンタープライズどちらを使用するか選択する必要がありましたが、CML2.1では、Smart Software Licensingのページから選択できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/4843d74a-876d-b6cd-4ae6-b24ffb3505c7.png)


##【参考】実際に使ってみた。
今回使用したラップトップPCでCML使ってみました！今回はBGP、OSPF、HSRPなど動かしています。自分のPCでもこのような構成組んで検証やちょっと気になることも調べられます！
![qiita_cml.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858668/1e011819-933f-0ac4-a176-00ce8819f01e.gif)


##おわりに
今回CMLのインストールについて記載しました。特に難しい手順はなくセットアップできました！
このCMLですが、検証や、資格取得のための勉強など、実機を用意したら高価になる環境も仮想環境として簡単に用意できるので、様々な場面で利用できると思います。
また、CML自体をAPIで操作したり、CML上で動作する機器のプログラマビリティにも使用できます。
今後は、CML内の仮想ノード使用してテスト自動化など記事にしていきたいと思います。

##Reference
https://developer.cisco.com/modeling-labs/
https://developer.cisco.com/docs/modeling-labs/
[Cisco Modeling Labs (CML)を使ってネットワークを学ぼう！](https://learningnetwork.cisco.com/s/learning-plan-detail-standard?ltui__urlRecordId=a1c3i0000007u7uAAA&ltui__urlRedirect=learning-plan-detail-standard)