【Fortigate】サイト間IPSec設定(PPPoE網間接続)と動作確認 FortiOS6.0.9

PPPoE網を介して、センタと拠点のFortiGate間にサイト間IPsecを設定し、動作を確認します。

暗号化アルゴリズムなどは初期値のままにして、まずIPsecで拠点からセンタへ接続できる最小の設定を確認します。検証したFortiOSのバージョンは6.0.9です。

前提

PPPoEの接続環境は、次の記事の構成をそのまま使います。先に読んでおくと、この記事の構成が分かりやすくなります。

>> 参考記事:【Fortigate】 PPPoE設定と動作確認 FortiOS6.0.9

この記事でわかること
  1. PPPoE網からデフォルトルートを学習しない設定と、対向のFortiGateだけに届くルートの作り方
  2. カスタムのIPsecトンネルの作り方と、オートネゴシエーションの役割
  3. トンネル向けのルートとセキュリティポリシーの設定
  4. PPPoE+IPsecでのMSSの求め方

構成とルーティングの方針

センタ(Center)と拠点(Branch)のFortiGateは、どちらもwan1でPPPoE網に接続しています。センタのLANにはインターネット向けのルータ(192.168.1.254)もあります。

InternetIPsecセンタ(Center)拠点(Branch).110.99192.168.1.0/24.254wan1128.1.1.1.110.99192.168.2.0/24wan1128.1.1.2PPPoE網128.128.128.128
図1 検証の構成

センタは一般にインターネットにも接続されているため、デフォルトルートはセンタのインターネット側に向けます。そのため、PPPoE網から取得するデフォルトルートは使いません。拠点も、IPsecの設定後はデフォルトルートの対象となる通信をトンネルに流すので、PPPoE網からのデフォルトルートは使いません。

PPPoE網から取得するデフォルトルートを使わないと、対向のFortiGateにも届かなくなります。IPsecの接続には対向のアドレスへの通信が必要なので、対向のアドレス宛のルートだけをPPPoE網向けに追加します。ルートの方針は次のとおりです。

項目センタ拠点
PPPoE網から取得するデフォルトルート使わない使わない
デフォルトルートinternal経由(192.168.1.254)トンネル(To_Center)
対向のPPPoEアドレス宛128.1.1.2/32 をPPPoE網向けに追加128.1.1.1/32 をPPPoE網向けに追加
対向のLAN宛192.168.2.0/24 をトンネル(To_Branch)へデフォルトルートに含まれる

通信は拠点からセンタへの方向だけを許可します。センタ発で拠点へ向かう通信は、この記事では許可しません。

センタ側のルーティング設定(IPsec設定前)

PPPoE網側のルーティング設定

現在、センタ側はPPPoE網からデフォルトルートを学習しています。

画面イメージについて

この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。PPPoEのユーザ名とパスワードは伏せています。

