CML2.6で快適な検証ライフを手に入れよう！

# はじめに

:::note info
この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2023 の 5日目として投稿しています。
:::

2017年版: [https://qiita.com/advent-calendar/2017/cisco](https://qiita.com/advent-calendar/2017/cisco)
2018年版: [https://qiita.com/advent-calendar/2018/cisco](https://qiita.com/advent-calendar/2018/cisco)
2019年版: [https://qiita.com/advent-calendar/2019/cisco](https://qiita.com/advent-calendar/2019/cisco)
2020年版 1枚目: [https://qiita.com/advent-calendar/2020/cisco](https://qiita.com/advent-calendar/2020/cisco)
2020年版 2枚目: [https://qiita.com/advent-calendar/2020/cisco2](https://qiita.com/advent-calendar/2020/cisco2)
2021年版: [https://qiita.com/advent-calendar/2021/cisco](https://qiita.com/advent-calendar/2021/cisco)
2021年版(2枚目): [https://qiita.com/advent-calendar/2021/cisco2](https://qiita.com/advent-calendar/2021/cisco2)
2022年版(1,2): [https://qiita.com/advent-calendar/2022/cisco](https://qiita.com/advent-calendar/2022/cisco)
2023年版: [https://qiita.com/advent-calendar/2023/cisco](https://qiita.com/advent-calendar/2023/cisco)<---こちら


# CMLがもっと便利に！
現在2.6までリリースされているCML(Cisco Modeling Labs)、皆さんバージョンアップしてますか？マルチウィンドウやPATtyなど、便利な機能が追加されています。CMLをバージョンアップして、快適な検証ライフを手に入れましょう！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324859/fdbacd85-115b-ebdd-4290-a1ce6c3feb35.png)


## マルチウィンドウ
<dl>
<dt>今までのCMLでは</dt>
<dd>SwtichやRouterのIOSの設定をする際、CML上の埋め込みのブラウザからTelnetしてコマンドを打ち込んでいました。ウインドウは１つなので、CML上からアクセスできるデバイスは１台のみになってしまいます。
<dd>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324859/5de256fb-08ec-73f9-20d1-1177d29df91b.png)


<dt>CML2.6では</dt>
<dd>１つしかなかったウインドウが、複数開けるようになり、複数のデバイスにアクセスして、コマンドを打てるようになりました。並べて表示すればshow commandを比較できるので作業効率が上がります。


![8fadabd4-ffe9-460b-a3f6-e59828595981.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324859/3e445393-76b6-0d0a-bb4a-99f507487509.png)

ネットワークデバイスをコンソールやVNC接続した際にページ下部に表示されるタブをペインと言い、コンソールをマルチウインドウで表示し、複数のデバイスを同時に開くことができます。また、デバイスのコンソールセッションとパケットキャプチャーを同時に実行が可能になり、状態を確認しやすくなりました。
使い方はウインドウの＋アイコンをクリックするとペインが新たに開きます。既存のペインで複数タブを開いていた場合に、一つのタブをドラックアンドドロップで新しいペインに移動し自由に配置できます。
</dl>

## PATty
<dl>
<dt>今までのCML</dt>
<dd>ブラウザ経由でデバイスにアクセスするのではなく、お気に入りのターミナルソフトを使ってアクセスしたい方向けに２つのソリューションが用意されていました。<br>
お好みのターミナルソフトが使えますが、アプリケーションのインストールや事前設定に手間がかかりました。<br>
<br>
<dd>1. コンソールサーバ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324859/07e0ef28-01c4-a0d5-4c79-b0340cde2a88.png)
コンソールサーバとして機能しているCML自体にセッションを貼って、CMLから各装置に二段階でログインする方法
</dd>

<dd>2. ブレイクアウトツール

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324859/8922b491-6e7a-616a-adf0-498b39a060e7.png)
ブレイクアウトツールをインストールしたPCをプロキシとしてデバイスにコンソール接続する方法
</dd>


<dt>CML2.6では</dt>
<dd>Tagを使って"CMLのIPアドレスのポート"と"CML上で実行されているデバイスのポート"をマッピングできるPATtyの機能が実装されました。マッピング後はお好みのターミナルソフトを使って、直接デバイスにアクセスできます。GUI上で設定できるので、専用ソフトのインストールは不要です。コンソール、VNC、Telnet/SSH接続等に活用できます。
</dl>

## PATtyについて調べてみました
<dl>
マッピングする対象は大きく分けて２パターンあります。

1. CML上のデバイスの　コンソール/VNCにマッピングする場合
外部端末がCMLの特定のポートアクセスすると、CML上にあるデバイスのにコンソール/VNCに接続されます。CMLコンソール経由で接続するため、IPアドレスを意識する必要はありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324859/7206f439-9f29-1e06-0f48-ea61e305b6f5.png)
例えば、TagにSerial:7999と設定した場合、
自身の端末から[CMLのIPアドレス]:7999宛てにtelnet接続するとコンソールに接続されます。<br><br>

   

2. CML上のデバイスの　NICにマッピングする場合
外部端末がCMLアドレスの特定ポートにアクセスした際、CML上にあるデバイスのNICにアクセスさせたい場合は、External ConnectorをNAT構成にし、デバイスに到達できるようにします。この構成は、CML上のデバイスにTelnet/SSH/Netconf等で直接接続したい場合に用いられます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324859/0bebe4e6-4d8b-4d56-68d1-1acbc2f774b1.png)
例えば、Tagにpat:7998:23と設定した場合、
自身の端末から[CMLのIPアドレス]:7998宛てにtelnet接続すると、NICにTelnet接続されます。<br><br>

</dl>

## 試してみよう PATty
<dl>
今回以下の手順でコンソール/VNCにマッピングを試してみました。

### 操作の流れ

<dt>[PATtyを有効にする]</dt>
<dd>
PATtyはデフォルト無効のため、以下のチェックボックスからPATtyを有効にします。
https://[CMLのIPアドレス]:9090/にアクセスし、サービス＞システムサービスからvirl2-pattyを探し、チェックを入れて起動する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324859/00e15217-cfdf-2c02-ae5e-13cbb75b9800.png)

<dt>[PATtyを有効にする]</dt>
<dd>
サービス＞端末から /etc/default/patty.envのファイルにある
OPTS="-vnc -serial"をコメントアウトする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324859/bbcb5e77-08ad-26c3-497e-0928149bebbe.png)

<dt>[ポートをコンソールにマッピングする]</dt>
<dd>
Tags欄にserial:[ポート番号]を入力する。

※使用できるポート番号は2000-7999まで(デフォルト）
※CMLを複数人で利用する場合は、ポート番号がバッティングしないようにする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324859/c83a36f8-caab-5a05-e9a8-940f7c4c6e19.png)
↑7999ポートにアクセスしたらコンソールに接続されるように設定

<dt>[ポートのコンソールにマッピングに成功！]</dt>
<dd>
TeraTermから　telnet [CMLのIPアドレス] 7999を実行し、無事コンソールに接続。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324859/e725068d-5c77-c99b-fdd6-44dba63092c4.png)

<dt>[同様の設定で、ポートのVNCをマッピングにも成功！]</dt>
<dd>
Tags欄にvnc:[ポート番号]を入力する。（図ではvnc:7997と入力）
VNCから[CMLのIPアドレス]：7997にアクセスすると、DeskTop画面が表示されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324859/ff32b6cd-1b46-1646-4ec0-8804e10606b0.png)

</dl>

# まとめ
CML上のデバイスへのコンソール接続、今までブレイクアウトツールを使っていましたが、GUI上のTag欄でポートをマッピングするだけで簡単に接続できました。お気に入りのターミナルソフトが使えるので検証効率がUPしました。VNCも同様の設定で利用できるのでぜひお試しください。次回はTelnet/SSH/NETCONF等を試してみたいと思います。

# 免責事項
本サイトおよび対応するコメントにおいて表明される意見は、投稿者本人の個人的意見であり、シスコの意見ではありません。本サイトの内容は、情報の提供のみを目的として掲載されており、シスコや他の関係者による推奨や表明を目的としたものではありません。各利用者は、本Webサイトへの掲載により、投稿、リンクその他の方法でアップロードした全ての情報の内容に対して全責任を負い、本Web サイトの利用に関するあらゆる責任からシスコを免責することに同意したものとします。