KVM を使用した ASAv の導入について
次の図は、ASAv と KVM のネットワーク トポロジの例を示します。この章で説明している手順は、このトポロジの例に基づいています。ASAv は、内部ネットワークと外部ネットワークの間のファイアウォールとして動作します。また、別個の管理ネットワークが設定されます。
この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
カーネルベースの仮想マシン(KVM)を使用して ASAv を導入できます。
次の図は、ASAv と KVM のネットワーク トポロジの例を示します。この章で説明している手順は、このトポロジの例に基づいています。ASAv は、内部ネットワークと外部ネットワークの間のファイアウォールとして動作します。また、別個の管理ネットワークが設定されます。
Cisco.com から ASAv qcow2 ファイルをダウンロードし、Linux ホストに格納します。
http://www.cisco.com/go/asa-software
(注) |
Cisco.com のログインおよびシスコ サービス契約が必要です。 |
このマニュアルの導入例では、ユーザが Ubuntu 14.04 LTS を使用していることを前提としています。Ubuntu 14.04 LTS ホストの最上部に次のパッケージをインストールします。
qemu-kvm
libvirt bin
bridge-utils
Virt-Manager
virtinst
virsh tools
genisoimage
パフォーマンスはホストとその設定の影響を受けます。ホストを調整することで、KVM での ASAv のスループットを最大化できます。一般的なホスト調整の概念については、『Network Function Virtualization Packet Processing Performance of Virtualized Platforms with Linux and Intel Architecture』を参照してください。
以下の機能は Ubuntu 14.04 の最適化に役立ちます。
macvtap:高性能の Linux ブリッジ。Linux ブリッジの代わりに macvtap を使用できます。ただし、Linux ブリッジの代わりに macvtap を使用する場合は、特定の設定を行う必要があります。
Transparent Huge Pages:メモリ ページ サイズを増加させます。Ubuntu 14.04 では、デフォルトでオンになっています。
Hyperthread disabled:2 つの vCPUを 1 つのシングル コアに削減します。
txqueuelength:デフォルトの txqueuelength を 4000 パケットに増加させ、ドロップ レートを低減します。
pinning:qemu および vhost プロセスを特定のCPU コア にピン接続します。特定の条件下では、ピン接続によってパフォーマンスが大幅に向上します。
RHEL ベースのディストリビューションの最適化については、『Red Hat Enterprise Linux6 Virtualization Tuning and Optimization Guide』を参照してください。
KVM のシステム要件については、『Cisco ASA Compatibility』を参照してください。
ASAv を展開する前に、次のガイドラインと制限事項を確認します。
フェールオーバー配置の場合は、スタンバイ装置が同じモデル ライセンスを備えていることを確認してください(たとえば、両方の装置が ASAv30s であることなど)。
重要 |
ASAv を使用してハイ アベイラビリティ ペアを作成する場合は、データ インターフェイスを各 ASAv に同じ順序で追加する必要があります。完全に同じインターフェイスが異なる順序で各 ASAv に追加されると、ASAv コンソールにエラーが表示される可能性があります。また、フェールオーバー機能にも影響が出ることがあります。 |
ASAv を起動する前に、第 0 日(Day 0)用のコンフィギュレーション ファイルを準備できます。このファイルは、ASAv の起動時に適用される ASAv の設定を含むテキスト ファイルです。この初期設定は、「day0-config」というテキスト ファイルとして指定の作業ディレクトリに格納され、さらに day0.iso ファイルへと処理されます。この day0.iso ファイルが最初の起動時にマウントされて読み取られます。第 0 日用コンフィギュレーション ファイルには、少なくとも、管理インターフェイスをアクティブ化するコマンドと、公開キー認証用 SSH サーバを設定するコマンドを含める必要がありますが、すべての ASA 設定を含めることもできます。
day0.iso ファイル(カスタム day0.iso またはデフォルト day0.iso)は、最初の起動中に使用できる必要があります。
初期導入時に自動的に ASAv をライセンス許諾するには、Cisco Smart Software Manager からダウンロードした Smart Licensing Identity(ID)トークンを「idtoken」というテキスト ファイルに格納し、第 0 日用コンフィギュレーション ファイルと同じディレクトリに保存します。
トランスペアレント モードで ASAv を導入する場合は、トランスペアレント モードで実行される既知の ASA コンフィギュレーション ファイルを、第 0 日用コンフィギュレーション ファイルとして使用する必要があります。これは、ルーテッド ファイアウォールの第 0 日用コンフィギュレーション ファイルには該当しません。
(注) |
この例では Linux が使用されていますが、Windows の場合にも同様のユーティリティがあります。 |
ステップ 1 |
「day0-config」というテキスト ファイルに ASAv の CLI 設定を記入します。3 つのインターフェイスの設定とその他の必要な設定を追加します。 最初の行は ASA のバージョンで始める必要があります。day0-config は、有効な ASA 構成である必要があります。day0-config を生成する最適な方法は、既存の ASA または ASAv から実行コンフィギュレーションの関連部分をコピーすることです。day0-config 内の行の順序は重要で、既存の show running-config コマンド出力の順序と一致している必要があります。 例:
|
ステップ 2 |
(任意)Cisco Smart Software Manager により発行された Smart License ID トークン ファイルをコンピュータにダウンロードします。 |
ステップ 3 |
(任意)ダウンロード ファイルから ID トークンをコピーし、ID トークンのみを含む「idtoken」というテキスト ファイルを作成します。 |
ステップ 4 |
(任意)ASAv の初期導入時に自動的にライセンス許諾を行う場合は、day0-config ファイルに次の情報が含まれていることを確認してください。
|
ステップ 5 |
テキスト ファイルを ISO ファイルに変換して仮想CD-ROM を生成します。 例:
この ID トークンによって、Smart Licensing サーバに ASAv が自動的に登録されます。 |
ステップ 6 |
ステップ 1から 5 を繰り返し、導入する ASAv ごとに、適切な IP アドレスを含むデフォルトのコンフィギュレーション ファイルを作成します。 |
ASAv ゲストを KVM ホストに接続し、ゲストを相互接続する仮想ネットワークを設定する必要があります。
(注) |
この手順では、KVM ホストから外部への接続は確立されません。 |
KVM ホスト上に仮想ブリッジ XMLファイルを準備します。第 0 日のコンフィギュレーション ファイルの準備 に記載されている仮想ネットワーク トポロジの例では、3 つの仮想ブリッジ ファイル(virbr1.xml、virbr2.xml、virbr3.xml)が必要です(これらの 3 つのファイル名を使用する必要があります。たとえば、virbr0 はすでに存在しているため使用できません)。各ファイルには、仮想ブリッジの設定に必要な情報が含まれています。仮想ブリッジに対して名前と一意の MAC アドレスを指定する必要があります。IP アドレスの指定は任意です。
ステップ 1 |
3 つの仮想ネットワーク ブリッジ XML ファイルを作成します。次の例では、virbr1.xml、virbr2.xml、および virbr3.xml です。 例:
例:
例:
|
||
ステップ 2 |
以下を含むスクリプトを作成します(この例では、スクリプトに virt_network_setup.sh という名前を付けます)。
|
||
ステップ 3 |
このスクリプトを実行して、仮想ネットワークを設定します。このスクリプトは、仮想ネットワークを稼働状態にします。ネットワークは、KVM ホストが動作している限り稼動します。
|
||
ステップ 4 |
仮想ネットワークが作成されたことを確認します。
|
||
ステップ 5 |
virbr1 ブリッジに割り当てられている IP アドレスを表示します。これは、XML ファイルで割り当てた IP アドレスです。
|
ASAv を起動するには、virt-install ベースの導入スクリプトを使用します。
ステップ 1 |
「virt_install_asav.sh」という virt-install スクリプトを作成します。 ASAv 仮想マシンの名前は、この KVM ホスト上の他の VM 全体において一意である必要があります。 ASAv では最大 10 のネットワークがサポートされます。この例では 3 つのネットワークが使用されています。ネットワーク ブリッジの句の順序は重要です。リストの最初の句は常に ASAv の管理インターフェイス(Management 0/0)、2 番目の句は ASAv の GigabitEthernet 0/0、3 番目の句は ASAv の GigabitEthernet 0/1 に該当し、GigabitEthernet 0/8 まで同様に続きます。仮想 NIC は Virtio でなければなりません。 例:
|
ステップ 2 |
virt_install スクリプトを実行します。 例:
|
KVM ホストの設定を変更することによって、KVM 環境内の ASAv のパフォーマンスを向上させることができます。これらの設定は、ホスト サーバ上の構成時の設定とは無関係です。このオプションは、Red Hat Enterprise Linux 7.0 KVM で使用できます。
CPU ピニングを有効にすると、KVM 構成でのパフォーマンスを向上できます。
KVM 環境内の ASAv のパフォーマンスを向上させるために、KVM CPU アフィニティ オプションを使用して、特定のプロセッサに仮想マシンを割り当てることができます。このオプションを使用する場合は、KVM ホストで CPU ピンニングを構成します。
ステップ 1 |
KVM ホスト環境で、ピンニングに使用できる vCPU の数を調べるために、ホストのトポロジを確認します。 例:
|
||
ステップ 2 |
使用可能な vCPU の数を確認します。 例:
|
||
ステップ 3 |
vCPU をプロセッサ コアのセットにピンニングします。 例:
virsh vcpupin コマンドは、ASAv 上の vCPU ごとに実行する必要があります。次の例は、vCPU が 4 個の ASAv 構成を使用し、ホストに 8 個のコアが搭載されている場合に必要になる KVM コマンドを示しています。
ホストのコア番号は、0 ~ 7 のどの番号でもかまいません。詳細については、KVM のドキュメンテーションを参照してください。
|