自宅と Azureを VPN接続してみた (Ciscoルータ編)

2019.07.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

コンサルティング部の川原です。

以前 自宅とAWSのサイト間VPN環境を構築しました。

自宅とAWSをVPN接続してみた (Ciscoルータ編)

次は オンプレ環境(自宅) のCiscoルータと Azureのサイト間VPN接続環境 を構築してみます。

概要

構成図

使っていないPPPoE接続 1セッションをAzureとのVPN接続に利用します。

  • オンプレ側ルータ: Cisco C841M
  • サブネット: オンプレ(自宅)側: 192.168.10.0/24
  • サブネット: Azure側: 10.0.0.0/24
  • 動的ルーティング(BGP): 使用しない

手順

  1. Azure: 各種リソース作成
  2. オンプレ(自宅): CiscoルータのVPN設定
  3. VPN接続確認

Azure: 各種リソース作成

  1. 仮想ネットワーク、サブネット作成
  2. 仮想ネットワークゲートウェイ作成
  3. VPN接続作成

の順番で作成していきます。 作成手順詳細は以前の AWS–Azure間VPN記事を参照ください。

Azure ⇔ AWS間のサイト間VPNを試してみる

1. 仮想ネットワーク、サブネット作成

仮想ネットワーク (10.0.0.0/16), サブネット (10.0.0.0/24), ゲートウェイサブネット (10.0.254.0/24) を準備します。

以前に作成していたリソースを使います。

2. 仮想ネットワークゲートウェイ作成

ゲートウェイサブネット内に仮想ネットワークゲートウェイを準備します。 新規作成する場合はデプロイ完了まで少し時間がかかります。

既に作成していたリソースを使います。

3. ローカルネットワークゲートウェイ作成

自宅側ゲートウェイ情報を作成します。BGP使用のチェックは外します。

  • IPアドレス: 自宅側グローバルIPを記入
  • アドレス空間: 自宅側サブネット (192.168.10.0/24) を記入

4. VPN接続作成

VPN接続リソースを作成します。

オンプレ(自宅): CiscoルータのVPN設定

まずは Ciscoルータに流し込むConfigを取得します。 作成したVPN接続リソースから 構成のダウンロード を選択します。

▼構成テンプレートをダウンロードします。

▼構成テンプレートは以下のようなテキストファイルです。

各項目のConfigを確認しながらCiscoルータへ入れていきます。

  • ACL rules: オンプレ⇔Azure間通信、および IKE・IPsec 通信を許可するConfig。 トラフィック制限を適用している場合は、これらのルールを入れる。
  • IKE configuration: IKE フェーズ1 のConfig
  • IPsec configuration: IKE フェーズ2 のConfig
  • Tunnel interface configuration: トンネルインターフェイスのConfig。 トンネルインターフェイス番号が既存のものと被っている場合は適宜変更する。
  • Static routes: VPN対向側 (今回は Azure VNet: 10.0.0.0/16) に向かう静的ルーティングのConfig。

VPN接続確認

VPN接続確認のため、自宅・Azure側それぞれにマシンを配置します。 Azure側の仮想マシンにはパブリックIPは付与せず、 自宅側(192.168.10.0/24) からの RDP通信 を許可 するネットワークセキュリティグループを適用させます。

  • 自宅側: ノートPC (192.168.10.30)
  • Azure側: WindowsServer2016 仮想マシン (10.0.0.4)

Azureポータル上で確認

作成した VPN接続リソースを見てみます。状態が 接続済み となっていればOKです。

Ciscoルータ コンソール上で確認

IPsec通信を構成する 2つのフェーズ (IKEフェーズ1, IKEフェーズ2) が成功しているか確認します。

  • IKEフェーズ1

    Ciscoルータ コンソールで show crypto ikev2 sa を実行します。

        RO#show crypto ikev2 sa 
         IPv4 Crypto IKEv2  SA 
        
        Tunnel-id Local                 Remote                fvrf/ivrf            Status 
        1         X.X.X.X/500           Y.Y.Y.Y/500           none/none            READY  <--
              Encr: AES-CBC, keysize: 256, PRF: SHA1, Hash: SHA96, DH Grp:2, Auth sign: PSK, Auth verify: PSK
              Life/Active Time: 3600/746 sec

    対象のトンネルの Statusが READY となっていれば OKです。

  • IKEフェーズ2

    次は show crypto ipsec sa を実行します。

        RO#show crypt ipsec sa
        interface: Tunnel11
          ︙
           current_peer X.X.X.X port 500
             PERMIT, flags={origin_is_acl,}
            #pkts encaps: 149, #pkts encrypt: 149, #pkts digest: 149 <--
            #pkts decaps: 107, #pkts decrypt: 107, #pkts verify: 107 <--
           ︙
             inbound esp sas:
                ︙
                Status: ACTIVE(ACTIVE) <--
        
             outbound esp sas:
                ︙
                Status: ACTIVE(ACTIVE) <--

    2つの Tunnelのステータスを確認します。

    • #pkts encaps: X, #pkts encrypt: X, #pkts digest: XX がカウントされていること
    • #pkts decaps: Y, #pkts decrypt: Y, #pkts verify: YY がカウントされていること
    • inbound/outbound esp sas: のステータスが ACTIVE になっていること

RDPで確認

自宅ノートPCからAzure側仮想マシンにRDPしてみます。 ポータル上の 接続 → RDPファイルのダウンロード からプライベートIP (10.0.0.4) に対して RDPを行うファイルをダウンロードします。

▼接続してみます。

無事 仮想マシンに対してプライベートIPでRDPできました。

おわりに

以上、Azureと自宅のサイト間VPNでした。 これで AWS, Azure, 自宅の3拠点間VPNができますね!

参考