すべてのプロダクト
Search
ドキュメントセンター

VPN Gateway:strongSwanデバイスの設定

最終更新日:Oct 29, 2024

Alibaba cloudでデータセンターと仮想プライベートクラウド (VPC) 間にIPsec-VPN接続を確立する場合、Alibaba CloudでVPNゲートウェイを設定した後、データセンターのゲートウェイデバイスにVPN設定を追加する必要があります。 このトピックでは、strongSwanを使用してデータセンターのゲートウェイデバイスにVPN設定を追加する方法について説明します。

シナリオ

image

この例では、企業がAlibaba CloudにVPCをデプロイしています。 VPCのCIDRブロックは10.0.0.0/16です。 アプリケーションは、VPCのECS (Elastic Compute Service) インスタンスにデプロイされます。 同社には、VPCと通信するためにCIDRブロック192.168.0.0/16を使用する必要があるデータセンターがあります。 同社は、相互リソースアクセスを実装するために、データセンターとクラウド上のVPC間にIPsec-VPN接続を確立したいと考えています。

重要

このサンプルシナリオでは、strongSwanがデプロイされるローカルゲートウェイデバイスをstrongSwanデバイスと呼びます。 データセンターは、strongSwanデバイスのパブリックIPアドレスを使用して、デュアルトンネルモードでAlibaba CloudとのIPsec-VPN接続を確立します。 VPNゲートウェイがシングルトンネルモードのIPsec-VPN接続のみをサポートしている場合は、このトピックの「単一トンネルを使用するようにstrongSwanデバイスを構成する」をご参照ください。

VPNゲートウェイをアップグレードしてデュアルトンネルモードを有効にすることを推奨します。 IPsec-デュアルトンネルモードのVPN接続は、ゾーン間のディザスタリカバリをサポートします。 これは、ネットワークの高可用性を効果的に高める。 詳細については、「VPN gatewayのアップグレードによるデュアルトンネルモードの有効化」をご参照ください。

CIDRブロックプランとサンプルVPN設定

CIDRブロックプラン

リソース

CIDRブロック

IPアドレス

データセンター

VPCとの通信に必要なCIDRブロック: 192.168.0.0/16。

サーバーのIPアドレス: 192.168.10.198。

strongSwanデバイス

非該当

  • strongSwanデバイス上のインターネットに接続する物理インターフェイス: eth0。これはパブリックIPアドレス8.XX. XX.99で構成されています。

  • strongSwanバージョン: 5.9.10

VPC

プライマリCIDRブロック: 10.0.0.0/16

vSwitch 1: 10.0.10.0/24

vSwitch 2: 10.0.20.0/24

ECS IPアドレス: 10.0.10.250

パブリックVPNゲートウェイ

非該当

  • IPsecアドレス1: 8.XX. XX.149

  • IPsecアドレス2: 8.XX. XX.137

説明

VPNゲートウェイを作成すると、システムはVPNゲートウェイにIPアドレスを自動的に割り当てます。

サンプルVPN設定

  • この例では、トンネル1はアクティブトンネルであり、トンネル2はスタンバイトンネルである。 2つのトンネルは同じサンプル値を使用する。

  • Alibaba CloudとstrongSwanデバイスのVPN設定は、各トンネルで同じである必要があります。

パラメーター

Alibaba Cloudのサンプル値

strongSwanデバイスのサンプル値

事前共有キー (PSK)

123456 ****

123456 ****

インターネットキー交換 (IKE) 設定

IKE バージョン

ikev2

ikev2

ネゴシエーションモード

メイン

メイン

暗号化アルゴリズム

aes

aes

認証アルゴリズム

sha1

sha1

DH グループ

group2

group2

SAライフサイクル (秒)

86400

86400

IPsec設定

暗号化アルゴリズム

aes

aes

認証アルゴリズム

sha1

sha1

DH グループ

group2

group2

SAライフサイクル (秒)

86400

86400

前提条件

