フォーム読み込み中
皆さん、こんにちは!
Microsoft Azureの提案と導入を担当しているエキスパートSEの中山です。
今回は、Microsoft Azure上で、Cisco CSR 1000Vを動かしてみたいと思います。
CSRはCloud Service Routerの略称で、Cisco社が提供する仮想ルータです。CSR 1000VはLinux カーネルを搭載したLinux 仮想マシンイメージで提供されます。Azureでは、ネットワーク仮想アプライアンス (Network Virtual Appliance: NVA) の一つとなります。
ファイアウォールやUTM、ロードバランサーなどのネットワークアプライアンス機器を仮想マシンとして提供するものです。ネットワーク仮想アプライアンスは、Azure Marketplace上で様々なサードパーティから提供されています。
Azure上でネットワーク仮想アプライアンスを使うメリットとして以下があります。
参考までに、CSR 1000Vを例に、Azure標準サービスであるVPN GatewayとAzure Firewallを比較してみました。
CSR 1000VはCisco社のルータ製品のため、ネットワーク機能は比較的オールマイティに使えます。一方、Azure標準サービスは機能が特化していますが、標準で冗長化されていたり、継続的に機能改善しています。
検証では、Azureの東日本リージョンと米国西部リージョンにCSR 1000Vを作成して、対向でIPsec VPNのトンネルを確立して、それぞれのリージョンにあるWindowsサーバ間で通信を行ってみたいと思います。
検証を実施するにあたっては、Cisco社の以下のサイトを参考にしました。
Cisco CSR 1000v Deployment Guide for Microsoft Azure - Cisco
検証環境の構成は以下の通りです。
各リージョンにあるWindowsサーバ間の通信は、CSR 1000VのIPsec VPNを経由する構成です。
各リージョンでは、仮想ネットワークおよびサブネット、Windowsサーバの仮想マシンは以下の設定情報で作成済みとします。
■設定情報
ここからは、CSR 1000Vの作成とIPsec VPNの構築となります。
設定の流れと詳細をみていきます。
まずはじめに、Azure MarketplaceからCSR 1000Vを見つけます。
※Azure Marketplaceの検索欄に、"cisco"と入力するのが早いです。
CSR 1000Vとしては、以下の2種類のテンプレートが見つかると思います。
「Cisco CSR 1000V Solution Deployment」は、Azureポータル上の設定を含めてパッケージ化されたテンプレートです。CSR 1000VをAzure標準サービスのように簡単に作成できます。
「Cisco Cloud Services Router (CSR) 1000V」は、CSR 1000V単体をLinux仮想マシンと同じ要領で作成できます。検証ではこちらのBYOL版を使いました。(バージョンは、XE 16.10 を選択)
CSR 1000Vの仮想マシンのサイズはvNICの数に応じて推奨のサイズがあります。例えばvNICの数が2つだと、DS2、DS3、またはDS4が推奨されています。本検証ではvNICは2つとしますので、仮想マシンのサイズは、DS2 v2を選びました。
Linux仮想マシンを作成する要領で、東日本リージョンと米国西部リージョンの両方で、CSR 1000Vを作成して、subnet1に接続します。
CSR 1000Vを作成後、IPsec VPNの構築として以下の設定を東日本リージョンと米国西部リージョンの両方で行います。
通信の性能要件によっては、高速ネットワークの設定(SR-IOV)についても考慮する必要がありますが、今回は割愛します。
設定内容を順に説明します。
CSR 1000Vを作成直後はvNIC(GE1)しか存在しません。vNIC(GE2)は、CSR 1000Vを作成後に以下の流れで、手動で追加する必要があります。
(1) ネットワークインターフェイスの作成と接続
2つ目のvNICとして、Azureポータルでネットワークインターフェイスを作成して、subnet2に関連付けます。そのネットワークインターフェイスをCSR 1000Vに接続します。
ネットワークインターフェイスの接続は、CSR 1000Vを停止した状態で行う必要があります。以下は設定例です。
(2) CSR 1000Vで2つ目のvNICを設定
2つ目のvNIC(GE2)はデフォルトではIPアドレスが設定されていませんので、CSR 1000Vにログイン後、「ip address dhcp」コマンドでIPアドレスを割り当てます。
※CSR 1000VでDHCPの設定を行うことで、Azureポータルで設定されているIPアドレスがそのままCSR 1000Vに割り当てられます。
2つ目のvNICを設定して、インターフェイスをアップした後、IPアドレスが割り当てられたことを「show ip int brief」コマンドで確認します。
以下は設定例です。
vNIC(GE2)については、送信元や送信先が相手側ネットワークになっているパケットが通りますので、AzureポータルでIP転送を [無効] から [有効] にします。
なお、vNIC(GE1)についてはIPsec VPNのトンネル側になりますので、IP転送が [無効] のままでかまいません。以下は設定例です。
CSR 1000Vを作成直後は、vNIC(GE1)についてネットワークセキュリティグループが構成済みであり、インターネットからのssh(22/TCP)のみが受信許可されています。
IPsec VPNを確立するために、以下のポートへのインターネット受信許可ルールを追加します。
受信許可ルールを追加した後の設定例です。
CSR 1000VのパブリックIPアドレスをIPsec VPNのトンネル終端として設定するため、パブリックIPアドレスを固定化する必要があります。
パブリックIPアドレスを、[動的]から[静的]に変更します。
以下は設定例です。
CSR 1000VにsshでログインしてIPsecの設定を行います。
以下はコンフィグ例です。
なお、CSR 1000Vでは、WindowsやLinuxの仮想マシンと同様にインターネット向けのデフォルトルートが標準で設定されます。
そのため本検証では、対向のCSR 1000VのパブリックIPアドレス宛てのルーティングは明示的に追加していません。
crypto isakmp policy 1
encr aes
hash sha256
authentication pre-share
group 14
crypto isakmp key <KEY> address <対向のCSR 1000VのパブリックIPアドレス>
crypto ipsec transform-set T1 esp-3des esp-md5-hmac
mode transport
crypto ipsec profile P1
set transform-set T1
interface Tunnel0
ip address <トンネルインタフェースのIPアドレス><トンネルインタフェースのサブネットマスク>
tunnel source GigabitEthernet1
tunnel mode ipsec ipv4
tunnel destination <対向のCSR 1000VのパブリックIPアドレス>
tunnel protection ipsec profile P1
対向のCSR 1000VともにIPsecの設定を行った後、IPsecのステータス確認を行います。
ステータス確認には以下のコマンドが使えます。
show crypt session
show crypt isakmp sa
show crypt ipsec sa
また、ループバックインターフェイスを設定することで、対向のCSR 1000Vのループバックインターフェース宛てに疎通確認を行うことができます。
(1) ユーザ定義ルートの設定
Azureポータルでユーザ定義ルートを作成して、それぞれのリージョンのsubnet2に関連付けます。ユーザ定義ルートの設定例です。
(2) CSR 1000Vでのルーティング追加
相手側ネットワークへのルーティングを追加します。
以下は東日本リージョンのCSR 1000Vの設定例です。
ここまででCSR 1000Vの設定が終わりますので、writeコマンドで設定を保存します。
CSR 1000VでIPsec VPNのトンネルを確立した状態で、Windowsサーバ間でpingおよびリモートデスクトップ接続(RDP)を行ってみたところ、問題なく疎通が取れました。
以下は東日本リージョンのWindowsサーバからのtracerouteの結果です。
※Windowsサーバでは、事前にWindowsファイアウォールの通信許可設定を行っています。
今回の検証では、「Cisco Cloud Services Router (CSR) 1000V」のテンプレートを使ってCSR 1000Vを作成して、IPsec VPNを一から構築してみました。
もう一つのテンプレートである「Cisco CSR 1000V Solution Deployment」では、一度に複数のvNIC構成で作成できたり、作成時点でAzureポータルの設定が既に反映されていたりと、より構築が簡単になっていますので、こちらを使うケースの方が多いかもしれません。
実際の案件では、要件に応じてネットワーク仮想アプライアンスを使いたいシーンも出てくると思います。
ただし、ネットワーク仮想アプライアンスは仮想マシン(IaaS)であり、Azureのマネージドサービス(PaaS)ではありません。そのため、ネットワーク仮想アプライアンス自体の保守やメンテナンスは別途考慮する必要がありますのでご注意ください。
最後に、オンプレミスで導入していた馴染みのあるネットワーク機器をAzure上で簡単に動かすことができる点は、クラウドを使ったネットワーク設計の幅が広がるため、非常に有益だと思いました。
みなさんもぜひ、ネットワーク仮想アプライアンスを、Azure上で実現するネットワーク機能の選択肢として検討していただければと思います。
次回も案件で使えそうなネタを探していきたいと思います。
それではまた!
Hiroyuki Nakayama
最近は、Azureを始め、Alibaba CloudやGCP、IBM Cloudなどのマルチクラウド案件で日々SEとして携わっています。AZ-102 / 300 / 301 / 500 取得済み
今後も業務の合間に、検証レポートを中心にブログを書いていきます。
Microsoft Azureは、Microsoftが提供するパブリッククラウドプラットフォームです。コンピューティングからデータ保存、アプリケーションなどのリソースを、必要な時に必要な量だけ従量課金で利用することができます。
条件に該当するページがございません