Edited at

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