このトピックでは、strongSwanデバイスにVPN設定を追加する方法についてのみ説明します。 Alibaba CloudでVPNゲートウェイを設定する手順は省略します。 strongSwanデバイスを設定する前に、VPNゲートウェイの作成、カスタマーゲートウェイの作成、IPsec-VPN接続の作成、およびVPNゲートウェイのルーティングの設定を完了していることを確認してください。 詳細については、「デュアルトンネルモードでVPCをデータセンターに接続する」をご参照ください。

説明

このシナリオでは、データセンターのstrongSwanデバイスは、パブリックIPアドレスを使用してAlibaba CloudへのIPsec-VPN接続をデュアルトンネルモードで確立します。 したがって、カスタマーゲートウェイを1つだけ作成する必要があります。 IPsec-VPN接続を作成すると、2つのトンネルを同じカスタマーゲートウェイに関連付けることができます。

手順

説明

次の例では、CentOS Stream 9 64ビットを使用して、strongSwanデバイスを設定する方法を示します。 別のオペレーティングシステムを使用している場合は、strongSwan Installation Documentationを参照してください。

  1. strongSwanデバイスのCLIを開きます。

  2. 次のコマンドを実行してstrongSwanをインストールします。

    sudo yum install -y strongswan-5.9.10
  3. strongSwanデバイスのトラフィック転送を有効にします。

    echo 1 > /proc/sys/net/ipv4/ip_forward
    重要

    上記のコマンドはroot権限を必要とし、一時的なコマンドです。 strongSwanデバイスを再起動した後、コマンドを再度実行する必要があります。 強力なSwanデバイスのトラフィック転送を有効にする場合は、次の手順を実行します。

    手順を展開するにはここをクリック

    1. 次のコマンドを実行して、/etc/sysctl.confファイルを開きます。

      sudo vi /etc/sysctl.conf
    2. Iキーを押して編集モードに入ります。

    3. ファイルに次の設定を追加します。

      net.ipv4.ip_forward = 1
    4. Escキーを押して :wqと入力し、enterキーを押して変更を保存します。

    5. 次のコマンドを実行して、変更を適用します。

      sudo sysctl -p
  4. IPsec-VPNトンネルを確立するための2つの仮想ネットワークインターフェイスを作成します。

    sudo ip link add ipsec0 type xfrm dev eth0 if_id 42 # Create an XFRM virtual network interface for Tunnel 1, with the interface ID 42 and the public interface eth0 as the underlying interface. 
    sudo ip link add ipsec1 type xfrm dev eth0 if_id 43 # Create an XFRM virtual network interface for Tunnel 2, with the interface ID 43 and the public interface eth0 as the underlying interface. 
    sudo ip link set ipsec0 up # Start the XFRM virtual network interface for Tunnel 1. 
    sudo ip link set ipsec1 up # Start the XFRM virtual network interface for Tunnel 2.

    重要
    • XFRM仮想ネットワークインターフェイスを使用するには、strongSwan 5.8.0以降をインストールする必要があります。 また、Linuxのカーネルバージョンは4.19以降、Linuxのiproute2バージョンは5.1.0以降である必要があります。 詳細については、「Linux上のXFRMインターフェイス」をご参照ください。

    • 仮想ネットワークインターフェイスを作成するための上記の設定は、一時的な設定です。 strongSwanデバイスを再起動した後、設定を再度追加し、sudo systemctl restart strongswan;swanctl -- load-allコマンドを実行する必要があります。 コマンドにはroot権限が必要です。 strongSwanデバイスの再起動後に仮想ネットワークインターフェイスを自動的に作成するように、システムの起動時に実行されるスクリプトを構成する場合は、次の手順を実行します。

    手順を展開するにはここをクリック

    1. 次のコマンドを実行してスクリプトを作成します。

      vi xfrm.sh
    2. Iキーを押して編集モードに入ります。

    3. スクリプトに次の設定を追加します。

      sudo ip link add ipsec0 type xfrm dev eth0 if_id 42 # Create an XFRM virtual network interface for Tunnel 1, with the interface ID 42 and the public interface eth0 as the underlying interface. 
      sudo ip link add ipsec1 type xfrm dev eth0 if_id 43 # Create an XFRM virtual network interface for Tunnel 2, with the interface ID 43 and the public interface eth0 as the underlying interface. 
      sudo ip link set ipsec0 up # Start the XFRM virtual network interface for Tunnel 1. 
      sudo ip link set ipsec1 up # Start the XFRM virtual network interface for Tunnel 2.

    4. Escキーを押して :wqと入力し、enterキーを押して変更を保存します。

    5. 次のコマンドを実行して、スクリプトの絶対パスを表示します。

      sudo find / -name xfrm.sh
    6. /etc/rc.d/rc.localファイルに絶対パスを追加します。

      sudo vi /etc/rc.d/rc.local # Open the /etc/rc.d/rc.local file. 
      Press the I key to enter the edit mode.
      /root/xfrm.sh  # Add the absolute path to the /etc/rc.d/rc.local file. 
      Press the Esc key, enter :wq, and then press the Enter key to save the change.
    7. 次のコマンドを実行して、rc.localおよびxfrm.shファイルを実行可能にします。

      sudo chmod +x /etc/rc.d/rc.local
      sudo chmod +x /root/xfrm.sh
  5. strongSwan設定ファイルを変更します。

    1. 次のコマンドを実行してstrongSwan設定ファイルを開きます。

      sudo vi /etc/strongswan/swanctl/swanctl.conf
    2. Iキーを押して編集モードに入ります。

    3. ファイル内の元の設定をすべて削除し、次のサンプルコードを参照してファイルにVPN設定を追加します。

      重要

      サンプルコードのIPアドレスを実際に使用するIPアドレスに置き換え、Alibaba CloudのVPN設定とstrongSwanデバイスのVPN設定が同じであることを確認します。

      connections {
         vco1 {                            # The VPN configurations of IPsec-VPN Tunnel 1.
            version = 2                    # The IKE version, which must be the same as that configured for Tunnel 1 on Alibaba Cloud. A value of 2 indicates IKEv2. 
            local_addrs  = 8.XX.XX.99      # The public IP address for which you want to create an IPsec-VPN connection. 
            remote_addrs = 8.XX.XX.149     # Set the remote address of Tunnel 1 to the VPN gateway address of Tunnel 1 on Alibaba Cloud, which is IPsec Address 1. 
            dpd_delay = 10
            rekey_time = 84600             # The SA lifecycle of Tunnel 1, which must be the same as that specified in the IKE configurations of Tunnel 1 on Alibaba Cloud. 
            over_time = 1800               
            proposals = aes-sha1-modp1024  # The encryption algorithm, authentication algorithm, and DH group of Tunnel 1, which must be the same as those specified in the IKE configurations of Tunnel 1 on Alibaba Cloud. A value of group2 indicates modp1024. 
            encap = yes
      
            local {
               auth = psk                  # Set the authentication algorithm of the data center to PSK. 
               id = 8.XX.XX.99             # The ID of the data center, which must be the same as the RemoteId value of Tunnel 1 on Alibaba Cloud. 
            }
            remote {
               auth = psk                  # Set the authentication algorithm of the VPC to PSK. 
               id = 8.XX.XX.149            # The ID of the VPC, which must be the same as the LocalId value of Tunnel 1 on Alibaba Cloud. 
            }
            children {
               vco_child1 {
                  local_ts  = 0.0.0.0/0    # Specify that the CIDR block of the protected data flows for the destination-based route mode on Alibaba Cloud is 0.0.0.0/0. 
                  remote_ts = 0.0.0.0/0    # Specify that the CIDR block of the protected data flows for the destination-based route mode on Alibaba Cloud is 0.0.0.0/0. 
                  mode = tunnel
                  rekey_time = 85500
                  life_time = 86400        # The SA lifecycle of Tunnel 1, which must be the same as that specified in the IPsec configurations of Tunnel 1 on Alibaba Cloud. 
                  dpd_action = restart
                  start_action = start
                  close_action = start
                  esp_proposals = aes-sha1-modp1024   # The encryption algorithm, authentication algorithm, and DH group of Tunnel 1, which must be the same as those specified in the IPsec configurations of Tunnel 1 on Alibaba Cloud. A value of group2 indicates modp1024. 
      
                  if_id_out = 42           # Specify that the XFRM virtual network interface of Tunnel 1 is used as the egress port and ingress port of Tunnel 1. 
                  if_id_in = 42
                  updown = /root/connect_1.sh         # Execute the /root/connect_1.sh script to configure routing based on the UP/DOWN status of Tunnel 1. 
               }
            }
         }
        vco2 {                             # The VPN configurations of IPsec-VPN Tunnel 2.
            version = 2                    # The IKE version, which must be the same as that configured for Tunnel 2 on Alibaba Cloud. A value of 2 indicates IKEv2. 
            local_addrs  = 8.XX.XX.99      # The public IP address for which you want to create an IPsec-VPN connection. 
            remote_addrs = 8.XX.XX.137     # Set the remote address of Tunnel 2 to the VPN gateway address of Tunnel 2 on Alibaba Cloud, which is IPsec address 2. 
            dpd_delay = 10
            rekey_time = 84600             # The SA lifecycle of Tunnel 2, which must be the same as that specified in the IKE configurations of Tunnel 2 on Alibaba Cloud. 
            over_time = 1800               # 
            proposals = aes-sha1-modp1024  # The encryption algorithm, authentication algorithm, and DH group of Tunnel 2, which must be the same as those specified in the IKE configurations of Tunnel 2 on Alibaba Cloud. A value of group2 indicates modp1024. 
            encap = yes
      
            local {
               auth = psk                  # Set the authentication algorithm of the data center to PSK. 
               id = 8.XX.XX.99             # The ID of the data center, which must be the same as the RemoteId value of Tunnel 2 on Alibaba Cloud. 
            }
            remote {
               auth = psk                  # Set the authentication algorithm of the VPC to PSK. 
               id = 8.XX.XX.137            # The ID of the VPC, which must be the same as the LocalId value of Tunnel 2 on Alibaba Cloud. 
            }
            children {
               vco_child2 {
                  local_ts  = 0.0.0.0/0    # Specify that the CIDR block of the protected data flows for the destination-based route mode on Alibaba Cloud is 0.0.0.0/0.
                  remote_ts = 0.0.0.0/0    # Specify that the CIDR block of the protected data flows for the destination-based route mode on Alibaba Cloud is 0.0.0.0/0.
                  mode = tunnel 
                  rekey_time = 85500
                  life_time = 86400        # The SA lifecycle of Tunnel 2, which must be the same as that specified in the IPsec configurations of Tunnel 1 on Alibaba Cloud. 
                  dpd_action = restart
                  start_action = start
                  close_action = start
                  esp_proposals = aes-sha1-modp1024     # The encryption algorithm, authentication algorithm, and DH group of Tunnel 2, which must be the same as those specified in the IPsec configurations of Tunnel 2 on Alibaba Cloud. A value of group2 indicates modp1024. 
                  if_id_out = 43           # Specify that the XFRM virtual network interface of Tunnel 2 is used as the egress port and ingress port of Tunnel 2. 
                  if_id_in = 43
                  updown = /root/connect_2.sh           # Execute the /root/connect_2.sh script to configure routing based on the UP/DOWN status of Tunnel 2. 
               }
            }
         }
      }
      
      secrets {
         ike-vco1 {
            secret = 123456****            # The PSK of Tunnel 1, which must be the same as that configured for Tunnel 1 on Alibaba Cloud. 
         }
         ike-vco2 {
            secret = 123456****            # The PSK of Tunnel 2, which must be the same as that configured for Tunnel 2 on Alibaba Cloud. 
         }
      }
    4. Escキーを押して :wqと入力し、enterキーを押して変更を保存します。

  6. 次の手順を参照して、データセンターからCIDRブロックが10.0.0.0/16のVPCへのトラフィックを制御するようにルーティングを設定するスクリプトを作成します。

    1. 次のコマンドを実行して /root/connect_1.shファイルを開きます。

      sudo vi /root/connect_1.sh
    2. Iキーを押して編集モードに入ります。

    3. スクリプトに次の設定を追加します。

      Tunnel 1のステータスがUPの場合、Tunnel 1のXFRM仮想ネットワークインターフェイスを介して、データセンターからCIDRブロックが10.0.0.0/16であるVPCにトラフィックを送信するルートを追加します。 さらに、このルートのメトリック値を100に設定して、このルートに、トンネル2のXFRM仮想ネットワークインターフェイスを指すルートよりも高い優先度を割り当てます。 トンネル1のステータスがDOWNの場合、ルートを撤回します。

      #!/usr/bin/env bash
      if [ x"$PLUTO_VERB" == "xup-client" ]; then
      	echo "ip route add 10.0.0.0/16 dev ipsec0" >> /root/vpn_route.log;ip route add 10.0.0.0/16 dev ipsec0 metric 100
      elif [ x"$PLUTO_VERB" == "xdown-client" ]; then
      	echo "ip route del 10.0.0.0/16 dev ipsec0" >> /root/vpn_route.log;ip route del 10.0.0.0/16 dev ipsec0 metric 100
      fi
    4. Escキーを押して :wqと入力し、enterキーを押して変更を保存します。

    5. 上記の手順を繰り返して、/root/connect_2.shファイルを変更します。

      Tunnel 2のステータスがUPの場合、Tunnel 2のXFRM仮想ネットワークインターフェイスを介して、データセンターからCIDRブロックが10.0.0.0/16であるVPCにトラフィックを送信するルートを追加します。 さらに、このルートのメトリック値を101に設定して、このルートに、トンネル1のXFRM仮想ネットワークインターフェイスを指すルートよりも低い優先度を割り当てます。 トンネル2のステータスがDOWNの場合、ルートを撤回します。

      #!/usr/bin/env bash
      if [ x"$PLUTO_VERB" == "xup-client" ]; then
      	echo "ip route add 10.0.0.0/16 dev ipsec1" >> /root/vpn_route.log;ip route add 10.0.0.0/16 dev ipsec1 metric 101
      elif [ x"$PLUTO_VERB" == "xdown-client" ]; then
      	echo "ip route del 10.0.0.0/16 dev ipsec1" >> /root/vpn_route.log;ip route del 10.0.0.0/16 dev ipsec1 metric 101
      fi
    6. 次のコマンドを実行して、/root/connect_1.shおよび /root/connect_2.shファイルを実行可能にします。

      sudo chmod +x /root/connect_1.sh
      sudo chmod +x /root/connect_2.sh
    7. strongSwanプロセスを再起動します。

      sudo systemctl restart strongswan
  7. アクセス制御またはファイアウォールポリシーがstrongSwanデバイスで設定されている場合、ポリシーがUDPポート500および4500を介してAlibaba Cloud側のトンネルのIPアドレスからのアクセスを許可していることを確認します。 次のコマンドを実行して、UDPポート500および4500からのアクセスを許可します。

    # Allow access through the specified ports.
    sudo firewall-cmd --zone=public --add-port=500/udp --permanent
    sudo firewall-cmd --zone=public --add-port=4500/udp --permanent
    sudo systemctl restart firewalld.service
    sudo firewall-cmd --reload
    # View the ports that are already open.
    sudo firewall-cmd --list-ports  
  8. トンネルのステータスとルートを表示します。

    通常、上記の手順を実行すると、strongSwanデバイスとVPNゲートウェイの間にIPsec-VPN接続が確立されます。 次のコマンドを実行して、IPsec-VPN接続のトンネルステータスとルートを表示できます。

    sudo swanctl --list-sas  # View the tunnel status.
    route -n            # View the routing configurations.

    IPsec路由

  9. データセンター側で、データセンターからstrongSwanデバイスへのルート、およびstrongSwanデバイスからデータセンターへのルートを設定します。

    その後、データセンターとAlibaba Cloud VPC間のネットワーク接続をテストできます。 詳細については、「デュアルトンネルモードでVPCをデータセンターに接続する」の「ステップ6: ネットワーク接続のテスト」セクションをご参照ください。

