インターネットが繋がらないトラブルや日常のIT機器に関するいろんな出来事を記事にしています。

Fortigateのポリシールートの設定。順番変えたけど反映されませんでした。

 

本日のお問い合わせはこちらです。

おおおトラブルです!

WAN回線が2つ接続されているお客様でFortigateが導入されているのですが片方のWAN回線(WAN2)で外部とトンネルを張っています。

LAN内部からトンネルの通信がどうしてもうまくいかないんです。

経路をtracerouteで検索するとトンネルに入らず普通にWAN2を通ってしまいます。

トンネルへのスタティックルートやポリシールートもちゃんと設定したのですが。

なぜなんでしょうか?

とのことでした。

まあこのトラブル、ぶっちゃけ僕が経験しました。

以下に対応録を記載いたします。

Fortigateのポリシールートの設定。順番変えたけど反映されませんでした。

ポリシールートの設定

基本的な説明は他力本願が基本の僕です。

参考:イノベーション エンジニアブログ
Fortigateにプロバイダを追加した時のメモ

Fortigateのデフォルト設定ではポリシールートを設定することができません。

高度なルーティング機能をオンにしないとポリシールートは設定できません。

高度なルーティング機能は

メモ

システム > 表示設定

 

でいろんな機能のON,OFFのボタンがあるのですがそのうちのひとつとして表示されています。

画面キャプチャはりたいんですけどね。

お客様情報なのでセキュリティが高らかに叫ばれているこのご時世、やめておきます。

上記ブログではルータメニューからポリシールートを設定するのですが最新のFortigateだとメニューが違いますね。

メモ

ネットワーク > ポリシールート

 

というメニューでポリシールートを設定できます。

ポリシールートが効かない

それでですね。

なんでポリシールートが効かないんだろうといろいろやってたんですよ。

GUIの画面で順番を変えたりとかいろいろして。

あ、そうそう。

ポリシールートですが他ネットワーク機器と同様にFortigateでもスタティックルートより先に適用されます。

そうじゃないとポリシールートの意味がないんですね。

メモ

例えばデフォルトルートがWAN1に浮いているとして。

 

ポリシールートは下記のように設定。

メモ

送信元 LAN 192.168.1.0/24
宛先  WAN2 10.0.0.0/8

この条件でルーティングのほうが先に適用されたらLANから10.0.0.0/8への通信はデフォルトルートが適用されてWAN1を通過しようとします。

なのでルーティングよりもポリシールートが先に適用されるというのが通常のネットワーク機器の仕様です。

で話を戻しますがポリシールート。

何度みなおしても正しく設定しているはずなのにどうしてもLAN通信がトンネルを通ってくれない。

あ、ちなみにポリシールートも通常のポリシーと同じく上から順番に適用されます。

なので意図したポリシールートより上に先に適用されてしまうポリシールートがあると思うように動かないことがあります。

例えば先ほどの例で言えば

メモ

送信元 LAN 192.168.1.0/24
宛先  WAN2 10.0.0.0/8

このルールより上の位置に

メモ

送信元 LAN 192.168.1.0/24
宛先  WAN1 0.0.0.0/0

とか記述しているとLANの192.168.1.0/24からの通信が問答無用でWAN1に流れたりします。(コネクテッドルートは別)

でもね。今回はそんなこともなく適切に設定されているようにみえるんですよ。何度見直しても。

なんでかなあ。

いろいろ調べました

いろいろ調べると非対称ルーティングを許可するというのがありました。

参考:体育会系NetworkEngineerの備忘録
【FortiGate】非対称ルーティングの設定

セキュリティレベルが下がるので通常運用は奨励されていませんがまあトラブルシュートのために設定してみましょう。

そうするとですね。

LANからの通信はトンネルを通るようになりました!やったぜ!

と思ったらLANからDMZのサーバへの通信ができなくなりました。

なんで?意味がわからないよ?


とりあえず切り戻し

速攻で非対称ルーティングをdisableにしました。

参考:体育会系NetworkEngineerの備忘録
【FortiGate】非対称ルーティングの設定

するとLANからDMZのサーバへの通信が復活しました。

そしてLANからトンネルの通信も繋がったまま。

お、問題解決か?でもなんで?

検証してみた

社内のFortigateを使ってみて検証してみました。

するとですね。

ポリシールートって「通信ができていない通信を許可しようとする場合、設定がうまく反映されないことがある」らしいです。

そのときは非対称ルーティングをenableにするとその時に適用されるが今度は他機能に影響を与えてしまって通信ができなくなる場合がある。

そして非対称ルーティングをdisableにするとポリシールートの設定変更が反映された状態で他機能への影響も収まる、ということがわかりました。

う~ん、バグのような気がするw

この結果はFortigateのOSバージョン 5.4でも6.0でも同じでした。

トンネルだのWAN回線が2つあるからだのというよりはポリシールートのバグのような気がします。

Fortigateのポリシールートの設定。順番変えたけど反映されませんでした。~結論~

僕の結論は、Fortigateのポリシールートにはバグがある、です。

ポリシールートの機能を使うと便利は便利ですがバグがあるなら設定して納品するのはこわいですね。

もっともFortigateのみでなくIT機器は仕様とおりに動かないことも珍しくありません。

新しい機器を導入するときは十分な検証が必要だなあ、とメーカの逃げ文句のようなことを思い知った僕なのでした。

本記事が少しでもあなたのお役に立てたならばこれほど嬉しいことはありません。

最後まで読んでいただきありがとうございました。

よろしければ別記事もご参照ください。

  • B!