FortiGate IT セキュリティ ネットワーク

FortiGateでLink-Monitorを設定する方法

投稿日:

どうも社内ニートです。

今回はFortiGateのLink-Monitor(リンクモニター)とはどういった機能なのか、
設定方法をご紹介していきます。

リンクモニターとは

FortiGateのリンクモニターはCiscoでいうIP-SLAになります。
リンクモニターは対象の宛先に対して、疎通監視を行い、
疎通が途切れたら、経路を切り替えるという機能です。

主な使用用途

リンクモニターの主な使用用途としてはスタティックルートの切り替えです。

『FortiGate-回線終端装置-インターネット』という構成が一般的かと思います。
回線終端装置の故障でFortiGateのインタフェースのリンクがダウンした場合は、
スタティックルートが切り替わりますが、
回線終端装置とインターネット網の間で障害が発生した場合は、
インタフェースのリンクがダウンせずにスタティックルートは切り替わりません。

そこで、リンクモニターでインターネット上の機器・システムに対して疎通監視を行うことで、
網障害時にインタフェースのリンクがアップしていても、
監視先に疎通が取れないため、スタティックルートを切り替えることができます。

リンクモニターの設定方法

リンクモニターの設定を行うことができるのはCLIのみとなります。
GUIでは設定することができません。

リンクモニターの設定

リンクモニターの設定で必要となる基本的な設定は下記の通りです。

Config 説明 デフォルト値
srcintf 送信元インタフェース
server 監視先のIPアドレスを指定、複数指定可能
protocol ICMP・TCP echo・UDP echo・HTTP・TWAMP
interval 送信間隔(msec) 500msec(0.5s)
failtime 失敗回数、何回連続で失敗したら断とみなすか 5回
recoverytime 復旧回数、何回連続で成功したら復旧とみなすか 5回
注意事項
FortiOS6.0系まであった、
『timeout:何秒以内に返答がない場合は失敗とみなす』という設定項目が、
FortiOS6.2系では設定項目がなくなっていました。
デフォルト値は1sであったため、1sだと思われます。
確認が取れ次第、情報をアップデートします。

srcintf

送信元インタフェースを指定します。

ここで指定したインタフェースが指定されているスタティックルートが、
リンクモニターの監視がダウンした際に削除されるようになります。

CiscoのIP-SLAとの相違点

CiscoのIP-SLAを設定する場合は、IP-SLAの設定を行った上で、
切り替えたいスタティックルートに対して、
『track XX』のように設定が必要となります。
FortiGateのリンクモニターの場合は、
リンクモニターの『srfintf』で指定したインタフェースが、
指定されているスタティックルート全てが、
リンクモニターの監視がダウンした際に削除される対象となります。
削除したくないスタティックルートがある場合は、
スタティックルートの設定で、
set link-monitor-exempt enable』を設定することで、
リンクモニターの監視がダウンした状態でもルーティングテーブルから削除されなくなります。

Ciscoは切り替えるスタティックルートを選ぶ、
FortiGateは切り替えないスタティックルートを選ぶ、
というところに設定の考え方の違いがあります。

server

監視するIPアドレスを指定します。
検証であればGoogleDNS(8.8.8.8)を指定する場合が多いかと思います。
商用の場合、GoogleDNSはあくまでパブリックサービスなので、
自社にてPingの宛先が用意できる場合はそちらを設定するべきだと思います。

監視するIPアドレスの複数指定

監視するIPアドレスを複数指定することも可能です。
使用用途としては、IPアドレスが一つだと監視先の機器やシステムに障害があったのか、
網の障害なのか判断することができないためです。

監視先のIPアドレスを複数指定することで、
1つのIPアドレスに対して疎通が取れないのであれば、機器やシステムに障害と判断し、
全てのIPアドレスに対して疎通が取れないのであれば、網の障害と判断することができます。
設定方法は『”(ダブルクォーテーション)』で囲ったものを並べるだけです。

