PPPoE網を介して、センタと拠点のFortiGate間にサイト間IPsecを設定し、動作を確認します。
暗号化アルゴリズムなどは初期値のままにして、まずIPsecで拠点からセンタへ接続できる最小の設定を確認します。検証したFortiOSのバージョンは6.0.9です。
PPPoEの接続環境は、次の記事の構成をそのまま使います。先に読んでおくと、この記事の構成が分かりやすくなります。
- PPPoE網からデフォルトルートを学習しない設定と、対向のFortiGateだけに届くルートの作り方
- カスタムのIPsecトンネルの作り方と、オートネゴシエーションの役割
- トンネル向けのルートとセキュリティポリシーの設定
- PPPoE+IPsecでのMSSの求め方
構成とルーティングの方針
センタ(Center)と拠点(Branch)のFortiGateは、どちらもwan1でPPPoE網に接続しています。センタのLANにはインターネット向けのルータ(192.168.1.254)もあります。
センタは一般にインターネットにも接続されているため、デフォルトルートはセンタのインターネット側に向けます。そのため、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のユーザ名とパスワードは伏せています。
| アドレッシングモード | ○ マニュアル○ DHCP◉ PPPoE |
| ステータス | 接続済み |
| 取得したIP/ネットマスク | 128.1.1.1 255.255.255.255 |
| 取得したDNS | |
| 1デフォルトゲートウェイ | 128.128.128.128 |
| ユーザ名 | (伏せています) |
| パスワード | (伏せています) |
| ⋮ (中略) | |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | デフォルトゲートウェイ | PPPoE網から取得した 128.128.128.128 が表示されている。この状態では、PPPoE網がデフォルトルートになる |
今回の構成では、デフォルトルートはインターネット向けにする必要があります。PPPoE網からデフォルトルートを学習しないよう、サーバからデフォルトゲートウェイを取得 を無効にします。
OKをクリックすると、IPアドレスが自動的に再取得されます。そのあと、デフォルトゲートウェイを学習していないことを確認できます。
| アドレッシングモード | ○ マニュアル○ DHCP◉ PPPoE |
| ステータス | 接続済み |
| 取得したIP/ネットマスク | 128.1.1.1 255.255.255.255 |
| 取得したDNS | |
| ユーザ名 | (伏せています) |
| パスワード | (伏せています) |
| Unnumbered IP接続 | 0.0.0.0 |
| 初期ディスクタイムアウト | 1 |
| 初期PADTタイムアウト | 1 |
| 1サーバからデフォルトゲートウェイを取得 | オフ |
| 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宛のルートを追加します。
| 1宛先 | ◉ サブネット○ インターネットサービス 128.1.1.2/255.255.255.255 |
| 2インターフェース | wan1 |
| 3ゲートウェイアドレス | 128.128.128.128 |
| アドミニストレーティブ・ディスタンス | 10 |
| ステータス | ◉ 有効化済み○ 無効化済み |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 宛先 | 128.1.1.2/255.255.255.255(拠点のFortiGateのPPPoEアドレス) |
| 2 | インターフェース | wan1 |
| 3 | ゲートウェイアドレス | 128.128.128.128(PPPoE網側のアドレス) |
モニタ ›› ルーティングモニタ を確認すると、追加したルートが反映されています。
| タイプ | ネットワーク | ゲートウェイIP | インターフェース |
|---|---|---|---|
| コネクテッド | 128.1.1.1/32 | 0.0.0.0 | ppp1 |
| スタティック | 128.1.1.2/32 | 128.128.128.128 | 1wan1 |
| コネクテッド | 128.128.128.128/32 | 0.0.0.0 | ppp1 |
| 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に変わっています。
| タイプ | ネットワーク | ゲートウェイIP | インターフェース |
|---|---|---|---|
| コネクテッド | 128.1.1.1/32 | 0.0.0.0 | ppp1 |
| スタティック | 128.1.1.2/32 | 128.128.128.128 | 1ppp1 |
| コネクテッド | 128.128.128.128/32 | 0.0.0.0 | 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)を設定します。
| 1宛先 | ◉ サブネット○ インターネットサービス 0.0.0.0/0.0.0.0 |
| 2インターフェース | internal |
| 3ゲートウェイアドレス | 192.168.1.254 |
| アドミニストレーティブ・ディスタンス | 10 |
| ステータス | ◉ 有効化済み○ 無効化済み |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 宛先 | 0.0.0.0/0.0.0.0(デフォルトルート) |
| 2 | インターフェース | internal |
| 3 | ゲートウェイアドレス | 192.168.1.254(インターネット向けのルータ) |
モニタ ›› ルーティングモニタ で、デフォルトルートが追加されていることを確認できます。
| タイプ | ネットワーク | ゲートウェイIP | インターフェース |
|---|---|---|---|
| スタティック | 0.0.0.0/0 | 192.168.1.254 | 1internal |
| コネクテッド | 128.1.1.1/32 | 0.0.0.0 | ppp1 |
| スタティック | 128.1.1.2/32 | 128.128.128.128 | ppp1 |
| コネクテッド | 128.128.128.128/32 | 0.0.0.0 | ppp1 |
| No. | 表示 | 意味 |
|---|---|---|
| 1 | スタティックの 0.0.0.0/0 | ゲートウェイ192.168.1.254、出力先internalのデフォルトルート |
拠点側のルーティング設定(IPsec設定前)
PPPoE網側のルーティング設定
拠点側もPPPoE網からデフォルトルートを学習しています。ただし、IPsecの設定後は、デフォルトルートの対象となる通信がIPsecトンネルを通ります。そのため、センタ側と同様に、サーバからデフォルトゲートウェイを取得 を無効にします。
OKをクリックすると、IPアドレスを再取得し、デフォルトゲートウェイを学習していないことを確認できます。
| アドレッシングモード | ○ マニュアル○ DHCP◉ PPPoE |
| ステータス | 接続済み |
| 取得したIP/ネットマスク | 128.1.1.2 255.255.255.255 |
| 取得したDNS | |
| ユーザ名 | (伏せています) |
| パスワード | (伏せています) |
| Unnumbered IP接続 | 0.0.0.0 |
| 初期ディスクタイムアウト | 1 |
| 初期PADTタイムアウト | 1 |
| 1サーバからデフォルトゲートウェイを取得 | オフ |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | サーバからデフォルトゲートウェイを取得 | オフにする。設定後は「デフォルトゲートウェイ」の行が表示されなくなる |
センタ側と同じく、拠点からセンタのFortiGateに疎通できなくなります。128.1.1.1/32向けのスタティックルートを、PPPoE網向けに設定します。
| 1宛先 | ◉ サブネット○ インターネットサービス 128.1.1.1/32 |
| 2インターフェース | wan1 |
| 3ゲートウェイアドレス | 128.128.128.128 |
| アドミニストレーティブ・ディスタンス | 10 |
| ステータス | ◉ 有効化済み○ 無効化済み |
| 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であることを確認できます。
| タイプ | ネットワーク | ゲートウェイIP | インターフェース |
|---|---|---|---|
| スタティック | 128.1.1.1/32 | 128.128.128.128 | 1ppp1 |
| コネクテッド | 128.1.1.2/32 | 0.0.0.0 | ppp1 |
| コネクテッド | 128.128.128.128/32 | 0.0.0.0 | 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)を設定し、カスタムを選択して、次へをクリックします。
| 1名前 | To_Branch |
| 2テンプレートタイプ | ○ サイト間○ リモートアクセス◉ カスタム |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 名前 | To_Branch |
| 2 | テンプレートタイプ | カスタム |
| 3 | 次へ | クリックして新規VPNトンネルの画面に進む |
次の画面が表示されます。変更する箇所は次の3つです。
- IPアドレス:対向のFortiGateのIPアドレスを設定します(拠点側の128.1.1.2)。
- インタフェース:出力インタフェースを設定します(wan1)。
- 事前共有鍵:任意の文字列です。対向のFortiGateと合わせる必要があります。
| 名前 | To_Branch |
| コメント |
| IPバージョン | ◉ IPv4○ IPv6 |
| リモートゲートウェイ | 固定IPアドレス |
| 1IPアドレス | 128.1.1.2 |
| 2インターフェース | wan1 |
| ローカルゲートウェイ | オフ |
| モード設定 | ☐ |
| NATトラバーサル | ◉ 有効○ 無効○ 強制 |
| キープアライブ間隔 | 10 |
| デッドピア検知 | ○ 無効○ オンアイドル◉ オンデマンド |
| 方式 | 事前共有鍵 |
| 3事前共有鍵 | (伏せています) |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | IPアドレス | 128.1.1.2(対向の拠点側FortiGate) |
| 2 | インターフェース | wan1 |
| 3 | 事前共有鍵 | 拠点側と同じ文字列(伏せています) |
次に下へスクロールし、フェーズ2セレクタの高度な設定を展開します。下のほうにあるオートネゴシエーションを有効にします。自動鍵キープアライブも有効になります。
| ⋮ (中略) | |
| Diffie-Hellmanグループ | ☐ 31 ☐ 30 ☐ 29 ☐ 28 ☐ 27 ☐ 21 ☐ 20 ☐ 19 ☐ 18 ☐ 17 ☐ 16 ☐ 15 ☑ 14 ☑ 5 ☐ 2 ☐ 1 |
| ローカルポート | すべて ☑ |
| リモートポート | すべて ☑ |
| プロトコル | すべて ☑ |
| 1オートネゴシエーション | ☑ |
| 自動鍵キープアライブ | ☑ |
| 鍵の有効時間 | 秒 |
| 秒 | 43200 |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | オートネゴシエーション | チェックを入れる。自動鍵キープアライブも自動でオンになる |
フェーズ2は、初期状態では、相手から通信が来て初めてネゴシエーションが始まります。オートネゴシエーションを有効にすると、通信がなくてもFortiGateからネゴシエーションを開始し、トンネルが切れたときも再確立を試みます。自動鍵キープアライブは、通信がなくてもフェーズ2のSAを期限前に更新して、トンネルを維持する設定です。この記事では、センタと拠点の両側で有効にしています。
拠点側
対向のIPアドレス以外は、センタ側と同様に設定します。名前は To_Center にします。フェーズ2のオートネゴシエーションも、センタ側と同じく有効にします。
| 名前 | To_Center |
| コメント |
| IPバージョン | ◉ IPv4○ IPv6 |
| リモートゲートウェイ | 固定IPアドレス |
| 1IPアドレス | 128.1.1.1 |
| 2インターフェース | wan1 |
| ローカルゲートウェイ | オフ |
| モード設定 | ☐ |
| NATトラバーサル | ◉ 有効○ 無効○ 強制 |
| キープアライブ間隔 | 10 |
| デッドピア検知 | ○ 無効○ オンアイドル◉ オンデマンド |
| 方式 | 事前共有鍵 |
| 3事前共有鍵 | (伏せています) |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | IPアドレス | 128.1.1.1(対向のセンタ側FortiGate) |
| 2 | インターフェース | wan1 |
| 3 | 事前共有鍵 | センタ側と同じ文字列(伏せています) |
トンネルインタフェースの確認
ネットワーク ›› インタフェース を確認すると、センタ側、拠点側それぞれのwan1にトンネルインタフェースが追加されています。
| wan1 | 128.1.1.1 255.255.255.255 | 物理インターフェース | |
| 1To_Branch | 0.0.0.0 0.0.0.0 | トンネルインターフェース |
| wan1 | 128.1.1.2 255.255.255.255 | 物理インターフェース | |
| 1To_Center | 0.0.0.0 0.0.0.0 | トンネルインターフェース |
| No. | 表示 | 意味 |
|---|---|---|
| 1 | トンネルインターフェース | センタ側はTo_Branch、拠点側はTo_Centerが、wan1の下に追加される。緑の丸はwan1が稼働中であることを表す |
この時点では、トンネルインタフェースはダウン状態です。
| インターフェース | To_Branch |
| リンク | ダウン |
| タイプ | トンネルインターフェース |
| FortiTelemetry | ✖ |
| No. | 表示 | 意味 |
|---|---|---|
| 1 | リンク | 赤い表示(ダウン)。トンネルはまだ確立していない |
ルーティング設定
センタ側
センタ側は、拠点の192.168.2.0/24をトンネルインタフェース経由で接続するように、ルートを追加します(インタフェースはTo_Branch)。
| 1宛先 | ◉ サブネット○ インターネットサービス 192.168.2.0/24 |
| 2インターフェース | To_Branch |
| アドミニストレーティブ・ディスタンス | 10 |
| ステータス | ◉ 有効化済み○ 無効化済み |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 宛先 | 192.168.2.0/24(拠点のLAN) |
| 2 | インターフェース | To_Branch(トンネルインタフェース) |
拠点側
拠点側は、センタ側向けのすべての通信がトンネルインタフェース経由になるように、デフォルトルートを追加します(インタフェースはTo_Center)。
| 1宛先 | ◉ サブネット○ インターネットサービス 0.0.0.0/0.0.0.0 |
| 2インターフェース | To_Center |
| アドミニストレーティブ・ディスタンス | 10 |
| ステータス | ◉ 有効化済み○ 無効化済み |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 宛先 | 0.0.0.0/0.0.0.0(デフォルトルート) |
| 2 | インターフェース | To_Center(トンネルインタフェース) |
ポリシー設定
トンネルインタフェースを通るセキュリティポリシーを設定します。拠点からセンタ側への通信をすべて許可します(センタ発で拠点への通信は、今回は許可しません)。
センタ側のポリシー
送信元インタフェースをTo_Branch、宛先インタフェースをinternalとして、すべての通信を許可するポリシーを設定します。NATは無効にします。
| 名前 | From_Branch |
| 1入力インターフェース | To_Branch |
| 2出力インターフェース | internal |
| 送信元 | all |
| 宛先 | all |
| スケジュール | always |
| サービス | ALL |
| 3アクション | ◉ ACCEPT○ DENY |
| 4NAT | オフ |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 入力インターフェース | To_Branch |
| 2 | 出力インターフェース | internal |
| 3 | アクション | ACCEPT(送信元・宛先はall、サービスはALL) |
| 4 | NAT | オフ |
拠点側のポリシー
送信元インタフェースをinternal、宛先インタフェースをTo_Centerとして、すべての通信を許可するポリシーを設定します。NATは無効にします。
| 名前 | To_Center |
| 1入力インターフェース | internal |
| 2出力インターフェース | To_Center |
| 送信元 | all |
| 宛先 | all |
| スケジュール | always |
| サービス | ALL |
| 3アクション | ◉ ACCEPT○ DENY |
| 4NAT | オフ |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 入力インターフェース | internal |
| 2 | 出力インターフェース | To_Center |
| 3 | アクション | ACCEPT(送信元・宛先はall、サービスはALL) |
| 4 | NAT | オフ |
ポリシーを設定したあと、トンネルインタフェースがアップしました。
動作確認
モニタ ›› IPsecモニタ を確認すると、IPsecトンネルがアップしています。
| 名前 | タイプ | リモートゲートウェイ | Peer ID |
|---|---|---|---|
| 1 To_Branch | カスタム | 128.1.1.2 |
| 名前 | タイプ | リモートゲートウェイ | Peer ID |
|---|---|---|---|
| 1 To_Center | カスタム | 128.1.1.1 |
| 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
| 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のMTU | 1454 | イーサネットの1500より小さい |
| IPsecのオーバーヘッド | 64 | この記事で使う目安の値 |
| PPPoE+IPsecのMTU | 1390 | 1454 − 64 |
| IPヘッダ+TCPヘッダ | 40 | 20 + 20 |
| MSS | 1350 | 1390 − 40 |
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 | この記事では設定していない |
コメント