ニフクラ ブログ

ニフクラ/FJ Cloud-Vやクラウドの技術について、エンジニアが語るブログです。

複数リージョン・複数オンプレでの IPsec VPN(L3 VPN)

こんにちは。まほろば工房の浅間です。今回からいよいよ応用編です。とはいうものの今回は単に IPsec VPN(L3 VPN) で拠点が多くなった感じの構成の紹介です。今回紹介する構成を絵にするとこんな感じです。

009_01

ニフティクラウドの東西リージョンのプライベート LAN と 2カ所のオンプレがフルメッシュで接続されたような構成ですね。とてもシンプルな構成ですが、個人的にはこういうシンプルなのが一番好きです。あまり複雑にすると不安定になっちゃうような気がして。

今回の例はオンプレが 2カ所ですが、今回の設定を参考にすればオンプレが 3カ所、 4カ所でも同じように設定できると思います。

まずは東日本リージョンの VPN ゲートウェイの設定から始めましょう。

東日本リージョンの VPN ゲートウェイの設定

プライベート LAN と VPN ゲートウェイの作成はいつも通りですね。ファイアウォールのルールもとりあえず西日本リージョンの VPN ゲートウェイのグローバル IP アドレスを保留して定義しておきます。あとはオンプレの YAMAHA RTX1210 のグローバル IP アドレスも許可するよう設定しておきます。

009_02

009_03

009_04

つぎに西日本リージョンの VPN ゲートウェイの設定です。

西日本リージョンの VPN ゲートウェイの設定

こちらもいつもと同じです。プライベート LAN と VPN ゲートウェイを作成しましょう。ファイアウォールには (1) 西日本リージョンのプライベート LAN のアドレス、 (2) 東日本リージョンの VPN ゲートウェイのグローバル IP アドレス、 (3) オンプレの YAMAHA RTX1210 のグローバル IP アドレス x 2 を許可するよう設定します。 009_05

009_06

009_07

西日本の VPN ゲートウェイの作成が完了したら東日本リージョンに戻り VPN コネクションを作成しましょう。

東日本リージョンの VPN ゲートウェイの設定(再)

そのまえにファイアウォールのルールに西日本リージョンの VPN ゲートウェイのグローバル IP アドレスを加えておきます。

009_08

そしていよいよ VPN コネクションの作成です。東日本リージョンの VPN ゲートウェイには以下の 3 つの VPN コネクションを作成する必要があります。

  1. 西日本リージョンの VPN ゲートウェイとの VPN コネクション
  2. 右側の YAMAHA RTX1210 との VPN コネクション
  3. 左側の YAMAHA RTX1210 との VPN コネクション

まずは西日本リージョンの VPN ゲートウェイとの VPN コネクションの作成です。 “東西リージョン間 IPsec VPN(L3 VPN)” と同じ感じです。

009_09

そして 右側の YAMAHA RTX1210 との VPN コネクションの作成です。 “YAMAHA RTX1210 で単一拠点 IPsec VPN(L3 VPN)” と同じ感じです。

009_10

そして左側の YAMAHA RTX1210 との VPN コネクションの作成です。こちらも “YAMAHA RTX1210 で単一拠点 IPsec VPN(L3 VPN)” と同じ感じで作成します。

009_11

西日本リージョンの VPN ゲートウェイも作成しましょう。

西日本リージョンの VPN ゲートウェイの設定(再)

東日本でやったのと同じ感じで設定します。

009_12

009_13

009_14

右側の YAMAHA RTX1210 の設定

さて、ここまでは「いつもとおなじで?」みたいな感じで説明を省いてこれましたが、じつはこの構成の YAMAHA RTX1210 の設定はいままでと同じというわけにはいきません。というのも、いままでの設定方法ではニフティクラウドさんのコンパネから設定をコピペしていましたけど、じつはコンパネが生成するコマンドはトンネル ID がすべて 1 になっているので、そのままでは 2 つめ以降の設定ではなく 1 つめを上書きしてしまうことになってしまうのです。

ということでコンパネが生成してくれた 2 つめ以降の実行コマンドが、

tunnel select 1
 ipsec tunnel 101
  ipsec sa policy 101 1 esp aes-cbc sha-hmac
  ipsec ike duration ipsec-sa 1 3600
  ipsec ike duration ike-sa 1 28800
  ipsec ike encryption 1 aes-cbc
  ipsec ike group 1 modp1024
  ipsec ike hash 1 sha
  ipsec ike keepalive use 1 on dpd
  ipsec ike local address 1 192.168.1.1
  ipsec ike pfs 1 on
  ipsec ike pre-shared-key 1 text xxxxxxxx
  ipsec ike remote address 1 198.51.100.123
 tunnel enable 1

