拡張 VPN Gateway のクイックスタート

更新日時
Copy as MD
重要
  • 拡張 VPN Gateway は現在、招待制ベータ版です。この機能を使用するには、Alibaba Cloud のアカウントマネージャーに連絡して、サービスのアクティベーションを申請してください。

  • 拡張 VPN Gateway と標準 VPN Gateway の詳細な比較については、「機能比較」をご参照ください。

オープンソースソフトウェアの strongSwan を使用して、拡張 VPN Gateway との IPsec 接続を迅速に確立し、オンプレミス IDC と VPC 間のプライベート通信を可能にします。

シナリオ

ある企業がマレーシア (クアラルンプール) リージョンに VPC を利用しており、その VPC を拡張 VPN Gateway と strongSwan を使用してオンプレミス IDC に接続します。

このシナリオでは、オンプレミス IDC には単一のパブリック出口 IP アドレスがあり、デュアルトンネル IPsec 接続を使用して VPN Gateway に接続します。

image

リソース計画

  • クラウドリソース:マレーシア (クアラルンプール) リージョンにある、CIDR ブロックが 10.0.0.0/16 の VPC。

    • vSwitch 1:アベイラビリティーゾーン A にあり、CIDR ブロックは 10.0.0.0/24 です。

    • vSwitch 2:アベイラビリティーゾーン B にあり、CIDR ブロックは 10.0.1.0/24 です。

    • Elastic Compute Service (ECS) インスタンス:vSwitch 1 にデプロイされ、IP アドレスは 10.0.0.1 です。

    • VPN Gateway:1 つの IPsec 接続を作成します。システムは、この接続に 2 つのパブリック IP アドレスを自動的に割り当てます。

      • IPsec アドレス 1 (プライマリトンネル用):XX.XX.1.1

      • IPsec アドレス 2 (セカンダリトンネル用):XX.XX.2.2

  • オンプレミスリソース:CIDR ブロックが 172.16.0.0/16 のオンプレミス IDC。

    • strongSwan デバイス:プライベート IP アドレス 172.16.0.1。

    • パブリック出口 IP アドレス:XX.XX.3.3

  • 暗号化アルゴリズム:AES-256-GCM-16 / SHA-256 / DH Group 14。これはオンプレミスのデバイスで指定する必要があります。拡張 VPN Gateway は、互換性のあるアルゴリズムを自動的にネゴシエーションします。

  • ルーティング方法:ポリシーベースモードで静的ルーティングを使用します。このモードでは、両端のネットワークを定義して、VPN トンネルを通過するトラフィック (いわゆる「対象トラフィック」) を指定します。システムは、このトラフィックを自動的にルーティングし、必要なルートを作成します。

重要

このトピックでは、単一のパブリック出口 IP アドレスと静的ルーティングを使用するシナリオについて説明します。デュアルパブリック出口 IP アドレスまたは BGP 動的ルーティングを使用するシナリオについては、「strongSwan 設定例」をご参照ください。

前提条件

  • VPC の CIDR ブロックとオンプレミス IDC の CIDR ブロックが重複していないこと。

  • 「リソース計画」セクションで説明されているように、VPC を作成済みであること。VPC には、異なるアベイラビリティーゾーンにある 2 つの vSwitch と、接続をテストするための少なくとも 1 つの ECS インスタンスが含まれていること。

  • オンプレミス IDC に Linux サーバーがデプロイされていること。このトピックでは、CentOS Stream 9 を例として使用します。サーバーにはパブリック出口 IP アドレスが 1 つあります。このサーバーに strongSwan をインストールして、オンプレミスゲートウェイとして使用します。

ステップ 1:拡張 VPN Gateway の作成

  1. VPN Gateway ページに移動します。上部メニューで、[マレーシア (クアラルンプール)] リージョンを選択します。

  2. Enhanced IPsec-VPN タブで、Enhanced IPsec-VPN の作成 をクリックします。

    重要

    拡張 VPN Gateway は招待制ベータ版です。Enhanced IPsec-VPN タブが表示されない場合は、Alibaba Cloud のアカウントマネージャーに連絡してサービスのアクティベーションを依頼してください。

    • リージョン:VPC があるリージョンを選択します。このトピックでは、[マレーシア (クアラルンプール)] を選択します。

    • VPC:接続するターゲット VPC を選択します。

    • vSwitch 1:アベイラビリティーゾーン A の vSwitch を選択します。

    • vSwitch 2:アベイラビリティーゾーン B の vSwitch を選択します。クロスゾーンの高可用性を確保するために、この vSwitch は vSwitch 1 とは異なるアベイラビリティーゾーンにある必要があります。利用可能な vSwitch がない場合は、まず作成してください。

      システムは、各 vSwitch に Elastic Network Interface (ENI) を作成します。これらの ENI は、IPsec 接続と VPC 間のトラフィックのインターフェイスとして機能します。各 ENI は、その vSwitch から 1 つの IP アドレスを使用します。

