ASAvをVMware ESXiにインストールした直後の、デフォルトのConsoleはVMware vSphere Clientです。しかし、ASAの物理アプライアンスへのSerial Consoleによる作業と比較すると、vSphere Client経由のASAvの作業は、テキストエディタからCopy&Pasteをすることができない等、不便なことが多くあります。
Management Interfaceに対してTelnet/sshを有効にしてTelnet/sshクライアントからアクセスするのも一つの方法ですが、Management Interfaceへのアクセスが不通となった場合、管理不能となります。
また、Telnet/sshのセッションを張っておかなければいけないため、Telnet/sshのプロセスが落ちればConsoleは切断されてしまいますので、起動ログ等をTelnet/ssh経由で確認することはできません。
そういった観点から、やはり、ネットワーク機器を管理する上ではSerial Consoleが便利です。
本記事では、ASAvでNetwork Serial Console機能を使い、実機のASAにSerial Consoleを物理的に接続するのと同様の操作感で、ASAvのオペレーションを行う方法を、ASAvだけではなく、VMwareの設定も含めた手順として紹介いたします。
前提条件
- VMware ESXiに関してはEnterpriseライセンス以上が必要です。StandardライセンスではNetwork Consoleを使用することができません。
- 本記事ではVMware ESXi5.5 / vSphere Client5.5 / ASA9.3(2)200 を使って動作確認しております。他バージョンでは動きが少し異なる場合がございます。また、VMware製品の操作に関しては正確なものではなく、あくまで参考情報としてお考えください。
- ASAvは既にインストールされており、以下のようにvSphere Client上でASAvの設定作業等が出来ることが前提で本記事は作成しております。ASAvのインストールは別記事(後日掲載予定)をご参照ください。
手順
1. ASAvのShutdown
まず、最初に、ASAvが起動しているとNetwork Consoleの追加ができません。起動している場合はvSphere Clientから対象のASAvのVirtual Machineを右クリックし、[電源]->[パワーオフ]を実行します。

パワーオフの確認が出てきますので、[はい]をクリックします。
2. VMware ESXiでのNetwork Serial Consoleの追加
ASAvがshutdownしたことを確認したら、VMware ESXiでのNetwork Serial Consoleの設定を追加します。
先ほどと同様にASAvのVirtual Machineを右クリックし、[設定の編集]を実行します。
ハードウェアタブで、追加をクリックします。

[シリアルポート]を選択し[次へ]をクリックします。

シリアルポート出力で[ネットワーク経由で接続]を選択し[次へ]をクリックします。

ネットワークバッキングで[サーバ]を選択し、ポートURI:に
telnet://<ESXi_Host_IP>:<TCP_Port>
の書式で入力します。
ここで入力するのはASAvに割り当てられているIPアドレス/TCP Portではなく、ESXi hostのIPアドレスと未使用のTCPポートになります。
ここでは仮にTCP:10001を設定しております。
そして、デバイスのステータスの[パワーオン時に接続]、入出力モードの[ポーリング時にCPUを放棄]にチェックが入っていることを確認し、[次へ]をクリックします。

設定内容を確認して[終了]をクリックします。
最後に、仮想マシンのプロパティで[OK]をクリックしてESXiのNetwork Serial Consoleの設定を終了します。
3. ESXi hostのFirewall設定
ESXiでは、デフォルトで使用しないPortは遮断されており、Network Serial Console用のTCP Portについてもデフォルトで遮断されているため、許可する設定を行います。
対象となるESXi hostを選択し、[構成]->[ソフトウェア]->[セキュリティプロファイル]を実行します。

デフォルトでは以下の通り、Network Serial Consoleへのアクセスが許可されていないので、追加をします。
[プロパティ]をクリックします。

[VMシリアルポートはネットワークに接続されます]にチェックを入れて、[OK]をクリックします。

上記が追加されていることを確認します。

以上でESXi側の設定は完了となります。
4. ASAvでのNetwork Serial Console Portの設定
最後にASAv側のNetwork Serial Consoleの設定を行います。
まず、ASAvにおいては、Network Serial Consoleを使うか、通常のvSphere ClientのConsoleを使うかどうかはdisk0:/use_ttyS0というファイルが存在するかどうかで判断します。
逆に言えば、ファイルの中身は何でも構わないので、本記事では最初からASAvのディレクトリに入っているファイルをコピーしてdisk0:/use_ttyS0を生成します。
ASAvはShutdownしているので、vSphere Consoleを開いて起動します。ASAvのVirtual Machineを右クリックして[コンソールを開く]を実行します。
Power Onをクリックし、ASAvを起動します。

しばらく時間が経って、ASAvの起動が完了します。
Cisco.comのドキュメント上にも記載されておりますが、disk0:配下のcoredumpinfoというフォルダ内にcoredump.cfgというファイルがあるので、それを以下の通りdisk0:/use_ttyS0へとコピーします。
ファイルが存在して名前さえ合っていればよいので、ファイルの作り方はこの方法でなくても問題ありません。
ciscoasa> enable
Password:
ciscoasa#
ciscoasa# cd coredumpinfo
ciscoasa# copy coredump.cfg disk0:/use_ttyS0

一個上のディレクトリに戻り、use_ttyS0が存在することを確認します。
ciscoasa# cd ..
ciscoasa# dir

use_ttyS0が存在することを確認して、ASAをreloadします。
ciscoasa# reload
再起動を開始してしばらくすると、
Lina to use serial port /dev/ttyS0 for console IO
というメッセージが出てきて、それ以降はNetwork Serial Consoleに出力されるようになります。以上で設定は終了となります。

5. 動作確認(TeraTermを使用)
最後に、好きなTerminalソフトを使って先ほど[2. Network Serial Consoleの追加]で設定した<ESXi_Host_IP>:<TCP_Port>へtelnetでアクセスします。
本記事ではTeraTermを使って動作確認をしております。

以下を見ていただくと分かる通りSerial Consoleに出てくるような起動中のログが出力されていることが確認できます。

以降はASAの物理アプライアンスにSerial Consoleからアクセスするのと同様に、設定作業や各種オペレーションが可能となります。
6. 最後に
一旦、Network Serial Consoleの設定をASAvに対して行うと、disk0:/use_ttyS0が存在する限りは、vSphere Client側に出力がされなくなります。vSphere Clientへの出力に戻すためには、該当ファイルを削除する必要がございます。
筆者は最初、VMWareのライセンス制限があることを知らずに、ESXi Standard Licenseで本稿の内容を実現しようとしました。しかし、その場合、Network Serial ConsoleはVMware ESXi上では一見追加出来るように見えて、実際には動作しません。従いまして、ASDMやtelnet/ssh等、Network Serial Console以外のASAvへのアクセス手段を残しておかないと、disk0:/use_ttyS0を消すことすら出来ず、ASAvを最初からインストールしなおすという状況に陥りました。
繰り返しになりますが、VMware ESXiのEnterpriseライセンス以上が必要ですので、その点はお気を付けください。