単一のトンネルを使用するようにstrongSwanデバイスを設定する

サンプル設定を展開するには、ここをクリックしてください

シナリオ

image

この例では、企業がAlibaba CloudにVPCをデプロイしています。 VPCのCIDRブロックは192.168.10.0/24です。 アプリケーションはVPCのECSインスタンスにデプロイされます。 同社には、VPCと通信するためにCIDRブロック172.16.2.0/24を使用する必要があるデータセンターもあります。 同社は、相互リソースアクセスを実装するために、データセンターとクラウド上のVPC間にIPsec-VPN接続を確立したいと考えています。

CIDRブロックプランとサンプルVPN設定

CIDRブロックプラン

リソース

VPC

データセンターと通信する必要があるプライベートCIDRブロック

192.168.10.0/24

パブリックVPNゲートウェイ

VPNゲートウェイのパブリックIPアドレス

119.XX.XX.125

データセンター

VPCと通信する必要があるプライベートCIDRブロック

172.16.2.0/24

strongSwanデバイスのパブリックIPアドレス

59.XX.XX.70

strongSwanバージョン

5.7.2

サンプルVPN設定

パラメーター

Alibaba Cloudのサンプル値

FortiGateファイアウォールのサンプル値

PSK

ff123TT ****

ff123TT ****

