はじめに
Cisco Modeling Labs (CML)はCiscoが公式で提供するネットワークエミュレーターです。CMLを使用してNWの勉強を始め様々な検証にお使いいただけます。CML2.7では新しくSD-WANなどのノードが追加されていますので、私自身今までよりもさらに用途が増えることを期待しています。
CMLとしてサポートされているソフトウェアはVMwareで、これまで様々な方がESXiでの構築方法について公開されております。VMwareが利用できない場合の方法として模索した際に、今回ProxmoxでCMLを構築しました。※注意点としてCiscoが推奨しているものではありませんのでそこはご理解下さい。 あくまで個人の見解です。
諸般の事情で急にESXiが利用できなくなって困っている方など参考になれば幸いです。
実行環境
- CML2.7.0
- Proxmox 8.1.2
前提条件
事前準備
CMLを構築するにあたりCisco Software DownloadからCMLのソフトウェアをダウンロードします。やり方についてはこちらを参照してください。
必要なファイルは次の 3つ となります。
いずれもISOファイルをProxmoxへ接続できる端末に格納し、zipを解凍します。
- Cisco Modeling Labs 2.7.0 server
cml2_2.7.0-4_amd64-20-iso.zip - Cisco Modeling Labs reference platform ISO file⇒ノードのISOファイル
refplat-20240225-fcs-iso.zip - Cisco Modeling Labs supplemental reference platform ISO file⇒新しくCML2.7で追加されたノードのISOファイル
refplat-20240322-supplemental-iso.zip NEW
※もしもISOからではなくOVAから作成を考えている方はこちらを参照いただければと思います。
ProxmoxにCMLを登録
実際に設定したキャプチャーを載せています。サーバー1台丸ごとCML専用機にしておりますので設定値は参考として下さい。小規模で利用される際はここまでのスペックは不要と思います。
1. 先ほどダウンロードしたファイルをProxmoxにアップロードします。
[Storage] -> [ISO Images] -> [Upload] -> ファイルの選択
2. ノード作成
3. Name登録
4. OS設定
先ほどダウンロードしたcml2_2.7.0-4_amd64-20-iso
を登録します。
他のISOファイルは別途登録します。
5. System設定
BIOS はOVMF(UEFI)
とし、EFI Storageはlocal-lvm
を選択します。
6. Disks設定
7. CPU設定
Socket,Coresも必要な分を割り当てます。また、Typeはhost
にします。
※Socketは2としていますが、後日再インストールした際はSocketを1、Coreを38に変更しています。
8. Memory設定
9. Network設定
Bridge、Model(E1000
またはvmxnet3
)を設定します。
2つ以上のNetworkを使用したい場合はマシン作成後に追加できます。
今回はProxmoxと同じネットワークにCMLのアドレスを設定しました。
後程、他のネットワークを追加します。
10. Confirm内容確認
CML初期設定
ShellのStatusはセットアップが終わらないと完了とならないので、CMLのConsoleを起動し様子を見ます。
頑張って動いてる!
かっこいい!
【設定項目】
- Hostname
- System Username/Password
- Username/Password
- IP address※Static設定のためGatway,DNSの設定も行っています。
CMLライセンス登録
先ほど設定したIPアドレスでアクセスすると、ログイン画面が表示されます。
ログイン後、Toolまたはページ右下のSystem Health IssueよりLicenseを登録します。
[REGISTER・・・]をクリックします。既にお持ちのLicenseをCisco Learning Network Storeで確認し、Token
を登録します。
Proxy環境で利用される方は設定を行います。
[Transport Settings:]->[View/Edit]
IP address
,Port
を設定します。Licenseページにアクセスできれば問題ありません。
しかし、この設定が行われていても、CML再起動後などProxyが原因でLicenseがErrorになることがあります。
その場合はCMLのコンソール画面より以下のファイルに情報を追記します。ファイルが存在しない場合は新しく/etc/apt/apt.conf.d/
を作ります。
sudo nano /etc/apt/apt.conf.d/proxy.conf
Acquire::http::Proxy "http://[username]:[password]@ [proxy-web-or-IP-address]:[port-number]";
Acquire::https::Proxy "http://[username]:[password]@ [proxy-web-or-IP-address]:[port-number]";
以上でProxyの設定が完了です。
Node ISOファイルを登録
現時点でCMLのISOファイルしか登録ができていません。
ProxmoxでCMLのISOファイルは取り外しrefplat-20240225-fcs-iso
へ変更します。
変更後CMLの再起動を行います。
ノード用のISOをCMLに適応
CML 2 System Maintenance Controlsのアドレスであるhttps://xxx.xxx.xxx.xxx:9090
にアクセスしSystemUserでログインします。
[Host] -> [CML2] -> [Copy Refplat ISO] -> [Copy Refplat ISO]
コピーしてよいか確認メッセージがでますので[Copy]クリックして登録します。
コピーが実行されると次のように表示が変わります。完了した際は再び青いボタンが表示されます。
これでノードの登録が完了しました。
CML2.7で追加されたノード用のISOをCMLに適応
続いて今回CML2.7で追加されたノードを登録します。
先ほどと同様にrefplat-20240322-supplemental-iso
をCD/DVD Driveに登録し、CMLを再起動を行います。
CML 2 System Maintenance Controlsのアドレスであるhttps://xxx.xxx.xxx.xxx:9090
にアクセスしSystemUserでログイン後、[Copy Refplat ISO] を実行します。
ようやく、これで新規に追加されたノードが使えるようになりました!
ネットワークの追加
CMLを他のネットワークとつなげて作業したい場合は、ネットワークを追加します。
ProxmoxはESXiの無差別モードといわれる状態と同じです。そのためネットワークを追加・紐づけを行うとCMLの外のNWと中のノードを接続できます。
Proxmoxで新しいネットワークを追加
[Proxmox] -> [System] -> [Network] -> [Create] -> [Buridge]
IPv4,Bridge portsを設定する。Bridge portsは物理ポートで接続されているものを選択します。
CML 2 System Maintenance Controlsの設定
NetworkにBridgeが追加されたら、続いてCMLに紐づけます。
本設定を行わないでProxmoxのCMLにNetworkを設定するとCMLに接続できなくなりますのでご注意ください。
[Host] -> [CML2] -> [ネットワーキング] -> [ブリッジの追加]
ポートやアドレスを設定します。
Proxmox上のCMLにNetworkの設定
CMLのVMで[add] -> [Network Device]をクリックして設定します。
再びCMLのネットワーキングの画面を確認すると通信が行えるようになっています。
CMLラボでext-connにConnectorを設定します。
これで、CMLの外のNWとも通信が可能になりました!
【ご参考】チューニング
CML Labで起動するマシンがちょっと遅いと感じたのでTool->Nodeより設定を変更しました。
再起動などを行いしばらくたつと問題なく動作したこともありましたが、原因は不明のため、もしも今後改善などあれば追記したいと思います。
追記
チューニングよりもISOファイルからの構築ではなく、OVAからCMLを構築する方法のほうがより良いかもしれません。
終わりに
Proxmoxに構築してみよう!と思った際はコミュニティに少し前のCMLで構築された方のキャプチャーがあるだけでした。そのため、今回構築したものよりもより良い設定があるかもしれません。その際は追記していきたいと思います。
また、新しい機能がどのように使えるかはこれから試してみたいと思います。