ipsec
fortigate
AlibabaCloud
Alibabaクラウド

Alibaba Cloud VPN GWとFortigateで IPsec接続

 Routing Based とPolicy Based

IPSecの世界にざっくり2種類の実装があって、1つはACL/Policyでトラフィックを選択し、選択したトラフィック毎にIPsecTunnelを構成するPolicy Based、もう一つはざっくり何でも通すIPsec Tunnelを構成しておいて、どのトンネルを使うかあるいは使わないかをIP RoutingのNexthopで選ぶタイプ。
Alibaba CloudのVPN-GWはpolicy BasedのIPSecに見える。ということで、今回はRouting Basedな機器を接続するパターンを検証。
image.png

  • 0.0.0.0/0 <---> 10.128.1.0/24を暗号化するトンネル作成
  • Alibaba CloudはPolicyに従い、10.128.1.0/24宛てのトラフィックは全てトンネルを使用(Policy based)
  • FortigateはStatic Routeで必要なCIDR(この場合は172.24.0.0/16)のNext Hopをトンネルに指定(Routing based)

接続

Alibaba Cloud側準備

VPN Gateway準備

Alibaba Cloud側の IPsec終端ポイントの作成。
1時間10円ぐらい。購入するとIPSec用のグローバルIPが割り当てられる。

image.png

image.png

Customer Gateway準備

こちらはFortigate側のアドレス。今回のように他の機器でNATされている場合はNATの外側で使われているグローバルアドレスを設定。
image.png

VPN Connection準備

先ほど作成したVPN GatewayとCustomer Gatewayを選択
image.png

  • ローカルネットワークは0.0.0.0/0とする。AlibabaCloud側として全ての宛先を受け入れる設定になり、FortigateはRoutingの仕組みでここを通すトラフィックを選ぶ。
  • リモートネットワークはfortigate側のプライベートアドレス空間を指定する。0.0.0.0/0にしてはいけない。
  • 「高度な設定」が必要
  • 事前共有鍵"alitest"
  • RemoteIDは今回のようにNATの裏にFortigateがいる場合はNATの裏側のFortigateのプライベートIPになるので書き換える。
  • DHグループはFortigate側に合わせてGroup5に変更。Alibaba Cloud側のデフォルト値の2がデフォルトではFortigate側に設定されていない。
  • 他はデフォルト値で。

Fortigate側準備

Address Object作成

fortigate側のLANのアドレスを定義
image.png

IPSec Tunnel作成

こちらもAlibaba Cloud側に合わせ、Remote Addressは0.0.0.0/0、Local Addressは実際のSubnetアドレスを指定する。Preshared keyはここではAlibaba Cloud側に合わせて"alitest"を設定する。
image.png

MEMO
Local Addressが複数のCIDRになる場合は注意が必要。
「Phase 2 Selector」が複数行あるとIKEv1でもv2でもそれ毎にSAペアを作ろうとするのでAlibaba Cloud側でもその数だけVPN Connectionが作る必要がある。下記のCISCOと同じ挙動をする。
https://qiita.com/makotaka/items/985277345794b4a51273

Polocy作成

FortigateのportとTunnelとの間で想定できるトラフィックを全てAcceptする。
image.png

Static Route 作成

そして実際にTunnelへ流すトラフィックはそのStatic Routeのnext hopをVPN Tunnel interfaceに設定することで選択する。
image.png