IKE設定

IKE バージョン

ikev1

ikev1

ネゴシエーションモード

メイン

メイン

暗号化アルゴリズム

aes

aes

認証アルゴリズム

sha1

sha1

DH グループ

group2

group2

SAライフサイクル (秒)

86400

86400

IPsec設定

暗号化アルゴリズム

aes

aes

認証アルゴリズム

sha1

sha1

DH グループ

group2

group2

SAライフサイクル (秒)

86400

86400

前提条件

このトピックでは、strongSwanデバイスにVPN設定を追加する方法についてのみ説明します。 Alibaba CloudでVPNゲートウェイを設定する手順は省略します。 strongSwanデバイスを設定する前に、VPNゲートウェイの作成、カスタマーゲートウェイの作成、IPsec-VPN接続の作成を完了していることを確認してください。 詳細については、「シングルトンネルモードでVPCをデータセンターに接続する」をご参照ください。

  • IPsec-VPN接続を作成するときは、ルーティングモードとして保護されたデータフローを選択し、ローカルCIDRブロックを192.168.10.0/24に設定し、リモートCIDRブロックを172.16.2.0/24に設定します。

  • IPsec-VPN接続を作成した後、ポリシーベースのルートをアドバタイズする必要があります。 詳細については、「ポリシーベースのルートの設定」トピックのポリシーベースのルートの広告セクションをご参照ください。