ステップ 2:カスタマーゲートウェイの作成

カスタマーゲートウェイは、オンプレミスのゲートウェイデバイスのパブリック IP アドレスを記録する Alibaba Cloud 内のオブジェクトです。このシナリオでは、オンプレミス IDC にはパブリック出口 IP アドレスが 1 つしかないため、作成する必要があるカスタマーゲートウェイは 1 つだけです。

  1. VPN Gateway コンソールの左側メニューで、カスタマーゲートウェイ をクリックします。

  2. カスタマーゲートウェイの作成 をクリックし、パラメーターを設定します。

    • 名前:カスタマーゲートウェイの名前を入力します。例:cgw-idc-kl

    • IP アドレス:オンプレミス IDC のパブリック出口 IP (XX.XX.3.3) を入力します。

ステップ 3:IPsec 接続の作成

  1. 左側メニューで IPsec 接続 をクリックし、次に VPN ゲートウェイの選択 をクリックします。

  2. IPsec 接続の基本パラメーターを設定します。

    • IPsec 接続名:リソースに意味のある名前を入力します。例:ipsec-demo

    • リージョン[マレーシア (クアラルンプール)] を選択します。

    • ゲートウェイタイプEnhanced IPsec-VPN を選択します。

    • 課金:値は自動的に CDT 課金 に設定されます。詳細については、「CDT パブリックネットワークトラフィック」をご参照ください。

    • VPN ゲートウェイと関連付け:ステップ 1 で作成した拡張 VPN Gateway を選択します。

    • ルーティングモード保護されたデータフロー を選択します。このモードでは、両端のネットワークセグメントを定義する必要があります。システムは、一致するトラフィックをトンネル経由で自動的に転送し、ルートを生成します。

    • ローカルネットワーク:VPC の CIDR ブロック 10.0.0.0/16 を入力します。

    • リモートネットワーク:データセンターの CIDR ブロック 172.16.0.0/16 を入力します。

    • 今すぐ有効化はい を選択すると、Alibaba Cloud はピアとのネゴシエーションをただちに開始します。これにより、ピアが設定された後、接続が迅速に確立されます。

    • BGP の有効化:このシナリオでは、このオプションを無効のままにします。

  3. トンネルパラメーターを設定します。

    拡張 VPN Gateway は複数アルゴリズムネゴシエーションをサポートしているため、デフォルトの暗号化設定を使用できます。

    • トンネル 1 (プライマリ)

      • カスタマーゲートウェイ:ステップ 2 で作成したカスタマーゲートウェイを選択します。

      • 事前共有鍵:このキーは、IPsec ネゴシエーション中の認証に使用されます。トンネルの両端で事前共有キーが一致しない場合、トンネルは確立できません。大文字、小文字、数字、特殊文字を含む強力なキーを使用してください。

    • [トンネル 2 (セカンダリ)]

      • カスタマーゲートウェイ:このシナリオのオンプレミス IDC にはパブリック出口 IP アドレスが 1 つしかないため、プライマリトンネルに選択したのと同じカスタマーゲートウェイを選択します。

      • 事前共有鍵:このトピックでは、プライマリトンネルと同じキーを使用します。

    重要

    拡張 VPN Gateway は、デフォルトで複数アルゴリズムネゴシエーションをサポートしています。暗号化設定では、一般的に使用される複数のアルゴリズムが事前に選択されています。システムは、オンプレミスのゲートウェイデバイスとのネゴシエーションによって対応アルゴリズムを自動的に検出します。アルゴリズムを手動で指定する必要がある場合は、暗号化設定 セクションを展開して設定を変更します。

  4. OK をクリックすると、ルートの公開を促すダイアログボックスが表示されます。ここでは キャンセル をクリックします。

    IPsec 接続リソースの初期化には約 5 分かかります。この期間中、ステータス は [準備中] となり、ルートを設定することはできません。まずステップ 4 で strongSwan デバイスを設定し、その後ステップ 5 でルート設定を完了することができます。
  5. 2 つのクラウドトンネルのパブリック IP アドレスを記録します。これらは strongSwan の設定に必要になります。

    1. IPsec-VPN 接続 ページに戻り、作成した IPsec接続を見つけます。

    2. ゲートウェイ IP アドレス 列で、[IPsec アドレス 1][IPsec アドレス 2] を記録します。このトピックでは、例として XX.XX.1.1XX.XX.2.2 を使用します。

