ニフクラ ブログ

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

ニフティクラウドを Hub にして IPsec VPN(L3 VPN)

こんにちは。まほろば工房の浅間です。第 6 回目のエントリーです。前回までは 2 拠点を接続するような設定を紹介(東西リージョン間をL3 VPNL2 VPNで接続)してきましたが、今回からは 3 拠点以上を接続するような設定を紹介していきたいと思います。 まずは IPsec VPN(L3 VPN) でニフティクラウドを Hub にして拠点を接続する構成です。 “Hub にして” とあるとおり、 2 ヶ所のオンプレ間の通信をニフティクラウドを経由して行うことができるような構成です。絵にすると、こんな感じになります。

006_01

Hub構成の問題点

じつは IPsec VPN(L3 VPN) の場合、単純にこのようなネットワークを構成しようとすると拠点間の通信ができないネットワークになってしまいます。ふつうは以下のような構成を考えるとおもいます。

  1. ニフティクラウド側のプライベート LAN を 192.168.0.0/24 とする
  2. 右側の YAMAHA RTX1210 のプライベート側を 192.168.1.0/24 とする
  3. 左側の YAMAHA RTX1210 のプライベート側を 192.168.2.0/24 とする

ところがこのような構成にしてしまうと左右のオンプレ間の通信をニフティクラウドを Hub にして通信することはできません。このような構成では VPN ゲートウェイは以下の通信のみを暗号化して通すよう設定されるからです。

  1. 192.168.0.0/24 と 192.168.1.0/24 の間の通信(右側の RTX1210)
  2. 192.168.0.0/24 と 192.168.2.0/24 の間の通信(左側の RTX1210)

これらのルールでは 192.168.1.0/24 と 192.168.2.0/24 の間の通信が含まれないため、ニフティクラウドを Hub のようにして使うことはできないのです。

解決方法

そこでちょっと小細工をします。上の図にあるとおりニフティクラウドのプライベート LAN を 192.168.0.0/24 ではなく 192.168.0.0/16 で作ってしまいます(オンプレ側の 192.168.1.0/24 と 192.168.2.0/24 が 192.168.0.0/16 に含まれていることに注意してください)。このようにすると VPN ゲートウェイは以下の通信を暗号化して通すよう設定されます。

  1. 192.168.0.0/16 と 192.168.1.0/24 の間の通信(右側の RTX1210)
  2. 192.168.0.0/16 と 192.168.2.0/24 の間の通信(左側の RTX1210)

これでニフティクラウドを Hub にオンプレ間の通信もできるようになります(192.168.0.0/16 のなかには 192.168.0.0/24 も 192.168.1.0/24 も 192.168.2.0/24 も含まれるから)。

その上でニフティクラウドのプライベート LAN に接続されたサーバの IP アドレスを 192.168.0.xxx/24 のように設定すればオンプレの 192.168.1.xxx/24 や 192.168.2.xxx/24 とも通信することができます。

この方法の制約としてはオンプレとニフティクラウドのプライベート LAN がひとつの大きな CIDR ブロック(例えば今回の例では 192.168.0.0/16)に収まっており、なおかつニフティクラウド側のプライベート LAN はその CIDR の最初のサブネット(例えば今回の例では 192.168.0.0/24)である必要があります。

ちなみに今回はこんな裏技のような方法でニフティクラウドを Hub にするような設定をしてみましたが、個人的にはオンプレ側の RTX1210 間で VPN の設定をしたほうが良いのではないかという気もしています。この方法は後ほど “複数リージョン・複数オンプレでの IPsec VPN(L3 VPN)” で紹介します。

それでは VPN ゲートウェイの設定からはじめましょう。ニフティクラウドのコンパネを開きます。

VPN ゲートウェイの設定

プライベート LAN を作成します。上で説明したとおり、 192.168.0.0/16 という大きな CIDR ブロックで作成します。

006_02

次に VPN ゲートウェイを作成します。今回は 2 拠点以上を接続しますのでタイプは medium を選択しました。

006_03

ファイアウォールも前回までと同様設定します。今回は接続したいオンプレが 2 ヶ所になるので YAMAHA RTX1210 のグローバル IP アドレスをふたつと、あとはプライベート LAN の IP アドレス帯である 192.168.0.0/16 を許可リストに登録しました。

006_04

最後に VPN コネクションを作成します。まずは 1 ヶ所目(図の右側の YAMAHA RTX1210 用)の VPN コネクションの作成です。このへんは “YAMAHA RTX1210 で単一拠点 IPsec VPN(L3 VPN)” と同じです。

006_05

そして 2 ヶ所目(図の左側の YAMAHA RTX1210 用)の VPN コネクションの作成です。

006_06

作成が完了したらオンプレ側の YAMAHA RTX1210 の設定をしましょう。

右側の YAMAHA RTX1210 の設定

YAMAHA RTX1210 の設定は “YAMAHA RTX1210 で単一拠点 IPsec VPN(L3 VPN)” とまったく同じ手順になります。参考までに設定の全体を貼り付けておきます。

ip route default gateway pp 1
ip route 192.168.0.0/16 gateway tunnel 1
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 pfs 1 on
  ipsec ike pre-shared-key 1 text xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  ipsec ike remote address 1 198.51.100.123
 tunnel enable 1
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 で単一拠点 IPsec VPN(L3 VPN)” とまったく同じ手順になります。参考までに設定の全体を貼り付けておきます。

ip route default gateway pp 1
ip route 192.168.0.0/16 gateway tunnel 1
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 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.2.1
  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
 tunnel enable 1
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

ニフティクラウド上のサーバの設定

すでに説明したとおりプライベート LAN の設定は 192.168.0.0/16 で作成しましたが実際にニフティクラウド上のサーバに設定する IP アドレスは 192.168.0.xxx/24 で設定します。例としてサーバが Debian や Ubuntu の場合 /etc/network/interfaces を以下のようにすることで同じプライベート LAN 内のサーバやオンプレの端末と通信することができます。

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
    address 192.168.0.11
    netmask 255.255.255.0
    up ip route add 192.168.0.0/16 via 192.168.0.1

まとめ

IPsec VPN(L3 VPN) でニフティクラウドを Hub にオンプレ間の通信もできるような構成について紹介してみました。本文中でも説明していますが、この構成はちょっと裏技みたいな感じになってしまっているためオンプレ間で通信する必要があるときは素直にオンプレの YAMAHA RTX1210 間で直接 IPsec VPN の設定をしたほうが良いかもしれません。その方がネットワーク的にも最短経路で通信することになるはずです。ただ YAMAHA RTX1210 の設定をあまりごちゃごちゃさせたくないという場合もあるかもしれません。そのようなときはこの構成が便利かもしれません。

さて、次回は同じように今度は L2TPv3/IPsec VPN(L2 VPN) でニフティクラウドを Hub にするような構成を紹介したいと思います。お楽しみに。