ステップ1: strongSwanのインストール

説明

次の例では、CentOS 7.9 64ビットを使用してstrongSwanデバイスを構成する方法を説明します。 別のオペレーティングシステムを使用している場合は、strongSwan Installation Documentationを参照してください。

  1. strongSwanデバイスのCLIを開きます。

  2. 次のコマンドを実行してstrongSwanをインストールします。

    sudo yum install strongswan
  3. (オプション) 次のコマンドを実行して、システムによって自動的にインストールされるstrongSwanのバージョンを照会します。

    strongswan version

    2024-07-11_10-19-48

ステップ2: strongSwanの設定

  1. 次のコマンドを実行して、ipsec.confファイルを開きます。

    sudo vi /etc/strongswan/ipsec.conf
  2. 次の情報に基づいてipsec.confファイルを変更します。 ファイル内のすべての元の設定を削除する必要があります。

    # ipsec.conf - strongSwan IPsec configuration file
    # basic configuration
    config setup
           uniqueids=never
    conn %default
         authby=psk                  # Set the authentication algorithm to PSK.
         type=tunnel
    conn tomyidc
         keyexchange=ikev1           # The version of the IKE protocol that is used by the IPsec-VPN connection.
         left=59.XX.XX.70            # The public IP address of the strongSwan device. If you want to use the private IP address of the strongSwan device to establish an IPsec-VPN connection, specify the private IP address. 
         leftsubnet=172.16.2.0/24    # The private CIDR block of the data center to be connected to the VPC.
         leftid=59.XX.XX.70          # The ID of the strongSwan device, which must be the same as the RemoteId value on Alibaba Cloud. The default value is the public IP address used by the strongSwan device. 
         right=119.XX.XX.125         # The public IP address of the VPN gateway. 
         rightsubnet=192.168.10.0/24 # The private CIDR block of the VPC to be connected to the data center.
         leftid=119.XX.XX.125          # The ID of the VPN gateway, which must be the same as the LocalId value on Alibaba Cloud. The default value is the public IP address used by the VPN gateway. 
         auto=route                  # Specify that an IPsec-VPN connection is created only if a host on a subnet of one end sends an access request to the other end. For more information, see the description of the auto parameter. 
              
         ike=aes-sha1-modp1024       # The encryption algorithm, authentication algorithm, and DH group of the IKE protocol.
         ikelifetime=86400s          # The SA lifecycle of the IKE protocol.
         esp=aes-sha1-modp1024       # The encryption algorithm, authentication algorithm, and DH group of the IPsec protocol.
         lifetime=86400s             # The SA lifecycle of the IPsec protocol.
         type=tunnel
         #aggressive = yes           # Specify whether to enable the aggressive mode. By default, the system uses the main mode, and the aggressive mode is disabled.

    autoパラメーターの説明を展開するには、ここをクリックしてください

    autoパラメータの設定

    説明

    auto=追加

    strongSwanプロセスが開始すると、プロセスは接続構成のみを読み取り、接続を確立しません。 この設定は、クライアントが接続要求を開始するのをサーバーが待機しているときに適用されます。

    auto=route

    IPsec-VPN接続は、一方のエンドのサブネット上のホストがもう一方のエンドにアクセス要求を送信した場合にのみ作成されます。

    auto=start

    strongSwanプロセスは、接続構成を読み取り、直ちにIPsec − VPN接続を確立する。

    auto=無視

    autoパラメーターは無視されます。

  3. ipsec.secretsファイルを設定します。

    1. 次のコマンドを実行して、ipsec.secretsファイルを開きます。

      sudo vi /etc/strongswan/ipsec.secrets
    2. ファイルに次の設定を追加します。

      説明

      次のいずれかの設定方法を選択できます。

      • 方法 1

        59.XX.XX.70 119.XX.XX.125 : PSK ff123TT****   # ff123TT**** is the PSK of the IPsec-VPN connection. The data center and the VPN gateway must use the same PSK.

      • 方法 2

        119.XX.XX.125 : PSK ff123TT****   # ff123TT**** is the PSK of the IPsec-VPN connection. The data center and the VPN gateway must use the same PSK.

  4. 次のコマンドを実行してstrongSwanサービスを開始します。

    sudo systemctl enable strongswan
    sudo systemctl start strongswan
    # You can run the following command to check whether the strongSwan service is properly started:
    sudo systemctl status strongswan
  5. strongSwanデバイスでUDPポート500と4500が開いていることを確認します。 詳細については、strongSwanデバイスのマニュアルを参照してください。

  6. システム転送を有効化します。

    echo 1 > /proc/sys/net/ipv4/ip_forward
    重要

    上記のコマンドはroot権限を必要とし、一時的なコマンドです。 strongSwanデバイスを再起動した後、コマンドを再度実行する必要があります。 強力なSwanデバイスのトラフィック転送を有効にする場合は、次の手順を実行します。

    手順を展開するにはここをクリック

    1. 次のコマンドを実行して、/etc/sysctl.confファイルを開きます。

      sudo vi /etc/sysctl.conf
    2. Iキーを押して編集モードに入ります。

    3. ファイルに次の設定を追加します。

      net.ipv4.ip_forward = 1
    4. Escキーを押して :wqと入力し、enterキーを押して変更を保存します。

    5. 次のコマンドを実行して、変更を適用します。

      sudo sysctl -p
  7. データセンター側で、データセンターからstrongSwanデバイスへのルート、およびstrongSwanデバイスからデータセンターへのルートを設定します。

    その後、データセンターとAlibaba Cloud VPC間のネットワーク接続をテストできます。 詳細については、「シングルトンネルモードでVPCをデータセンターに接続する」の「ステップ6: ネットワーク接続のテスト」セクションをご参照ください。

  8. strongSwanを使用して3つ以上のIPsec-VPN接続を確立する場合は、/etc/strongswan/strongswan.d/charon.conf設定ファイルを次のように変更する必要があります。

    max_ikev1_exchanges = 3コマンドの前にコメント区切り文字を削除してこのコマンドを有効にしてから, コマンドのmax_ikev1_exchangesパラメーターをIPsec-VPN接続数より大きい値に設定してください。

    たとえば、strongSwanを使用して4つのIPsec-VPN接続を確立する場合、コマンドをmax_ikev1_exchanges = 5に変更できます。

