以下のように、K5上のシステムに対して、専用線など高コストな回線を使用せずに、
外部から安全にアクセスする経路を作りたいといった要求事項に対応するパターンです。
K5と対向拠点との間に IPSecVPNトンネルを敷設することで、インターネット回線を使用したVPN接続が可能です。
K5と複数の顧客環境を接続したり、K5の環境間で接続したりすることができます。
本パターンでは、実装サンプル で、K5で IPSecVPN を構築する上で一般的に必要な事前準備についてと、
構造 (イメージ図) のように K5 環境間で 1対1 で IPSecVPN接続をする基本的な 実装例 を記載します。
また、複数の顧客環境との接続などその他の利用シーンについて、K5上で IPSecVPNで利用可能な接続形態と、
利用不可の接続形態を、その他 で記載します。
K5の IPSecVPN では、1つのIPSecVPNトンネルで仮想ルータに直接接続される1つのサブネットと、
同じK5の仮想ルータ または 顧客環境のルータ等の対向ゲートウェイに接続される1つのサブネット間で通信が可能です。
※複数の顧客環境との接続などその他の利用シーンについては、その他 で記載します。
※K5間での接続の場合は、以下のような形態が可能です。
K5での接続形態 | 備考 |
---|---|
別リージョン間で接続 | 東日本リージョンと、西日本リージョンを接続する際の形態です。 IPSecVPN で接続します。 |
別ドメイン間で接続 | 契約単位のドメインが異なる環境で接続する際の形態です。 IPSecVPN で接続します。 |
別プロジェクト間で接続 | 同一ドメインでプロジェクトが異なる環境で接続する際の形態です。 IPSecVPN でも接続できますが、ドメイン内でのプロジェクト間接続機能を推奨します。 |
別AZ間で接続 | 同一リージョン、同一プロジェクトで、AZ間を接続する際の形態です。 同一リージョン、同一プロジェクトでAZ間を接続する場合は、通常はネットワークコネクタでの接続を推奨します。 IPSecVPNでも接続できますが、以下のようにAZ間接続では不要の処理があります。 どうしてもファイアーウォールを使いたいといった要望がない限り、IPSecVPNによる別AZ間接続はおすすめできません。
|
(1) IPSecVPN通信用のネットワーク機器の用意(対向が顧客環境の場合)
対向が顧客環境の場合、IPSecVPN通信用のネットワーク機器を用意してください。
(2) 内部IPアドレスの整理
(3) K5でサポートする IPSecVPNのポリシー
以下の、IPSecVPN接続に関する項目と、暗号化関連のIKEポリシーとIPSecポリシーの各項目を決定してください。
IPSecVPN接続に関する項目 | サポートする方式 |
---|---|
認証方式 | 事前共有鍵方式 |
DPD Peer検出時のアクション | hold, restart |
DPD検出間隔 | 1秒以上 |
DPD検出タイムアウト | DPD検出間隔よりも大きな値 |
イニシエータモード | bi-directional, response-only |
IKEポリシーの項目 | サポートする方式 |
---|---|
認可アルゴリズム | sha1 |
暗号化アルゴリズム | AES-128, AES-192, AES-256 |
IKE version | V1 |
ライフタイム | 60~86400(units: seconds) |
PFS | group2, 5, 14 |
鍵交換モード | main |
IPSecポリシーの項目 | サポートする方式 |
---|---|
認可アルゴリズム | sha1 |
カプセルモード | tunnel |
暗号化アルゴリズム | AES-128, AES-192, AES-256 |
ライフタイム | 60~86400(units: seconds) |
PFS | group 2, 5, 14 |
トランスフォームプロトコル | esp |
(4) アクセス制御の確認
対向との間の通信でファイアーウォールでアクセス制御する設定内容や、
同じく対向との間の通信でセキュリティグループで設定する設定内容を確認してください。
以下の作業フローのとおり、まず事前準備で接続に必要な情報を確認した後、
同一プロジェクト/同一AZ/異なるサブネット間で 1対1 で IPSecVPN接続する手順を記載します。
(1) 内部IPアドレスの整理
本サンプルでは、同じ AZ に存在する以下の 2組の構成のネットワークを使用します。
仮想ルータ名 | 内部 ネットワーク名 | サブネット | デフォルト ゲートウェイ | ファイア ウォール名 | 仮想サーバ名 | 仮想サーバ IPアドレス | セキュリティ グループ名 |
---|---|---|---|---|---|---|---|
ルータ1 | ネットワーク1 | 192.168.1.0/24 | 192.168.1.1 | FW1 | VM1 | 192.168.1.26 | SG1 |
ルータ2 | ネットワーク2 | 192.168.5.0/24 | 192.168.5.1 | FW2 | VM2 | 192.168.5.4 | SG2 |
(2) IPSecVPNのポリシー確認
本サンプルでは、IPSecVPN接続に関する設定、IKEポリシーとIPSecポリシーは以下のとおりとします。
IPSecVPN接続に関する項目 | 設定値 |
---|---|
認証方式 | 事前共有鍵方式 |
DPD Peer検出時のアクション | hold |
DPD検出間隔 | 60秒 |
DPD検出タイムアウト | 240秒 |
イニシエータモード | bi-directional |
IKEポリシーの項目 | 設定値 |
---|---|
認可アルゴリズム | sha1 |
暗号化アルゴリズム | AES-128 |
IKE version | V1 |
ライフタイム | 7,200秒 |
PFS | group 5 |
鍵交換モード | main |
IPSecポリシーの項目 | 設定値 |
---|---|
認可アルゴリズム | sha1 |
カプセルモード | tunnel |
暗号化アルゴリズム | AES-128 |
ライフタイム | 7,200秒 |
PFS | group 5 |
トランスフォームプロトコル | esp |
(3) アクセス制御の確認
対向との間の通信でファイアーウォールでアクセス制御する設定内容や、
同じく対向との間の通信でセキュリティグループで設定する設定内容を確認してください。
以下の (1) ~ (5) の手順を、IPSecVPN接続を行うネットワーク1、ネットワーク2の環境で実施してください。
(1) 各種情報を確認
ポータルを使って、以下の ID の値を確認します。
確認した ID の値は APIで使用します。
ネットワーク1、ネットワーク2 の環境で API操作をする際に、
それぞれの環境ごとに以下の各変数に値を設定してください。
IDの取得対象 | 取得方法 | ID の値を設定する変数 |
---|---|---|
仮想ルータ | 「ネットワーク」→「仮想ルータ」と選択した画面で、対象のルータをクリック。 「仮想ルータ概要」の項目にある「仮想ルータID」を確認。 | $ROUTER_ID |
内部ネットワーク | 「ネットワーク」→「仮想ネットワーク」と選択した画面で、対象のネットワークをクリック。 「仮想ネットワーク概要」の項目にある「仮想ネットワークID」を確認。 | $NETWORK_ID |
サブネット | 「ネットワーク」→「仮想ネットワーク」と選択した画面で、対象のネットワークをクリック。 「サブネット」の項目にある対象のサブネットをクリックし、「サブネットID」を確認。 | $SUBNET_ID |
ポート | 「ネットワーク」→「仮想ルータ」と選択した画面で、対象のルータをクリック。 「インターフェース」の項目で、ルータのデフォルトゲートウェイのIPアドレスが表示されている ポートをクリックし、「ポートID」を確認 | $VM_PORT_ID |
(2) 仮想ルータに FloatingIP (グローバルIPアドレス) 付与
仮想ルータのポートに FloatingIP を付与します。ポータルで設定可能です。
(3) VPNService作成
(a) VPNService作成
仮想ルータに VPNService を作成します。
以下のAPIに、設定項目(json)を設定し、実行してください。
作成された際に表示される ID を、変数に設定してください。
項目 | 設定値 | 内容 |
---|---|---|
$SUBNET_ID | (設定済) | サブネットのID |
$ROUTER_ID | (設定済) | 仮想ルータのID |
$VPN_SERVICE_NAME | "ip_vpn_service_1_AZ2" | APIを実行している環境にあわせて、 以下のいずれかを設定してください。 "ip_vpn_service_1_AZ2":ネットワーク1 のルータ1 で作成した場合 "ip_vpn_service_2_AZ2":ネットワーク2 のルータ2 で作成した場合 |
$ADMIN_STATE_UP | "true" | "true" を設定してください |
$AZ | "jp-east-1b" | アベイラビリティゾーン AZ1:"jp-east-1a" AZ2:"jp-east-1b" |
変数 | 内容 |
---|---|
$VPN_SERVICE_ID1 | ネットワーク1 のルータ1 で作成した VPNService の ID |
$VPN_SERVICE_ID2 | ネットワーク2 のルータ2 で作成した VPNService の ID |
(b) 作成したVPNServiceを確認
作成された VPNService を確認するには、以下のAPIを実行してください。
(4) IKE policy 作成
IKE policy を作成します。
以下のAPIに、設定項目(json)を設定し、実行してください。
作成された際に表示される ID を、変数に設定してください。
項目 | 設定値 | 内容 |
---|---|---|
$AUTH_ALGORITHM | "sha1" | 認可アルゴリズム |
$ENCRYPTION_ALGORITHM | "aes-128" | 暗号化アルゴリズム |
$IKE_VERSION | v1 | "IKE version" |
$LIFETIME_UNITS | "seconds" | ライフタイム単位 |
$LIFETIME_VALUE | "7200" | ライフタイム秒 |
$PFS | "group5" | PFS |
$PHASE_NEGOTIATION_MODE | "main" | 鍵交換モード |
$IKE_POLICY_NAME | "ip_vpn_ikepolicy_1_AZ2" | APIを実行している環境にあわせて、 以下のいずれかを設定してください。 "ip_vpn_ikepolicy_1_AZ2":ネットワーク1 で作成した場合 "ip_vpn_ikepolicy_1_AZ2":ネットワーク2 で作成した場合 |
$AZ | "jp-east-1b" | アベイラビリティゾーン AZ1:"jp-east-1a" AZ2:"jp-east-1b" |
変数 | 内容 |
---|---|
$IKE_POLICY_ID1 | ネットワーク1 で作成した IKE policy の ID |
$IKE_POLICY_ID2 | ネットワーク2 で作成した IKE policy の ID |
(5) IPSec policy 作成
IKE policy を作成します。
以下のAPIに、設定項目(json)を設定し、実行してください。
作成された際に表示される ID を、変数に設定してください。
項目 | 設定値 | 内容 |
---|---|---|
$AUTH_ALGORITHM | "sha1" | 認可アルゴリズム |
$ENCAPSULATION_MODE | "tunnel" | カプセルモード |
$ENCRYPTION_ALGORITHM | "aes-128" | 暗号化アルゴリズム |
$LIFETIME_UNITS | "seconds" | ライフタイム単位 |
$LIFETIME_VALUE | "7200" | ライフタイム秒 |
$PFS | "group5" | PFS |
$TRASFORM_PROTOCOL | "esp" | トランスフォームプロトコル |
$IPSEC_POLICY_NAME | "ip_vpn_ipsecpolicy_1_AZ2" | APIを実行している環境にあわせて、 以下のいずれかを設定してください。 "ip_vpn_ipsecpolicy_1_AZ2":ネットワーク1 で作成した場合 "ip_vpn_ipsecpolicy_2_AZ2":ネットワーク2 で作成した場合 |
$AZ | "jp-east-1b" | アベイラビリティゾーン AZ1:"jp-east-1a" AZ2:"jp-east-1b" |
変数 | 内容 |
---|---|
$IPSEC_POLICY_ID1 | ネットワーク1 で作成した IPSec policy の ID |
$IPSEC_POLICY_ID2 | ネットワーク2 で作成した IPSec policy の ID |
(1) ファイアーウォールの設定
ネットワーク1 とネットワーク2 の仮想ルータで、それぞれ対向のルータの FloatingIP を許可する設定を追加してください。
ファイアーウォール | 内容 |
---|---|
FW1 | ネットワーク2 の仮想ルータに設定した FloatingIP との双方向の通信を許可 |
FW2 | ネットワーク1 の仮想ルータに設定した FloatingIP との双方向の通信を許可 |
※ファイアーウォールの設定手順は、セキュリティグループ/ファイアーウォール併用パターン を参照してください。
(2) セキュリティグループの設定
ネットワーク1 とネットワーク2 のセキュリティグループも、それぞれ対向のサブネットを許可する設定を追加してください。
セキュリティグループ | 内容 |
---|---|
SG1 | サブネット2 (192.168.5.0/24) との双方向の通信を許可 |
SG2 | サブネット1 (192.168.1.0/24) との双方向の通信を許可 |
※セキュリティグループの設定手順は、セキュリティグループ活用パターン を参照してください。
(3) ルータ1 から ルータ2 への IPSecVPN接続
(a) IPSecVPN接続の実施
ネットワーク1 のルータ1 から ネットワーク2 のルータ2 へ IPSecVPN接続します。
以下のAPIに、設定項目(json)を設定し、実行してください。
作成された際に表示される ID を、変数に設定してください。
項目 | 設定値 | 内容 |
---|---|---|
$PSK | "secret" | 認証鍵 |
$INITIATOR | "bi-directional" | イニシエータモード |
$IPSEC_POLICY_ID | $IPSEC_POLICY_ID1 | ネットワーク1 の IPSec ポリシー の ID |
$ADMIN_STATE_UP | "true" | "true" を設定してください |
$PEER_CIDRS | "192.168.5.0/24" | 対向のルータのローカルIP (CIDR形式) |
$MTU | "1500" | MTU値 |
$IKE_POLICY_ID | $IKE_POLICY_ID1 | ネットワーク1 の IKE ポリシー の ID |
$DPD_ACTION | "hold" | DPD Peer検出時のアクション:"hold" または "restart" を指定 |
$DPD_INTERVAL | "60" | DPD検出間隔 |
$DPD_TIMEOUT | "240" | DPD検出タイムアウト |
$VPN_SERVICE_ID | $VPN_SERVICE_ID1 | ネットワーク1 の VPNService の ID |
$PEER_ADDRESS | "xxx.xxx.xxx.xxx" | 対向ルータ(ルータ2)の FloatingIP |
$PEER_ID | "xxx.xxx.xxx.xxx" | 対向ルータ(ルータ2)の FloatingIP |
$IPSEC_SITE_NAME | "ip_vpn_ipsec_site_1_AZ2" | |
$AZ | "jp-east-1b" | アベイラビリティゾーン AZ1:"jp-east-1a" AZ2:"jp-east-1b" |
(b) IPSecVPN接続設定の確認
IPSecVPN接続の設定を確認するには、以下のAPIを実行してください。
(4) ルータ2 から ルータ1 への IPSecVPN接続
(a) IPSecVPN接続の実施
ネットワーク2 のルータ2 から ネットワーク1 のルータ1 へ IPSecVPN接続します。
以下のAPIに、設定項目(json)を設定し、実行してください。
作成された際に表示される ID を、変数に設定してください。
項目 | 設定値 | 内容 |
---|---|---|
$PSK | "secret" | 認証鍵 |
$INITIATOR | "bi-directional" | イニシエータモード |
$IPSEC_POLICY_ID | $IPSEC_POLICY_ID2 | ネットワーク2 の IPSec ポリシー の ID |
$ADMIN_STATE_UP | "true" | "true" を設定してください |
$PEER_CIDRS | "192.168.1.0/24" | 対向のルータのローカルIP (CIDR形式) |
$MTU | "1500" | MTU値 |
$IKE_POLICY_ID | $IKE_POLICY_ID2 | ネットワーク2 の IKE ポリシー の ID |
$DPD_ACTION | "hold" | DPD Peer検出時のアクション:"hold" または "restart" を指定 |
$DPD_INTERVAL | "60" | DPD検出間隔 |
$DPD_TIMEOUT | "240" | DPD検出タイムアウト |
$VPN_SERVICE_ID | $VPN_SERVICE_ID2 | ネットワーク2 の VPNService の ID |
$PEER_ADDRESS | "xxx.xxx.xxx.xxx" | 対向ルータ(ルータ1)の FloatingIP |
$PEER_ID | "xxx.xxx.xxx.xxx" | 対向ルータ(ルータ1)の FloatingIP |
$IPSEC_SITE_NAME | "ip_vpn_ipsec_site_1_AZ2" | |
$AZ | "jp-east-1b" | アベイラビリティゾーン AZ1:"jp-east-1a" AZ2:"jp-east-1b" |
(b) IPSecVPN接続設定の確認
IPSecVPN接続の設定を確認するには、以下のAPIを実行してください。
(5) IPSecVPN接続の確認
仮想サーバ VM1 から 仮想サーバ VM2 へ ping や ssh接続を試行する等で、IPSecVPN接続を確認してください。
IPSecVPN接続パターンを利用した場合のメリット・効果は以下の通りです。
(1) 利用シーン:複数のK5環境⇔K5環境
以下のように、複数のK5環境と IPSecVPN通信が可能です。
K5の仮想ルータに対して、対向を20拠点まで設定することができます。
下図は、別リージョン間での接続イメージです。
※K5間での接続の場合は、以下のような形態が可能です。
K5での接続形態 | 備考 |
---|---|
別リージョン間で接続 | 東日本リージョンと、西日本リージョンを接続する際の形態です。 |
別ドメイン間で接続 | 契約単位のドメインが異なる環境で接続する際の形態です。 |
別プロジェクト間での接続 | 同一ドメインでプロジェクトが異なる環境で接続する際の形態です。 |
別AZ間で接続 | 同一リージョン、同一プロジェクトで、AZ間を接続する際の形態です。 同一リージョン、同一プロジェクトでAZ間を接続する場合は、通常はネットワークコネクタで接続しますが、 接続する際に環境間でのアクセス制御を仮想ルータにまとめて行いたい場合などは IPSecVPNでも接続できます。 |
(2) 利用シーン:複数の顧客環境⇔K5環境
複数のK5環境の接続と同様に、複数の顧客環境の拠点とK5環境との間で IPSecVPN通信が可能です。
K5の仮想ルータに対して、対向を20拠点まで設定することができます。
(3) 利用NGシーン:IPSecVPNトンネルに接続されていないセグメントとの通信
K5環境のIPSecVPNでは、直接IPSecVPNトンネルに接続されていないセグメントとは通信できません。
(4) 利用NGシーン:K5環境のIPSecVPNでハブ&スポーク機能を使った顧客環境間の通信
K5環境のIPSecVPNでは、ハブ&スポーク機能を使った顧客環境間の通信は利用できません。
顧客環境間の通信を行う場合は、顧客環境のIPSecVPN機能をもったルータ同士で接続設定を行ってください。
(5) 利用NGシーン:リモート端末からのL2TP/IPSecVPNによる利用
モバイル端末等からVPNのアプリケーションを利用したリモートアクセス方式によるIPSecVPN接続(リモート端末からの
L2TP/IPSecVPNによる利用)は対応しておりません。
K5とのIPsecVPN接続で実績のある機器は以下のとおりです。
装置名 | ファームVL | 備考 |
---|---|---|
Cisco ASA 5505 | Software Version 9.0(1) | [DPD検出間隔]の設定可能最大値が 10秒なので本機器のみ10秒で確認 他機器は60秒で確認 |
Juniper Networks SSG5 | Software Version: 6.1.0r7.0 | |
FUJITSU Network Si-R G100 | Firm Ver. : V02.10 NY0071 | |
FUJITSU IPCOM EX2000A IN | E20L31 NF0301 |