PPPoE網を介したセンタ、拠点間のIPSec接続の設定と動作確認をします。
暗号化アルゴリズムなどはデフォルトのままとし、とりあえず、IPSecで拠点からセンタへ接続できる設定を確認します。
PPPoEの接続環境は、以下の記事の構成を流用しますので、先にお読みいただくことをお勧めします。
>> 参考記事 : PPPoE設定と動作確認 FortiOS6.0.9
センタは一般的にインターネット等も接続されていることが多いので、デフォルトルートはセンターのインターネット側に向け設定するものとします。
センタ側のルーティング設定(IPSec設定前)
PPPoE網側のルーティング設定
現在、センタ側はPPPoE網からデフォルトルートを学習しています。

今回の構成では、デフォルトルートはインターネット向けにする必要があるので、PPPoE網からデフォルトルートを学習しないよう、サーバからデフォルトゲートウェイを取得 を無効にします。

OKをクリックすると、IPアドレスが自動的に再取得されたのち、デフォルトゲートウェイを学習してないことが確認できます。

ただし、デフォルトゲートウェイを学習しないようにしたことで、拠点側のFortigateに疎通ができなくなりました。
CENTER # execute ping 128.1.1.2 PING 128.1.1.2 (128.1.1.2): 56 data bytes sendto failed sendto failed sendto failed sendto failed sendto failed --- 128.1.1.2 ping statistics --- 5 packets transmitted, 0 packets received, 100% packet loss CENTER #
拠点側のFortigateへの接続はIPSec接続で必要になるので、128.1.1.2のみPPPoE網にルーティング設定する必要があります。
ネットワーク >> スタティックルート より新規作成をクリックし、wan1インタフェース向けに128.1.1.2/32宛のルーティングを追加します。

モニタ >> ルーティングモニタを確認すると、追加したルートが反映されています。

もう一度、拠点側へpingを実行しますが、疎通ができません。スタティックで追加したルートのインタフェースはwan1ではなく、ppp1を設定する必要があります。ただし、GUI上ではppp1は選択できません。
この場合、CLIで設定変更する必要があります。 追加したスタティックルートの設定は以下のとおりです。
CENTER # show router static config router static edit 1 set dst 128.1.1.2 255.255.255.255 set gateway 128.128.128.128 set device "wan1" next end
このルートに対して、set dynamic-gateway enable を設定します。
CENTER # config router static CENTER (static) # edit 1 CENTER (1) # set dynamic-gateway enable CENTER (1) # end CENTER # show router static config router static edit 1 set dst 128.1.1.2 255.255.255.255 set device "wan1" set dynamic-gateway enable next end
モニタ >> ルーティングモニタを確認すると、インタフェースがppp1に変更されています。

これで、拠点側のFortigateへ疎通できるようになりました。
CENTER # execute ping 128.1.1.2 PING 128.1.1.2 (128.1.1.2): 56 data bytes 64 bytes from 128.1.1.2: icmp_seq=0 ttl=254 time=0.4 ms 64 bytes from 128.1.1.2: icmp_seq=1 ttl=254 time=0.3 ms 64 bytes from 128.1.1.2: icmp_seq=2 ttl=254 time=0.2 ms 64 bytes from 128.1.1.2: icmp_seq=3 ttl=254 time=0.3 ms 64 bytes from 128.1.1.2: icmp_seq=4 ttl=254 time=0.3 ms --- 128.1.1.2 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 0.2/0.3/0.4 ms
インターネットへのデフォルトルートの設定
ネットワーク >> スタティックルート より インターネット向けにゲートウェイアドレス192.168.1.254として、デフォルトルート(0.0.0.0/0.0.0.0)を設定します。

モニタ >> ルーティングモニタ より、デフォルトルートが追加されていることが確認できます。

拠点側のルーティング設定(IPSec設定前)
拠点側もPPPoE網からデフォルトルートを学習しています。
ただし、IPSec設定後は、デフォルトルートの対象となる通信は、IPSecトンネルを介して行われるため、センタ側同様、PPPoE網から学習しないように、サーバからデフォルトゲートウェイを取得 を無効にします。

OKをクリックすると、IPアドレスを再取得し、デフォルトゲートウェイを学習してないことが確認できます。

センタ同様に、拠点〜センタのFortigateに疎通ができなくなります。128.1.1.1/32向けのスタティックルートをPPPoE網内向けに設定します。

