RTX830とAlibaba CloudをVPNで繋いでみた

みなさんこんにちは。先日、Alibaba Cloudとの接続例が公開されていましたので、IPsecでVPN接続しつつ、LAN内のマシンとECS (Elastic Compute Service)との間で相互に疎通が取れることを検証してみました。

今回の検証に用いたネットワーク構成

今回の検証は、以下図のようにVPC側は192.168.0.0/24、RTX830設置拠点は192.168.10.0/24というシンプルなネットワーク構成で行いました。RTX830のWAN側は、固定IPアドレスが/32で振られており、RTX830のLAN1のIPアドレスは192.168.10.1とします。

※ 実際のAlibaba Cloud VPCのアーキテクチャはVSwitch、ゲートウェイ、コントローラーの3つのコンポーネントで構成されていますが、ここでは図示を省略します。

Alibaba Cloud で VPC を作成する

Alibaba Cloudにログインし、VPCを作成します。

VPC作成

ログイン後、「製品(プロダクト)」->「ネットワークサービス」->「Virtual Private Cloud」の順にクリックします。

VPCのリージョンを日本(東京)に、「VPCの作成」をクリックします。

VPC作成時のパラメータを投入します。

パラメータの投入例は以下の通りです。

VPC

必須|任意 パラメータ 備考
名前 必須 YAMAHA-TEST-VPC VPCであることがわかりやすいネーミングがよいです
CIDR 必須 192.168.0.0/16 VPCが作成された時点で、CIDRを変更することはできません。
説明 任意

 

VSwitch

必須|任意 パラメータ 備考
名前 必須 YAMAHA-TEST-VSwitch VSwitchであることがわかりやすいネーミングがよいです
ゾーン 必須 Asia Pacific NE 1 Zone A プルダウンから選択可能な中から、日本(東京)のゾーンを選びます
CIDR 必須 192.168.0.0/16 VPCが作成された時点で、CIDRを変更することはできません。
説明 任意

ここまで投入したパラメータに問題がなければOKをクリックし、次の画面で「完了」をクリックします。

VPN Gateways作成

VPC作成後、VPNゲートウェイを作成します。

VPNゲートウェイ作成画面では、以下のパラメータを投入します。

基本設定 リージョン 日本 (東京) を選択する
インスタンス名称 (VPNゲートウェイであることがわかりやすい名前)
VPC 先程構築したVPCを選択sする
ピーク帯域幅 10Mbps か 100Mbps から選択する
機能設定 IPsec-VPN 有効化
SSL-VPN 無効化
購入プラン 請求サイクル 時間別

「今すぐ購入」をクリック後、「注文の確認」画面へ遷移しますので、「利用規約とSLAに同意する」にチェックを入れ、「有効化」をクリックします。

「発注は完了しました」画面へ遷移するので、「コンソール」をクリックします。

コンソールへ戻った後、「プロダクトとサービス」から「Virtual Private Cloud」をクリックします。

再度「VPN Gateways」からステータスを確認してみます。VPNゲートウェイは作成に時間がかかりますので、作成直後のステータスが準備中でも、一旦先に進みます。

Customer Gateway作成

VPNゲートウェイの次に、カスタマーゲートウェイを作成します。画面左の「Customer Gateways」をクリックします。

次に「カスタマー ゲートウェイ」画面に遷移するので、「カスタマーゲートウェイの作成」をクリックします。

ここで、カスタマーゲートウェイの名前と、RTX830設置拠点のグローバルIPアドレスを入力します。

作成後、表示されているIPアドレスが正しいことを確認して、次へ進みます。

IPsec Connections作成

次に、画面左側「IPsec Connections」をクリックし、IPsecコネクションを作成します。

パラメータの投入例は以下の通りです。

必須|任意 パラメータ 備考
名前 必須 YAMAHA-TEST-IPsecConnection IPsec接続であることがわかりやすい名前にするとよいでしょう。
VPN Gateway 必須 先ほど「VPN Gateways作成」で作成したものを選択します。
カスタマーゲートウェイ 必須 先ほど「Customer Gateway作成」で作成したものを選択します。
ローカルネットワーク 必須 192.168.0.0/24 VPC作成時に決定したパラメータを投入します。
リモートネットワーク 必須 192.168.10.0/24 RTX830設置拠点のネットワークを投入します。
直ちに有効 選択必須 はい
高度な構成 必須 右側にスライドする
事前共有鍵 必須 任意の文字列
バージョン Ikev1 デフォルト値
ネゴシエーションモード Main デフォルト値
暗号化アルゴリズム aes デフォルト値
認証アルゴリズム sha1 デフォルト値
DHグループ group2 デフォルト値
SAライフサイクル (秒) 86400 デフォルト値

すべてのパラメータを投入してOKをクリックします。IPsec Connectionsの画面に戻ると「IKE トンネルネゴシエーションのフェーズ1 失敗」と表示されますが、これはまだRTX830側の設定を投入していないためですので、ここでは無視して先に進みます。

VPNゲートウェイ IPアドレス確認

RTX830側の設定に必要なため、VPNゲートウェイのIPアドレスを確認します。

VPN Gatewaysをクリックし、VPNゲートウェイの一覧から、IPアドレスの列を控えておきます。

RTX830側 VPN設定