のようになっていたら、これを、

tunnel select 2
 ipsec tunnel 102
  ipsec sa policy 102 2 esp aes-cbc sha-hmac
  ipsec ike duration ipsec-sa 2 3600
  ipsec ike duration ike-sa 2 28800
  ipsec ike encryption 2 aes-cbc
  ipsec ike group 2 modp1024
  ipsec ike hash 2 sha
  ipsec ike keepalive use 2 on dpd
  ipsec ike local address 2 192.168.1.1
  ipsec ike pfs 2 on
  ipsec ike pre-shared-key 2 text xxxxxxxx
  ipsec ike remote address 2 198.51.100.123
 tunnel enable 2

のように読み替えなければなりません。

また、一台の RTX1210 から複数の IPsec VPN トンネルを設定する場合、

ipsec ike local id x (自身のネットワークアドレス)
ipsec ike remote id x (相手のネットワークアドレス)

という設定もしないといけないようです。

ということで上記をふまえた右側の YAMAHA RTX1210 の設定は以下のようになります。

tunnel 1 が 東日本リージョンの VPN ゲートウェイとの接続で、 tunnel 2 が西日本リージョンの VPN ゲートウェイとの接続で、 tunnel 3 が左側の YAMAHA RTX1210 との接続になります。

ip route default gateway pp 1
ip route 172.16.1.0/24 gateway tunnel 1
ip route 172.16.2.0/24 gateway tunnel 2
ip route 192.168.2.0/24 gateway tunnel 3
ip lan1 address 192.168.1.1/24
ip lan2 nat descriptor 1
pp select 1
 pppoe use lan2
 pp auth accept pap chap
 pp auth myname xxx@yyy zzz
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ppp ipcp msext on
 ppp ccp type none
 ip pp mtu 1454
 ip pp nat descriptor 1
 pp enable 1
tunnel select 1
 ipsec tunnel 101
  ipsec sa policy 101 1 esp aes-cbc sha-hmac
  ipsec ike duration ipsec-sa 1 3600
  ipsec ike duration ike-sa 1 28800
  ipsec ike encryption 1 aes-cbc
  ipsec ike group 1 modp1024
  ipsec ike hash 1 sha
  ipsec ike keepalive use 1 on dpd
  ipsec ike local address 1 192.168.1.1
  ipsec ike local id 1 192.168.1.0/24
  ipsec ike pfs 1 on
  ipsec ike pre-shared-key 1 text xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  ipsec ike remote address 1 198.51.100.123
  ipsec ike remote id 1 172.16.1.0/24
 tunnel enable 1
tunnel select 2
 ipsec tunnel 102
  ipsec sa policy 102 2 esp aes-cbc sha-hmac
  ipsec ike duration ipsec-sa 2 3600
  ipsec ike duration ike-sa 2 28800
  ipsec ike encryption 2 aes-cbc
  ipsec ike group 2 modp1024
  ipsec ike hash 2 sha
  ipsec ike keepalive use 2 on dpd
  ipsec ike local address 2 192.168.1.1
  ipsec ike local id 2 192.168.1.0/24
  ipsec ike pfs 2 on
  ipsec ike pre-shared-key 2 text xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  ipsec ike remote address 2 198.51.100.234
  ipsec ike remote id 2 172.16.2.0/24
 tunnel enable 2
tunnel select 3
 ipsec tunnel 103
  ipsec sa policy 103 3 esp aes-cbc sha-hmac
  ipsec ike duration ipsec-sa 3 3600
  ipsec ike duration ike-sa 3 28800
  ipsec ike encryption 3 aes-cbc
  ipsec ike group 3 modp1024
  ipsec ike hash 3 sha
  ipsec ike keepalive use 3 on dpd
  ipsec ike local address 3 192.168.1.1
  ipsec ike local id 3 192.168.1.0/24
  ipsec ike pfs 3 on
  ipsec ike pre-shared-key 3 text my_shared_secret
  ipsec ike remote address 3 203.0.113.234
  ipsec ike remote id 3 192.168.2.0/24
 tunnel enable 3
nat descriptor type 1 masquerade
nat descriptor address outer 1 ipcp
nat descriptor address inner 1 auto
nat descriptor masquerade static 1 1 192.168.1.1 udp 500
nat descriptor masquerade static 1 2 192.168.1.1 udp 4500
nat descriptor masquerade static 1 3 192.168.1.1 esp
ipsec auto refresh on
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.1.101-192.168.1.200/24
dns server pp 1
dns private address spoof on