CLIでの設定も必要です。
Branch # show router static config router static edit 1 set dst 128.1.1.1 255.255.255.255 set gateway 128.128.128.128 set device "wan1" next end Branch # config router static Branch (static) # edit 1 Branch (1) # set dynamic-gateway enable Branch (1) # end Branch # show router static config router static edit 1 set dst 128.1.1.1 255.255.255.255 set device "wan1" set dynamic-gateway enable next end
モニタ >> ルーティングモニタを確認すると、追加ルート128.1.1.1/32のインタフェースがppp1であることが確認できます。

これで、拠点からセンタのPPPoE網間の疎通ができるようになりました。
Branch # execute ping 128.1.1.1 PING 128.1.1.1 (128.1.1.1): 56 data bytes 64 bytes from 128.1.1.1: icmp_seq=0 ttl=254 time=0.5 ms 64 bytes from 128.1.1.1: icmp_seq=1 ttl=254 time=0.3 ms 64 bytes from 128.1.1.1: icmp_seq=2 ttl=254 time=0.3 ms 64 bytes from 128.1.1.1: icmp_seq=3 ttl=254 time=0.2 ms 64 bytes from 128.1.1.1: icmp_seq=4 ttl=254 time=0.2 ms --- 128.1.1.1 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 0.2/0.3/0.5 ms Branch #
IPSecトンネル設定
センタ側
VPN >> IPSecトンネル を選択し、新規作成をクリックします。

任意の名前(今回は拠点向けということで、To_Branch とします)を設定し、カスタムを選択して、次へをクリックします。

以下の画面が表示されます。

変更する箇所は以下です。
- IPアドレス:対向のFortigateのIPアドレスを設定します。(拠点側の128.1.1.2)
- インタフェース:出力インタフェースを設定(wan1)
- 事前共有鍵:任意も文字列。対向のFortigateとあわせる必要があります。
次に下へスクロールし、フェーズ2セレクタの高度な設定を展開します。
下の方にあるオートネゴシエーションを有効にします。(自動鍵キープアライブも有効になります)これにより、VPNが切断された際に自動的に再接続が試みられます。

拠点側
対向のIPアドレス以外は、センタ側と同様に設定します。


トンネルインタフェースの確認
ネットワーク >> インタフェース を確認すると、センタ側、拠点側それぞれのwan1にトンネルインタフェースが追加されていることを確認します。(上がセンタ側、下が拠点側)


まだ、この時点では、トンネルインタフェースはダウン状態です。

ルーティング設定
センタ側は、拠点の192.168.2.0/24はトンネルインタフェース経由での接続になるよう、ルーティングを追加する必要があります。(インタフェースはTo_Branchにします)

拠点側はセンタ側向けのすべての通信をトンネルインタフェース経由になるよう、デフォルトルートを追加する必要があります。(インタフェースはTo_Centerにします)

ポリシー設定
トンネルインタフェースを介するセキュリティポリシーを設定します。
拠点からセンタ側への通信をすべて許可します。(センタ発で拠点への通信は今回は許可しません)
センタ側のポリシー
送信元インタフェースをTo_Branch、宛先インタフェースをinternalとして、すべての通信を許可するポリシーを設定します。NATは無効にします。

拠点側
送信元インタフェースをInternal、宛先インタフェースをTo_Centerとして、すべての通信を許可するポリシーを設定します。 NATは無効にします。

ポリシーの設定が完了すると、トンネルインタフェースがアップします。
動作確認
モニタ >> IPSecモニタ を確認すると、IPSecトンネルがアップしていることが確認できます。(上がセンタ側、下が拠点側)


拠点端末からの疎通も確認できました。

TCP MSS調整
PPPoEとIPSecを経由してTCP接続する場合、MSS(Maximum Segment Size)を調整する必要があります。
通常のイーサネットのMTU値は1500ですが、例えば、フレッツPPPoEの場合、MTU値は1454になります。 さらにIPSecのヘッダが64バイト付与されるので、PPPoE+IPSecのMTU値は1390になります。
MSSでは、MTUよりさらにIPヘッダ(20バイト)とTCPヘッダ(20バイト)の計40バイトを減算しないといけないので、PPPoE+IPSecでのMSSは1350となります。
Fortigateでは、ポリシー単位で、MSSを変更することができます。
CENTER # config firewall policy CENTER (policy)# edit 2 CENTER (2) set tcp-mss-sender 1350 CENTER (2) set tcp-mss-receiver 1350 CENTER (2) end CENTER #
暗号化アルゴリズムなどの特別な要件がなく、デフォルトの設定として、IPSecで最低必要となる接続手順を確認しました。
コメント