ステップ 4:strongSwan の設定

重要

このトピックのサードパーティ製品情報は、参照のみを目的としています。Alibaba Cloud は、サードパーティ製品のパフォーマンスや信頼性について、明示または黙示を問わず、いかなる保証も行わず、その運用から生じるいかなる影響についても責任を負いません。

次の例は、64 ビット CentOS Stream 9 オペレーティングシステムで strongSwan を設定する方法を示しています。他のオペレーティングシステムについては、strongSwan の公式ドキュメントをご参照ください。

1. ファイアウォールルールの設定

strongSwan デバイスで、ESP プロトコル (IP プロトコル番号 50)UDP ポート 500、および UDP ポート 4500 を許可し、クラウド側の 2 つの IPsec アドレスからのアクセスを許可します。

次のコマンドは iptables を例として使用しています。使用しているファイアウォールツールに基づいてコマンドを変更してください。

iptables -I INPUT -s XX.XX.1.1,XX.XX.2.2 -p esp -j ACCEPT                
iptables -I INPUT -s XX.XX.1.1,XX.XX.2.2 -p udp --dport 500 -j ACCEPT
iptables -I INPUT -s XX.XX.1.1,XX.XX.2.2 -p udp --dport 4500 -j ACCEPT

2. IP フォワーディングの有効化

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sudo sysctl -p

3. strongSwan のインストール

dnf install epel-release -y
dnf install strongswan -y

4. strongSwan の設定

  1. 元の設定ファイルをバックアップします。

    mv /etc/strongswan/swanctl/swanctl.conf /etc/strongswan/swanctl/swanctl.conf.bak
  2. 新しい設定ファイルを作成します。

    vi /etc/strongswan/swanctl/swanctl.conf
  3. 次の設定を追加してファイルを保存します。プレースホルダーの値を実際の値に置き換えてください。

    # strongSwan デュアルトンネル IPsec-VPN 設定:Alibaba Cloud 拡張 VPN Gateway + 単一のオンプレミスパブリック出口 IP + ポリシーベースモード
    #
    # 注記:「変更」とマークされたパラメーターのみを変更してください。残りはデフォルトのままにしてください。
    # アルゴリズム詳細:aes256gcm16-sha256-modp2048 = AES-256-GCM-16 / SHA-256 / DH Group 14
    # 高可用性:vco1 (priority=1) はプライマリトンネル、vco2 (priority=2) はセカンダリトンネルです。フェイルオーバーは自動で行われます。
    connections {
       # === トンネル 1 (プライマリ) ===
       vco1 {
          version = 2
          dpd_delay = 10
          rekey_time = 84600
          over_time = 1800
          proposals = aes256gcm16-sha256-modp2048
          encap = yes
          local_addrs  = 172.16.0.1                # 変更:strongSwan サーバーのネットワークインターフェイスのプライベート IP アドレス。サーバーが NAT デバイスの背後にある場合は、そのプライベート IP アドレスを入力します。サーバーのネットワークインターフェイスにパブリック IP アドレスが直接割り当てられている場合は、パブリック IP アドレスを入力します。
          local {
             auth = psk
             id = XX.XX.3.3                        # 変更:オンプレミスゲートウェイのパブリック出口 IP アドレス。
          }
          remote_addrs = XX.XX.1.1                 # 変更:Alibaba Cloud トンネル 1 のパブリック IP アドレス。
          remote {
             auth = psk
             id = XX.XX.1.1                        # 変更:Alibaba Cloud トンネル 1 のパブリック IP アドレス。remote_addrs と一致する必要があります。
          }
          children {
             vco_child1 {
                local_ts  = 172.16.0.0/16          # 変更:オンプレミスネットワークの CIDR ブロック (対象トラフィック)。
                remote_ts = 10.0.0.0/16            # 変更:VPC の CIDR ブロック (対象トラフィック)。
                mode = tunnel
                rekey_time = 85500
                life_time = 86400
                dpd_action = restart
                start_action = start
                close_action = start
                esp_proposals = aes256gcm16-sha256-modp2048
                priority = 1                       # プライマリトンネルを指定します。このパラメーターは変更しないことを推奨します。
             }
          }
       }
       # === トンネル 2 (セカンダリ) ===
       vco2 {
          version = 2
          dpd_delay = 10
          rekey_time = 84600
          over_time = 1800
          proposals = aes256gcm16-sha256-modp2048
          encap = yes
          local_addrs  = 172.16.0.1                # 変更:strongSwan サーバーのネットワークインターフェイスの IP アドレス。トンネル 1 の local_addrs と同じである必要があります。
          local {
             auth = psk
             id = XX.XX.3.3                        # 変更:オンプレミスゲートウェイのパブリック出口 IP アドレス。トンネル 1 の id と同じである必要があります。
          }
          remote_addrs = XX.XX.2.2                 # 変更:Alibaba Cloud トンネル 2 のパブリック IP アドレス。
          remote {
             auth = psk
             id = XX.XX.2.2                        # 変更:Alibaba Cloud トンネル 2 のパブリック IP アドレス。remote_addrs と一致する必要があります。
          }
          children {
             vco_child2 {
                local_ts  = 172.16.0.0/16          # 変更:オンプレミスネットワークの CIDR ブロック。トンネル 1 の local_ts と同じである必要があります。
                remote_ts = 10.0.0.0/16            # 変更:VPC の CIDR ブロック。トンネル 1 の remote_ts と同じである必要があります。
                mode = tunnel
                rekey_time = 85500
                life_time = 86400
                dpd_action = restart
                start_action = start
                close_action = start
                esp_proposals = aes256gcm16-sha256-modp2048
                priority = 2                       # セカンダリトンネルを指定します。このパラメーターは変更しないことを推奨します。
             }
          }
       }
    }
    secrets {
       ike-vco1 {
          id = XX.XX.1.1                           # 変更:Alibaba Cloud トンネル 1 のパブリック IP アドレス。
          secret = your-psk-here                   # 変更:トンネル 1 の事前共有キー。Alibaba Cloud コンソールで設定したキーと一致する必要があります。
       }
       ike-vco2 {
          id = XX.XX.2.2                           # 変更:Alibaba Cloud トンネル 2 のパブリック IP アドレス。
          secret = your-psk-here                   # 変更:トンネル 2 の事前共有キー。Alibaba Cloud コンソールで設定したキーと一致する必要があります。
       }
    }