複数指定した場合の動作として、
2つ設定したのであれば、2つの宛先に対して監視を行います。
片方の監視ができなくなっても、もう片方の監視ができる場合は成功であると判断されます。
両方の監視が途絶えることで、障害と判断します。

FQDNで指定する

IPアドレスではなく『google.com』のようなFQDNを指定することも可能です。
FQDNを指定する場合は、FortiGate自身で名前解決できることが必須となります。
設定方法は『”(ダブルクォーテーション)』でFQDNを囲ってあげるだけです。

protocol

監視するプロトコルを選択できます。
ICMP、TCP echo、UDP echo、HTTP、TWANPから選択することができますが、
一番使用する機会が多いのはICMPだと思います。

送信間隔・失敗回数・復旧回数

特に重要となる設定は送信間隔、失敗回数、復旧回数ですが、
これらに推奨値はありません。
まずはデフォルト値や厳しめの値で設定を行い、
頻繁にリンクモニターが作動するようであれば、
各値を見直すというように運用しながら探っていくしかありません。

リンクモニターの設定確認

リンクモニターの設定を確認するコマンドは下記を使用します。


ただし、デフォルト値は出力されないため、
詳細に確認したい場合は下記コマンドの方を使用するようにしましょう。

リンクモニターのステータス確認

リンクモニターのステータス確認には下記コマンドを使用します。

■監視できている状態

■障害などで監視できていない状態

確認すべきポイントは主に2つです。

  1. state
  2. Fail Time/Recovery Time

state

リンクモニターの状態を確認が表示されています。
alive』は監視対象へ監視できている状態です。
die』は監視対象や回線障害により、監視できていない状態になります。

Fail Time/Recovery Time

Fail TimeはICMPなどの疎通失敗回数を表しています。
(失敗回数/障害判断回数)』となり、
障害判断回数だけ疎通が失敗すると障害と判断されます。
Recovery Timeは監視できていない状態のみに表示され、
(成功回数/復旧判断回数)』となり、
復旧回数判断だけ疎通が成功すると障害が復旧したと判断されます。

リンクモニターの動作

リンクモニターの動作として、監視が失敗すると、
リンクモニターで指定している送信元インタフェースを
指定しているスタティックルートがルーティングテーブル上から削除されます。

動作確認シナリオ

こちらの構成図をもとに見ていきましょう。

FortiGateにインターネット回線を2本冗長している構成で、
正常時はport1側のインターネット回線向けにデフォルトルートを設定しておき、
port1側のインターネット回線の障害時に、リンクモニターを使用して、
port2側のインターネット回線向けのデフォルトルートを切り替えるというものです。

FortiGateの設定としては、
リンクモニターはこのように設定しています。

ICMPの送信間隔をデフォルトの500msecから1000msecに変更しています。
スタティックルートはこのように設定しています。

port1向けのデフォルトルートは『AD値:10(デフォルト)』、
port2向けのデフォルトルートは『AD値:250』で設定しています。

正常時

まずは、リンクモニターのステータスを確認します。


state:alive』となっていますので、監視が成功している状態であることがわかります。
次にルーティングテーブルを確認します。


port1向けのデフォルトルートが優先になっていることが確認できます。
get router info routing-table database』を使用することで、
フローティングスタティックのような、非優先の経路を表示させることができます。

障害時

では、障害を発生させてみます。
左側のルータとインターネットに接続部分に障害を発生させます。

障害時のリンクモニターのステータスを確認します。


state:die』となり、port1経由で監視が失敗している状態であることがわかります。
次にルーティングテーブルを確認します。


デフォルトルートがport2向けに切り替わっていることが確認できます。

まとめ

今回はFortiGateのリンクモニターの機能をご紹介しました。
リンクモニターはGUIでは設定できず、CLIでのみ設定可能となっています。
回線冗長の際には必須の機能となってきますので、
是非CLIで設定できるようになりましょう。

リンクモニター以外の機能はこちらに記載しています。

-FortiGate, IT, セキュリティ, ネットワーク

Copyright© 社内ニート@ネットワークブログ , 2020 All Rights Reserved Powered by STINGER.