FortiGate 設定画面(GUI)画面イメージ
ネットワーク ›› インタフェース ›› wan1の編集
アドレス
アドレッシングモード○ マニュアル○ DHCP◉ PPPoE
ステータス 接続済み
取得したIP/ネットマスク128.1.1.1 255.255.255.255
取得したDNS 
1デフォルトゲートウェイ128.128.128.128
ユーザ名(伏せています)
パスワード(伏せています)
⋮ (中略)
図2 センタ側 wan1(PPPoE)の設定画面。PPPoE網から取得したデフォルトゲートウェイ(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1デフォルトゲートウェイPPPoE網から取得した 128.128.128.128 が表示されている。この状態では、PPPoE網がデフォルトルートになる

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

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

FortiGate 設定画面(GUI)画面イメージ
ネットワーク ›› インタフェース ›› wan1の編集
アドレス
アドレッシングモード○ マニュアル○ DHCP◉ PPPoE
ステータス 接続済み
取得したIP/ネットマスク128.1.1.1 255.255.255.255
取得したDNS 
ユーザ名(伏せています)
パスワード(伏せています)
Unnumbered IP接続0.0.0.0
初期ディスクタイムアウト1
初期PADTタイムアウト1
1サーバからデフォルトゲートウェイを取得オフ
図3 センタ側 wan1(PPPoE)の設定画面。デフォルトゲートウェイの取得をオフにしたあと(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1サーバからデフォルトゲートウェイを取得オフにする。設定後は「デフォルトゲートウェイ」の行が表示されなくなる
補足

この項目は、CLIではインタフェースの defaultgw を disable にする設定に当たります。

ただし、デフォルトゲートウェイを学習しないようにしたことで、拠点側のFortiGateに疎通できなくなりました。

CENTER

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宛のルートを追加します。

FortiGate 設定画面(GUI)画面イメージ
ネットワーク ›› スタティックルート ›› 新規作成
1宛先◉ サブネット○ インターネットサービス
128.1.1.2/255.255.255.255
2インターフェースwan1
3ゲートウェイアドレス128.128.128.128
アドミニストレーティブ・ディスタンス10
ステータス◉ 有効化済み○ 無効化済み
図4 センタ側のスタティックルート。対向FortiGate(拠点)宛のルート(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1宛先128.1.1.2/255.255.255.255(拠点のFortiGateのPPPoEアドレス)
2インターフェースwan1
3ゲートウェイアドレス128.128.128.128(PPPoE網側のアドレス)

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

FortiGate 設定画面(GUI)画面イメージ
モニタ ›› ルーティングモニタ
タイプネットワークゲートウェイIPインターフェース
コネクテッド128.1.1.1/320.0.0.0ppp1
スタティック128.1.1.2/32128.128.128.1281wan1
コネクテッド128.128.128.128/320.0.0.0ppp1
図5 センタ側のルーティングモニタ。追加したスタティックルートの出力先がwan1になっている(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.表示意味
1インターフェース(スタティックの行)wan1。PPPoEで取得した経路(コネクテッド)の出力先はppp1なので、このままでは合わない

もう一度、拠点側へpingを実行しますが、疎通できません。スタティックで追加したルートのインタフェースは、wan1ではなくppp1にする必要があります。ただし、GUIではppp1を選択できないため、CLIで設定を変更します。追加したスタティックルートの設定は次のとおりです。

CENTER

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

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
補足

dynamic-gateway は、DHCPやPPPoEのサーバから取得したゲートウェイをルートに使う設定です。有効にすると、show router static の出力から gateway の行が表示されなくなります。インタフェースのゲートウェイが接続や切断のたびに変わっても、ルートが自動で更新されます。

モニタ ›› ルーティングモニタ を確認すると、インタフェースがppp1に変わっています。

FortiGate 設定画面(GUI)画面イメージ
モニタ ›› ルーティングモニタ
タイプネットワークゲートウェイIPインターフェース
コネクテッド128.1.1.1/320.0.0.0ppp1
スタティック128.1.1.2/32128.128.128.1281ppp1
コネクテッド128.128.128.128/320.0.0.0ppp1
図6 センタ側のルーティングモニタ。スタティックルートの出力先がppp1に変わった(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.表示意味
1インターフェース(スタティックの行)ppp1に変わった

これで、拠点側のFortiGateへ疎通できるようになりました。

CENTER

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)を設定します。

FortiGate 設定画面(GUI)画面イメージ
ネットワーク ›› スタティックルート ›› 新規作成
1宛先◉ サブネット○ インターネットサービス
0.0.0.0/0.0.0.0
2インターフェースinternal
3ゲートウェイアドレス192.168.1.254
アドミニストレーティブ・ディスタンス10
ステータス◉ 有効化済み○ 無効化済み
図7 センタ側のデフォルトルート(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1宛先0.0.0.0/0.0.0.0(デフォルトルート)
2インターフェースinternal
3ゲートウェイアドレス192.168.1.254(インターネット向けのルータ)

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

FortiGate 設定画面(GUI)画面イメージ
モニタ ›› ルーティングモニタ
タイプネットワークゲートウェイIPインターフェース
スタティック0.0.0.0/0192.168.1.2541internal
コネクテッド128.1.1.1/320.0.0.0ppp1
スタティック128.1.1.2/32128.128.128.128ppp1
コネクテッド128.128.128.128/320.0.0.0ppp1
図8 センタ側のルーティングモニタ。デフォルトルートがinternal向けに追加された(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.表示意味
1スタティックの 0.0.0.0/0ゲートウェイ192.168.1.254、出力先internalのデフォルトルート

拠点側のルーティング設定(IPsec設定前)

PPPoE網側のルーティング設定

拠点側もPPPoE網からデフォルトルートを学習しています。ただし、IPsecの設定後は、デフォルトルートの対象となる通信がIPsecトンネルを通ります。そのため、センタ側と同様に、サーバからデフォルトゲートウェイを取得 を無効にします。

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

FortiGate 設定画面(GUI)画面イメージ
ネットワーク ›› インタフェース ›› wan1の編集
アドレス
アドレッシングモード○ マニュアル○ DHCP◉ PPPoE
ステータス 接続済み
取得したIP/ネットマスク128.1.1.2 255.255.255.255
取得したDNS 
ユーザ名(伏せています)
パスワード(伏せています)
Unnumbered IP接続0.0.0.0
初期ディスクタイムアウト1
初期PADTタイムアウト1
1サーバからデフォルトゲートウェイを取得オフ
図9 拠点側 wan1(PPPoE)の設定画面。デフォルトゲートウェイの取得をオフにしたあと(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1サーバからデフォルトゲートウェイを取得オフにする。設定後は「デフォルトゲートウェイ」の行が表示されなくなる

センタ側と同じく、拠点からセンタのFortiGateに疎通できなくなります。128.1.1.1/32向けのスタティックルートを、PPPoE網向けに設定します。

FortiGate 設定画面(GUI)画面イメージ
ネットワーク ›› スタティックルート ›› 新規作成
1宛先◉ サブネット○ インターネットサービス
128.1.1.1/32
2インターフェースwan1
3ゲートウェイアドレス128.128.128.128
アドミニストレーティブ・ディスタンス10
ステータス◉ 有効化済み○ 無効化済み
図10 拠点側のスタティックルート。対向FortiGate(センタ)宛のルート(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1宛先128.1.1.1/32(センタのFortiGateのPPPoEアドレス)
2インターフェースwan1
3ゲートウェイアドレス128.128.128.128(PPPoE網側のアドレス)

CLIでの設定も必要です。

Branch

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であることを確認できます。

FortiGate 設定画面(GUI)画面イメージ
モニタ ›› ルーティングモニタ
タイプネットワークゲートウェイIPインターフェース
スタティック128.1.1.1/32128.128.128.1281ppp1
コネクテッド128.1.1.2/320.0.0.0ppp1
コネクテッド128.128.128.128/320.0.0.0ppp1
図11 拠点側のルーティングモニタ。スタティックルートの出力先がppp1になっている(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.表示意味
1インターフェース(スタティックの行)ppp1。センタ側と同じ設定になった

これで、拠点からセンタのPPPoE網までの疎通ができるようになりました。

Branch

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)を設定し、カスタムを選択して、次へをクリックします。

FortiGate 設定画面(GUI)画面イメージ
1 VPNセットアップ
1名前To_Branch
2テンプレートタイプ○ サイト間○ リモートアクセス◉ カスタム
< 戻る3次へ >キャンセル
図12 VPN作成ウィザードの最初の画面(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1名前To_Branch
2テンプレートタイプカスタム
3次へクリックして新規VPNトンネルの画面に進む

次の画面が表示されます。変更する箇所は次の3つです。

  • IPアドレス:対向のFortiGateのIPアドレスを設定します(拠点側の128.1.1.2)。
  • インタフェース:出力インタフェースを設定します(wan1)。
  • 事前共有鍵:任意の文字列です。対向のFortiGateと合わせる必要があります。
FortiGate 設定画面(GUI)画面イメージ
VPN ›› IPsecトンネル ›› 新規VPNトンネル
名前To_Branch
コメント 
ネットワーク
IPバージョン◉ IPv4○ IPv6
リモートゲートウェイ固定IPアドレス
1IPアドレス128.1.1.2
2インターフェースwan1
ローカルゲートウェイオフ
モード設定☐
NATトラバーサル◉ 有効○ 無効○ 強制
キープアライブ間隔10
デッドピア検知○ 無効○ オンアイドル◉ オンデマンド
認証
方式事前共有鍵
3事前共有鍵(伏せています)
図13 センタ側の新規VPNトンネル(カスタム)の画面(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1IPアドレス128.1.1.2(対向の拠点側FortiGate)
2インターフェースwan1
3事前共有鍵拠点側と同じ文字列(伏せています)

次に下へスクロールし、フェーズ2セレクタの高度な設定を展開します。下のほうにあるオートネゴシエーションを有効にします。自動鍵キープアライブも有効になります。

FortiGate 設定画面(GUI)画面イメージ
⋮ (中略)
Diffie-Hellmanグループ☐ 31 ☐ 30 ☐ 29 ☐ 28 ☐ 27 ☐ 21
☐ 20 ☐ 19 ☐ 18 ☐ 17 ☐ 16 ☐ 15
☑ 14 ☑ 5 ☐ 2 ☐ 1
ローカルポートすべて ☑
リモートポートすべて ☑
プロトコルすべて ☑
1オートネゴシエーション☑
自動鍵キープアライブ☑
鍵の有効時間秒
秒43200
OKキャンセル
図14 フェーズ2セレクタの高度な設定(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1オートネゴシエーションチェックを入れる。自動鍵キープアライブも自動でオンになる
補足

フェーズ2は、初期状態では、相手から通信が来て初めてネゴシエーションが始まります。オートネゴシエーションを有効にすると、通信がなくてもFortiGateからネゴシエーションを開始し、トンネルが切れたときも再確立を試みます。自動鍵キープアライブは、通信がなくてもフェーズ2のSAを期限前に更新して、トンネルを維持する設定です。この記事では、センタと拠点の両側で有効にしています。

拠点側

対向のIPアドレス以外は、センタ側と同様に設定します。名前は To_Center にします。フェーズ2のオートネゴシエーションも、センタ側と同じく有効にします。

FortiGate 設定画面(GUI)画面イメージ
VPN ›› IPsecトンネル ›› 新規VPNトンネル
名前To_Center
コメント 
ネットワーク
IPバージョン◉ IPv4○ IPv6
リモートゲートウェイ固定IPアドレス
1IPアドレス128.1.1.1
2インターフェースwan1
ローカルゲートウェイオフ
モード設定☐
NATトラバーサル◉ 有効○ 無効○ 強制
キープアライブ間隔10
デッドピア検知○ 無効○ オンアイドル◉ オンデマンド
認証
方式事前共有鍵
3事前共有鍵(伏せています)
図15 拠点側の新規VPNトンネル(カスタム)の画面(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1IPアドレス128.1.1.1(対向のセンタ側FortiGate)
2インターフェースwan1
3事前共有鍵センタ側と同じ文字列(伏せています)

トンネルインタフェースの確認

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

FortiGate 設定画面(GUI)画面イメージ
ネットワーク ›› インタフェース
センタ側
wan1128.1.1.1 255.255.255.255物理インターフェース
 1To_Branch0.0.0.0 0.0.0.0トンネルインターフェース
拠点側
wan1128.1.1.2 255.255.255.255物理インターフェース
 1To_Center0.0.0.0 0.0.0.0トンネルインターフェース
図16 インタフェースの一覧。wan1の下にトンネルインタフェースが追加されている(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.表示意味
1トンネルインターフェースセンタ側はTo_Branch、拠点側はTo_Centerが、wan1の下に追加される。緑の丸はwan1が稼働中であることを表す

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

FortiGate 設定画面(GUI)画面イメージ
ネットワーク ›› インタフェース
インターフェース To_Branch
リンク ダウン
タイプトンネルインターフェース
FortiTelemetry✖
図17 センタ側のトンネルインタフェースにポインタを合わせたときの表示(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.表示意味
1リンク赤い表示(ダウン)。トンネルはまだ確立していない

ルーティング設定

センタ側

センタ側は、拠点の192.168.2.0/24をトンネルインタフェース経由で接続するように、ルートを追加します(インタフェースはTo_Branch)。

FortiGate 設定画面(GUI)画面イメージ
ネットワーク ›› スタティックルート ›› 新規作成
1宛先◉ サブネット○ インターネットサービス
192.168.2.0/24
2インターフェースTo_Branch
アドミニストレーティブ・ディスタンス10
ステータス◉ 有効化済み○ 無効化済み
図18 センタ側のスタティックルート。拠点のLANをトンネル向けにする(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1宛先192.168.2.0/24(拠点のLAN)
2インターフェースTo_Branch(トンネルインタフェース)

拠点側

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

FortiGate 設定画面(GUI)画面イメージ
ネットワーク ›› スタティックルート ›› 新規作成
1宛先◉ サブネット○ インターネットサービス
0.0.0.0/0.0.0.0
2インターフェースTo_Center
アドミニストレーティブ・ディスタンス10
ステータス◉ 有効化済み○ 無効化済み
図19 拠点側のデフォルトルート。すべての通信をトンネル向けにする(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1宛先0.0.0.0/0.0.0.0(デフォルトルート)
2インターフェースTo_Center(トンネルインタフェース)

ポリシー設定

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

センタ側のポリシー

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

FortiGate 設定画面(GUI)画面イメージ
ポリシー&オブジェクト ›› IPv4ポリシー ›› 新規ポリシー
名前From_Branch
1入力インターフェースTo_Branch
2出力インターフェースinternal
送信元all
宛先all
スケジュールalways
サービスALL
3アクション◉ ACCEPT○ DENY
ファイアウォール / ネットワークオプション
4NATオフ
図20 センタ側のポリシー。トンネルからinternalへの通信を許可する(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1入力インターフェースTo_Branch
2出力インターフェースinternal
3アクションACCEPT(送信元・宛先はall、サービスはALL)
4NATオフ

拠点側のポリシー

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

FortiGate 設定画面(GUI)画面イメージ
ポリシー&オブジェクト ›› IPv4ポリシー ›› 新規ポリシー
名前To_Center
1入力インターフェースinternal
2出力インターフェースTo_Center
送信元all
宛先all
スケジュールalways
サービスALL
3アクション◉ ACCEPT○ DENY
ファイアウォール / ネットワークオプション
4NATオフ
図21 拠点側のポリシー。internalからトンネルへの通信を許可する(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.項目設定内容
1入力インターフェースinternal
2出力インターフェースTo_Center
3アクションACCEPT(送信元・宛先はall、サービスはALL)
4NATオフ

ポリシーを設定したあと、トンネルインタフェースがアップしました。

動作確認

モニタ ›› IPsecモニタ を確認すると、IPsecトンネルがアップしています。

FortiGate 設定画面(GUI)画面イメージ
モニタ ›› IPsecモニタ
センタ側
リフレッシュ統計をリセットアップ ▾ダウン ▾
名前タイプリモートゲートウェイPeer ID
1 To_Branchカスタム128.1.1.2 
拠点側
リフレッシュ統計をリセットアップ ▾ダウン ▾
名前タイプリモートゲートウェイPeer ID
1 To_Centerカスタム128.1.1.1 
図22 IPsecモニタ。センタ側と拠点側のトンネルがアップしている(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.表示意味
1名前の左の緑の丸アップ(トンネルが確立している)

拠点の端末からも、センタ側のLANの端末(192.168.1.110)へ疎通できました。

拠点の端末(コマンドプロンプト)画面イメージ
C:¥>ping 192.168.1.110 192.168.1.110 に ping を送信しています 32 バイトのデータ:1192.168.1.110 からの応答: バイト数 =32 時間 <1ms TTL=62192.168.1.110 からの応答: バイト数 =32 時間 =1ms TTL=62192.168.1.110 からの応答: バイト数 =32 時間 =1ms TTL=62192.168.1.110 からの応答: バイト数 =32 時間 =1ms TTL=62 192.168.1.110 の ping 統計:2    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、ラウンド トリップの概算時間 (ミリ秒):    最小 = 0ms、最大 = 1ms、平均 = 0ms
図23 拠点の端末からセンタ側の端末へのping(実際の画面ではなく、設定・表示のポイントを示したイメージです)
No.表示意味
1応答(TTL=62)4回とも応答が返っている。TTLはルータを1台通るごとに1減る。初期値を64とみなすと、拠点とセンタのFortiGate 2台を通った値になる
2損失 = 0パケットの損失は0%

TCP MSS調整

PPPoEとIPsecを経由してTCP通信をする場合は、パケットが大きすぎて途中で届かなくならないように、MSS(Maximum Segment Size)を調整します。

通常のイーサネットのMTUは1500です。PPPoEでは、PPPoEのヘッダ分だけMTUが小さくなります(標準では1492)。フレッツのPPPoEではMTUが1454になります。さらにIPsecのヘッダが付くので、PPPoE+IPsecのMTUはさらに小さくなります。

MSSは、MTUからIPヘッダ(20バイト)とTCPヘッダ(20バイト)の計40バイトを引いた値です。IPsecのオーバーヘッドを64バイトとして計算すると、PPPoE+IPsecでのMSSは1350になります。

項目値内容
フレッツPPPoEのMTU1454イーサネットの1500より小さい
IPsecのオーバーヘッド64この記事で使う目安の値
PPPoE+IPsecのMTU13901454 − 64
IPヘッダ+TCPヘッダ4020 + 20
MSS13501390 − 40
フレッツPPPoEのMTU 1454IPsec 約64(目安)PPPoE+IPsecのMTU 1390IPヘッダ+TCPヘッダ 40MSS 13501454 − 64 = 1390、1390 − 40 = 1350(単位:バイト、図の長さは実際の比率)
図24 MTUとMSSの関係
補足

IPsecのオーバーヘッドは、使うアルゴリズムなどによって変わります。Fortinetの技術情報では、およそ58〜73バイトとされています。64バイトはその範囲に入る目安の値です。実際の環境では、DFビットを付けたpingでMTUを調べ、そこから40を引いてMSSを決める方法もあります。

FortiGateでは、ポリシー単位でMSSを変更できます。

CENTER

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 #
補足

tcp-mss-sender と tcp-mss-receiver は、TCPのMSSをポリシーに設定した値に抑える項目です。通信で示されたMSSが設定値より小さいときは、そのMSSがそのまま使われます。IPsecトンネルインタフェースにもMSSを設定でき、設定した場合はポリシーの設定より優先されます。

検証環境について

この記事は、FortiOS 6.0.9での検証内容です。FortiOS 6.0は、2022年9月29日にサポートが終了しています。また、FortiOS 7.6.1以降では、IPsecトンネルを通る通信のMSSが自動では下げられなくなりました。そのため、MSSを手動で設定する必要が出る場合があります。

暗号化アルゴリズムなどの特別な要件がない場合に、IPsecで最低限必要になる接続手順を確認しました。

うまくいかないときの確認

状況よくある原因確認すること
対向のFortiGate(128.1.1.x)にpingが通らないPPPoE網からデフォルトルートを学習しない設定にしたあと、対向宛のルートがない。またはルートの出力先がwan1のままルーティングモニタで、対向宛のルートのインタフェースがppp1か。CLIで dynamic-gateway が enable か
トンネルがダウンのまま対向のIPアドレス、インタフェース、事前共有鍵が両側で合っていない。通信がなく、オートネゴシエーションも無効IPsecトンネルの設定と、IPsecモニタの状態
トンネルはアップしているが、端末同士で通信できないトンネル向けのルートがない。ポリシーの方向が違う。NATが有効になっているセンタは192.168.2.0/24→To_Branch、拠点はデフォルトルート→To_Center。ポリシーのNATが無効か
pingは通るが、一部のTCP通信だけ遅い、または途切れるMSSがPPPoE+IPsecのMTUに合っていないポリシーの tcp-mss-sender と tcp-mss-receiver

まとめ

項目センタ拠点
サーバからデフォルトゲートウェイを取得(PPPoE)オフオフ
対向のPPPoEアドレス宛のルート128.1.1.2/32(wan1、dynamic-gatewayを有効)128.1.1.1/32(wan1、dynamic-gatewayを有効)
デフォルトルートinternal経由(192.168.1.254)To_Center
IPsecトンネルTo_Branch(対向128.1.1.2、wan1)To_Center(対向128.1.1.1、wan1)
対向のLAN宛のルート192.168.2.0/24 → To_Branchデフォルトルートに含まれる
ポリシーTo_Branch → internal(NAT無効)internal → To_Center(NAT無効)
フェーズ2オートネゴシエーションを有効オートネゴシエーションを有効
TCP MSSポリシーで1350この記事では設定していない

コメント