5. strongSwan の起動とトンネルステータスの確認

sudo systemctl restart strongswan
swanctl --load-all
watch swanctl --list-sas

両方のトンネルが ESTABLISHED と表示され、CHILD_SA が INSTALLED 状態であれば、strongSwan デバイスと Alibaba Cloud VPN Gateway 間に IPsec 接続が正常に確立されたことを意味します。

Every 2.0s: swanctl --list-sas    iZ8psgynxxx: Fri Mar 13 14:53:47 2026
plugin 'sqlite': failed to load - sqlite_plugin_create not found and no plugin file
available
vco1: #11, ESTABLISHED, IKEv2, fbf8cda98d1d4f45_i c8a12ae19f8303d8_r*
   local  'XX.XX.3.3x.18' @ 172.16.0.1[4500]
   remote 'XX.XX.1.1x.58' @ XX.XX.1.1x.58[4500]
   AES_GCM_16-256/PRF_HMAC_SHA2_256/MODP_2048
   established 1534s ago, rekeying in 81327s
   vco_child1: #10, reqid 1, INSTALLED, TUNNEL-in-UDP, ESP:AES_GCM_16-256/MODP_2048
      installed 10638s ago, rekeying in 73995s, expires in 75762s
      in  c31a70fc, 892248 bytes, 10622 packets,    1s ago
      out c53ef972, 892332 bytes, 10623 packets,    1s ago
      local  172.16.0.0/16
      remote 10.0.0.0/16
vco2: #10, ESTABLISHED, IKEv2, 9b259bb527d43acf_i f53df17098e08519_r*
   local  'XX.XX.3.3x.18' @ 172.16.0.1[4500]
   remote 'XX.XX.2.2x.121' @ XX.XX.2.2x.121[4500]
   AES_GCM_16-256/PRF_HMAC_SHA2_256/MODP_2048
   established 3270s ago, rekeying in 81252s
   vco_child2: #9, reqid 1, INSTALLED, TUNNEL-in-UDP, ESP:AES_GCM_16-256/MODP_2048
      installed 12865s ago, rekeying in 71956s, expires in 73535s
      in  c11c544e,      0 bytes,     0 packets,    7s ago
      out c7acef03,      0 bytes,     0 packets,   14s ago
      local  172.16.0.0/16
      remote 10.0.0.0/16