よくある質問

BGP動的ルーティングは、strongSwanを使用して作成されたIPsec-VPN接続でサポートされていますか?

いいえ。

IKEv1はstrongSwanを使用して作成されたIPsec-VPN接続でサポートされていますか?

はい。

IKEv1を使用するには、/etc/strongswan/swanctl/swanctl.confファイルの設定時にversion = 1を指定します。

strongSwanを使用してIPsec-VPN接続を確立するときに、保護されたデータフローを指定する方法?

保護されたデータフローを指定するには、/etc/strongswan/swanctl/swanctl.confファイルを設定するときに、次のコードブロックの説明に従ってCIDRブロックを追加します。 保護されたデータフローがAlibaba Cloud側のIPsec-VPN接続に指定されていることを確認します。

データセンター側またはAlibaba Cloud側で複数のCIDRブロックを指定する必要がある場合、Alibaba Cloud側のstrongSwanデバイスとIPsec-VPN接続はIKEv2を使用する必要があります。

children {
         vco_child1 {
            local_ts  = 192.168.20.0/24,192.168.50.0/24    # The CIDR block of the data center. 
            remote_ts = 10.0.0.0/16    # The CIDR block of the VPC. 
         }

パブリックIPアドレスが割り当てられていないstrongSwanデバイスとVPNゲートウェイの間にIPsec-VPN接続を確立できますか?

はい。

strongSwanデバイスは、パブリックIPアドレスを使用せずにインターネットにアクセスできます。 たとえば、データセンターのstrongSwanデバイスがデータセンターの統合された出力を使用してインターネットにアクセスする場合、strongSwanデバイスのプライベートIPアドレスを使用してIPsec-VPN接続を確立できます。 strongSwanデバイスのプライベートIPアドレスを使用してIPsec-VPN接続を確立するには、次のコードブロックに基づいて /etc/strongswan/swanctl/swanctl.confファイルを設定します。

connections {
   vco1 {                            
      local_addrs  = 192.168.1.1     # The private IP address of the strongSwan device. 

      local {
         id = 8.XX.XX.99             # The public IP address of the strongSwan device. 
      }
      
   }
}
}