次にRTX830側のVPN設定を行います。あらかじめ次の3点のパラメータを確認しておきましょう。

  • RTX830側 グローバルIPアドレス
  • VPNゲートウェイ グローバルIPアドレス
  • 事前共有鍵

以下、投入するコマンドを列挙します。IPアドレスおよび事前共有鍵の行は適宜置き換えてください。また、事前共有鍵に特殊文字を含む場合は、ダブルクォートで囲ってあげましょう。

# NATの設定

nat descriptor type 1 masquerade

nat descriptor address outer 1 N.N.N.N # RTX830設置拠点のグローバルIPアドレス

nat descriptor masquerade static 1 2 192.168.10.1 udp 500

nat descriptor masquerade static 1 3 192.168.10.1 esp

nat descriptor masquerade static 1 4 192.168.10.1 udp 4500

 

# DHCPの設定

dhcp service server

dhcp server rfc2131 compliant except remain-silent

dhcp scope 1 192.168.10.2-192.168.10.191/24

 

# ゲートウェイの設定

ip route 192.168.0.0/24 gateway tunnel 1

 

# VPN(IPsec)の設定

tunnel select 1

description tunnel “Alibaba Cloud”

ipsec tunnel 1

ipsec sa policy 1 1 esp aes-cbc sha-hmac

ipsec ike encryption 1 aes-cbc

ipsec ike group 1 modp1024

ipsec ike hash 1 sha

ipsec ike keepalive use 1 off

ipsec ike local address 1 192.168.10.1

ipsec ike local id 1 192.168.10.0/24

ipsec ike nat-traversal 1 on

ipsec ike payload type 1 3

ipsec ike pfs 1 on

ipsec ike pre-shared-key 1 text “****************” # 事前共有鍵

ipsec ike remote address 1 N.N.N.N # アリババクラウド VPCのグローバルIPアドレス

ipsec ike remote id 1 192.168.0.0/24

ip tunnel tcp mss limit auto

tunnel enable 1

 

# VPN(IPsec)の設定 (共通項目)

ipsec auto refresh on

config投入後 save コマンドで保存します。

ECS (Elastic Compute Service) インスタンス作成とルーティング設定

ECSのインスタンスを作成する

LAN内のPCと疎通試験をするため、ECSのインスタンスを1台、最低限のスペックで構築します。コンソールから「Elastic Compute Service」をクリックし、次の画面で「インスタンスを作成」をクリックします。

今回はすぐに使い捨てるインスタンスにしますので、「従量課金」を選択します。

vCPUは1を、メモリは0.5GBを選択します。

イメージのプラットフォームはCentOS、バージョンは7.4 64bitを選択し、「次のステップ : ネットワーク」をクリックします。

ネットワークは、先ほど作成したVPCとVSwitchを選択し、セキュリティグループではICMPプロトコルと22,3389ポートにチェックが入っていることを確認し、「次のステップ : システム構成」をクリックします。

デフォルトではキーペアですが、今回は一時的なインスタンスということもあり、パスワード認証を選択し、パスワードを打ち込んで「次のステップ : グループ化」にすすみます。

ここでは任意の名前をつけ、「次のステップ : プレビュー」にすすみます。

「ECS SLAと利用規約に同意する」にチェックを入れ、「インスタンスの作成」をクリックします。

インスタンスが作成されはじめましたので、コンソールに戻ります。

ルーティングの設定を行う

さて、ECSのインスタンスは起動しましたが、IPsec Connectionsの接続ステータスでは「IKE トンネルネゴシエーションのフェーズ2 成功」になっているにもかかわらず、つまりVPNの疎通が取れているにもかかわらず、SSH接続ができません。

これまでの設定ではルーティングを行っていなかったので、アクション列にある「ルーティンググループの設定」をクリックします。

ここでは、ECSに関連付けられたセキュリティグループを使用するので、あらかじめコンソールから確認しておきましょう。

投入するパラメータは以下の通りです。

項目 パラメータ 備考
セキュリティグループ sg-XXXX ECSに関連付けられたセキュリティグループをプルダウンメニューから選択
ルールの方向 イントラネット入力
権限付与ポリシー 許可
プロトコルタイプ すべて
ポート -1
優先度 1
認証タイプ アドレス
ENIタイプ 内部
許可されたIPアドレス 192.168.10.0/24 プルダウンメニューから選択

これらパラメータを投入後、「確定」ボタンをクリックします。

接続試験

まずは、RTX830からECSインスタンスに向けてPingを飛ばしてみます。ご覧の通り、応答があることがわかります。

次に、LAN内のWindows10上のWSL (Windows Subsystem for Linux) 環境 Ubuntu 18.04から、ECSインスタンスにSSH接続してみましょう。ご覧のように問題なくログインできました。

さらに、ECSから、RTX830設置拠点LAN内にあるLinuxマシンへSSH接続してみましょう。こちらも問題なくログインできました。

いかがでしたでしょうか。Alibaba CloudのVPC、VPN構築は ユーザー固有のパラメータを除きほぼ初期値のままで、そしてRTX830側の設定もわずか28行追加するだけで、簡単にVPN接続ができました。Alibaba Cloudとヤマハルーターの組み合わせは、越境ECを手がける企業にとって魅力的なソリューションではないでしょうか。