ステップ 5:クラウド側のルート設定

このトピックではポリシーベースモードを使用しているため、システムは自動的にルートエントリを拡張 VPN Gateway の宛先ベースルーティングに追加します。

このルートを VPC ルートテーブルに公開できます。ルートを公開すると、VPC 内の ECS インスタンスからオンプレミス IDC ネットワークへのトラフィックが VPN Gateway を経由して転送されます。

  1. 作成した拡張 VPN Gateway のインスタンス ID をクリックして、詳細ページを開きます。

  2. 宛先ベースルーティング タブに移動します。システムが自動的に生成した宛先ルートエントリ (宛先ネットワーク 172.16.0.0/16、ネクストホップは IPsec 接続) を見つけます。

  3. 対象のルートエントリのアクション 列で、公開 をクリックしてルートを VPC ルートテーブルに公開します。

    ルートを公開すると、VPC ルートテーブルに新しいルートエントリが追加されます。宛先ネットワークは 172.16.0.0/16、ネクストホップは VPN Gateway です。VPC 内の ECS インスタンスからオンプレミス IDC ネットワークへのトラフィックは、自動的に VPN トンネル経由でルーティングされます。

接続の確認

接続性の確認

  1. ECS インスタンスのセキュリティグループルールが ICMP トラフィックを許可していることを確認します。次に、strongSwan デバイスにログオンし、ECS インスタンスのプライベート IP アドレスに ping を実行します。

    ping 10.0.0.1

    応答パケットは、オンプレミス IDC とクラウド VPC 間の通信が確立されたことを意味します。

  2. オンプレミスのファイアウォールが ICMP トラフィックを許可していることを確認します。次に、VPC 内の ECS インスタンス (10.0.0.1) にログオンし、strongSwan デバイスのプライベート IP アドレスに ping を実行します。

    ping 172.16.0.1

    応答パケットを受信した場合、逆方向の接続も確立されています。

高可用性の確認

  1. ECS インスタンスから、オンプレミスサーバーへの継続的な ping を実行します。

    ping 172.16.0.1 -c 10000
  2. プライマリトンネルを中断します。Alibaba Cloud コンソールで、プライマリトンネルの事前共有キーを変更してキーの不一致を発生させます。これにより、プライマリトンネルが切断されます。

  3. ping の結果を観察します。短い中断の後、通信が再開します。これは、トラフィックが自動的にセカンダリトンネルにフェイルオーバーしたことを意味します。

  4. プライマリトンネルを復元します。プライマリトンネルの事前共有キーを正しい値に戻します。プライマリトンネルが復元されると、トラフィックは自動的にフェールバックします。

トラブルシューティング

一般的な問題と解決策:

現象

考えられる原因

解決策

トンネルネゴシエーションが失敗する。

ネットワーク接続の失敗

strongSwan デバイスが Alibaba Cloud の IPsec アドレスに ping できるか確認します。オンプレミス IDC のファイアウォールがポート 500 と 4500 の UDP トラフィックを許可していることを確認します。

事前共有キーの不一致

両端の事前共有キーが、大文字・小文字や特殊文字を含めて完全に同一であることを確認します。

IKE パラメーターの不一致

IKE バージョン、暗号化アルゴリズム、認証アルゴリズム、DH グループ、およびその他のパラメーターが両端で一致しているか確認します。

トンネルは確立されているが、ping が失敗する。

ルートが設定されていない。

VPN Gateway から VPC ルートテーブルに宛先ルートを公開したことを確認します。

セキュリティグループの制限

ECS セキュリティグループがオンプレミス IDC ネットワーク (172.16.0.0/16) からの ICMP トラフィックを許可しているか確認します。

オンプレミスのファイアウォールの制限

オンプレミスのファイアウォールが VPC ネットワーク (10.0.0.0/16) からのトラフィックを許可しているか確認します。

strongSwan 側のルート設定が不足している

strongSwan デバイスで IP フォワーディングが有効になっていること、および IDC 内の他のサーバーが VPC ネットワークへのトラフィックのネクストホップとして strongSwan デバイスを使用していることを確認します。

詳細については、「IPsec 接続のトラブルシューティング」をご参照ください。