左側の YAMAHA RTX1210 の設定

左側の YAMAHA RTX1210 は右側と同じ感じで設定します。

ip route default gateway pp 1
ip route 172.16.1.0/24 gateway tunnel 1
ip route 172.16.2.0/24 gateway tunnel 2
ip route 192.168.1.0/24 gateway tunnel 3
ip lan1 address 192.168.2.1/24
ip lan2 nat descriptor 1
pp select 1
 pppoe use lan2
 pp auth accept pap chap
 pp auth myname iii@jjj kkk
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ppp ipcp msext on
 ppp ccp type none
 ip pp mtu 1454
 ip pp nat descriptor 1
 pp enable 1
tunnel select 1
 ipsec tunnel 101
  ipsec sa policy 101 1 esp aes-cbc sha-hmac
  ipsec ike duration ipsec-sa 1 3600
  ipsec ike duration ike-sa 1 28800
  ipsec ike encryption 1 aes-cbc
  ipsec ike group 1 modp1024
  ipsec ike hash 1 sha
  ipsec ike keepalive use 1 on dpd
  ipsec ike local address 1 192.168.2.1
  ipsec ike local id 1 192.168.2.0/24
  ipsec ike pfs 1 on
  ipsec ike pre-shared-key 1 text xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  ipsec ike remote address 1 198.51.100.123
  ipsec ike remote id 1 172.16.1.0/24
 tunnel enable 1
tunnel select 2
 ipsec tunnel 102
  ipsec sa policy 102 2 esp aes-cbc sha-hmac
  ipsec ike duration ipsec-sa 2 3600
  ipsec ike duration ike-sa 2 28800
  ipsec ike encryption 2 aes-cbc
  ipsec ike group 2 modp1024
  ipsec ike hash 2 sha
  ipsec ike keepalive use 2 on dpd
  ipsec ike local address 2 192.168.2.1
  ipsec ike local id 2 192.168.2.0/24
  ipsec ike pfs 2 on
  ipsec ike pre-shared-key 2 text xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  ipsec ike remote address 2 198.51.100.234
  ipsec ike remote id 2 172.16.2.0/24
 tunnel enable 2
tunnel select 3
 ipsec tunnel 103
  ipsec sa policy 103 3 esp aes-cbc sha-hmac
  ipsec ike duration ipsec-sa 3 3600
  ipsec ike duration ike-sa 3 28800
  ipsec ike encryption 3 aes-cbc
  ipsec ike group 3 modp1024
  ipsec ike hash 3 sha
  ipsec ike keepalive use 3 on dpd
  ipsec ike local address 3 192.168.2.1
  ipsec ike local id 3 192.168.2.0/24
  ipsec ike pfs 3 on
  ipsec ike pre-shared-key 3 text my_shared_secret
  ipsec ike remote address 3 203.0.113.123
  ipsec ike remote id 3 192.168.1.0/24
 tunnel enable 3
nat descriptor type 1 masquerade
nat descriptor address outer 1 ipcp
nat descriptor address inner 1 auto
nat descriptor masquerade static 1 1 192.168.2.1 udp 500
nat descriptor masquerade static 1 2 192.168.2.1 udp 4500
nat descriptor masquerade static 1 3 192.168.2.1 esp
ipsec auto refresh on
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.2.101-192.168.2.200/24
dns server pp 1
dns private address spoof on

まとめ

さすがに接続する拠点が増えると大分ごちゃごちゃしてしまいました。この構成ではフルメッシュで IPsec VPN(L3 VPN) 接続をするため、オンプレ間通信が多いような利用方法の場合に、ニフティクラウドを経由する余計なトラフィックが発生せず良いかもしれません。逆にフルメッシュにしなければならないので、オンプレ拠点の数が多くなると設定が大変になってしまいます。

オンプレからは東西リージョンのどちらへも接続することができるので、東西リージョンでサーバを分散配置することで東西リージョンのどちらかに障害が起きたようなときでも、業務に与える影響を小さくすることができるのではないかと思います。たとえばニフティクラウドさんでは Windows サーバも動かすことができるようですが、東西に 1 台ずつ Active Directory サーバを構築しておいて耐障害性を高めるサーバ運用なんてのもできるのではないかと思います。

次回は IPsec VPN(L3 VPN) と L2TPv3/IPsec VPN(L2 VPN) を組み合わせて東西リージョンを利用した耐障害性の高いネットワーク構築の例を紹介したいと思います。