Fortigate Network Security ルーティング 非対称ルーティング

ICMP Redirectによる非対称ルーティングの矯正とFortigateのデフォルト設定

2024年10月3日



パケットの送信元に適切なルーティング経路を通知するICMP Redirectの動きについて記載します。
下記のネットワーク構成で検証します。異なるセグメント間をルータを挟んでMac端末からUbuntu端末へPing疎通を行います。
往きのパケットはYamahaルータを経由しますが、帰りのパケットは経由しないので、非対称ルーティングが発生します。
その際に、YamahaルータからICMP redirectが送信元に送られ、送信元のルーティングテーブルに最適ルートが登録されることで非対称ルーティングが矯正されるかを検証します。検証の結果、矯正はされませんでした。

構成図

Mac端末のデフォルトゲートウェイはYamahルータ、Ubuntu端末のデフォルトゲートウェイはCiscoルータに設定しています。

パケットの流れ

Mac端末からUbuntu端末へPing疎通を行う際のMACアドレスの向き(A > B)になります

  1. echo-request(Mac > Yamaha)1回目
  2. ICMP-redirect(Yamaha > Mac)
  3. echo-request(Yamaha > Cisco)
  4. echo-reply(Cisco > Mac)
  5. echo-request(Mac > Yamaha)2回目
  6. echo-request(Yamaha > Cisco)
  7. echo-reply(Cisco > Mac)

1.echo request(Mac > Yamaha)

Mac端末のデフォルトゲートウェイはYamahaルータになっています。

2.ICMP Redirect(Yamaha > Mac)

Yamahaルータは適切なネクストホップであるCiscoルータのIPを通知します。

赤枠が実際のICMP Redirectパケットです

3.echo request(Yamaha > Cisco)

Yamahaルータには192.168.8.0/24へのStatic routeを設定しています

4.echo reply(Cisco > Mac)

Ubuntu端末からMac端末にreplyが返されます。行きと帰りで異経路になり、非対称ルーティングが発生します

5.echo request(Mac > Yamaha)

適したルートがMac端末に追加されて、下図のように直接Ciscoルータへパケットを送り、非対称ルーティングが解消されると思いましたが、変わらずMacからYamahaへICMP echoが投げられていました。Mac OSはセキュリティの観点から、ICMP Redirectをデフォルトで無視して最適ルートをルーティングテーブルに登録しない可能性があり、実際に登録されていませんでした。送信元やルータを変えても同じ挙動か検証してみます

Mac端末のルーティングテーブル

% netstat -nr | grep 192
default            192.168.9.254      UGScg             en6       
192.168.9          link#24            UCS               en6      !
192.168.9.1/32     link#24            UCS               en6      !
192.168.9.254/32   link#24            UCS               en6      !
192.168.9.254      0:a0:de:c0:b9:e    UHLWIir           en6   1198

MacとUbuntuの位置を入れ替えて疎通テスト

以下のようにIPを入れ替えて、UbuntuからMacへPing疎通を行います
Ubuntu(192.168.8.1 → 192.168.9.1に変更)
Mac(192.168.9.1 → 192.168.8.1に変更)
ICMP Redirectで、最適ルートのCiscoルータのIPが、YamahaルータからUbuntu端末へ通知されていました。

その後、Ubuntu端末からBroadcastでARP解決が行われており、Ciscoルータが応答して自身のMACアドレスを通知しています。


しかし、Ubuntuのルーティングテーブルには登録されず、echo-requestは再びYamahaルータへ送信されていました。
ICMP Redirectで登録されるルートは、デフォルトゲートウェイよりもメトリックが高くない?のか、OSの仕様で無視してる可能性があります。

Fortigateの非対称ルーティング拒否設定

Fortigateのデフォルト設定では、非対称ルーティングにより、往きまたは帰りのパケットのどちらかがFortigateを通らない場合にブロックします(set asymroute disable)。ICMP Redirectでルートの矯正が行われる場合はFortigateがブロックすることはありませんが、そうならない場合はブロックされることになります。通信できない際に切り分けした結果、この機能が原因の場合があるようです。


FGT60C3G12028266 (vdom) # edit root
current vf=root:0

FGT60C3G12028266 (root) #
FGT60C3G12028266 (root) # config system settings

FGT60C3G12028266 (settings) #
FGT60C3G12028266 (settings) # show
config system settings
set opmode transparent
set manageip 192.168.9.7/255.255.255.0
end

FGT60C3G12028266 (settings) #
FGT60C3G12028266 (settings) #
FGT60C3G12028266 (settings) # set asymroute
enable     Enable asymmetric route.
disable    Disable asymmetric route.

FGT60C3G12028266 (settings) #

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

【中古】(非常に良い)CISCO C841M-4X-JSEC/K9
価格:18,330円(税込、送料別) (2024/10/6時点)

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

【中古】CISCO C841M-4X-JSEC/K9 ggw725x
価格:16,302円(税込、送料別) (2024/10/6時点)

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

【中古】YAMAHA製 ギガアクセスVPNルーター RTX1200
価格:8,000円(税込、送料無料) (2024/10/6時点)

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

【中古】Fortinet FortiGate 60D
価格:8,800円(税込、送料別) (2024/10/6時点)

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

【中古】 フォーティネット FortiGate-40C バンドル無 FG-40C-US
価格:14,090円(税込、送料無料) (2024/10/6時点)

CATEGORIES & TAGS

Fortigate, Network, Security, ルーティング, 非対称ルーティング,

Author:

カテゴリー

むるし

フリーランスのインフラ系エンジニア。
備忘録で色々書いていきます。
お問い合わせは↓
mo-gyu@murci.net
保有:LPIC303 Security、CCNA