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-VPCVPCであることがわかりやすいネーミングがよいです
CIDR必須192.168.0.0/16VPCが作成された時点で、CIDRを変更することはできません。
説明任意

 

VSwitch

必須|任意パラメータ備考
名前必須YAMAHA-TEST-VSwitchVSwitchであることがわかりやすいネーミングがよいです
ゾーン必須Asia Pacific NE 1 Zone Aプルダウンから選択可能な中から、日本(東京)のゾーンを選びます
CIDR必須192.168.0.0/16VPCが作成された時点で、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-IPsecConnectionIPsec接続であることがわかりやすい名前にするとよいでしょう。
VPN Gateway必須先ほど「VPN Gateways作成」で作成したものを選択します。
カスタマーゲートウェイ必須先ほど「Customer Gateway作成」で作成したものを選択します。
ローカルネットワーク必須192.168.0.0/24VPC作成時に決定したパラメータを投入します。
リモートネットワーク必須192.168.10.0/24RTX830設置拠点のネットワークを投入します。
直ちに有効選択必須はい
高度な構成必須右側にスライドする
事前共有鍵必須任意の文字列
バージョン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-XXXXECSに関連付けられたセキュリティグループをプルダウンメニューから選択
ルールの方向イントラネット入力
権限付与ポリシー許可
プロトコルタイプすべて
ポート-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を手がける企業にとって魅力的なソリューションではないでしょうか。