Fortigate HA構成でのWANリンクロードバランス (WAN LLB)

Fortigate 60D で HA構成を組んでマルチホーミング( =  WAN Link Load Balancing ( WAN LLB )) した際の作業記録です。

使用したファームウェアは v5.4.1,build5447、
HA は Active-Passive で、構成はこんなです。

 

・v5.4.1 での WAN LLBの解説はこちら( http://help.fortinet.com/fos50hlp/54/Content/FortiOS/fortigate-whats-new-54/Top_VirtualWANLink.htm

・ビデオ解説はこちら ( https://video.fortinet.com/video/187/wan-link-load-balancing
・Youtube ( https://www.youtube.com/watch?v=HRajFKAdflU

・HA の構成については 以前の備忘録 を参照ください。

 

ISP1 / ISP2 ともに、固定のグローバルIPを払い出してもらって、WAN1 に ISP1 を、WAN2 に ISP2 を、それぞれ接続してます。
(ISP2 との接続には PPPoE を使用)

 


【WAN Link Load Balancing の有効化】

System > Feature Select から 「 WAN Link Load Barancing 」 を有効にします。

 


【WAN Link Load Balancing の設定の前に】

WAN Link Load Balance 用のインターフェースを作成する為に、
まず、WAN1 / WAN2 インターフェースをオブジェクトに含むポリシーとStatic Routing を全て削除します。

デフォルトの状態であれば Static Routing はカラなので何もする必要ない(はず)ですが、ポリシーにはデフォルトで  Internal -> WAN1 を All permit する設定が定義されているので、削除しておきます。

 


【WAN1 / WAN2 インターフェースの設定 (ISPとの接続)】

次は WAN1 / WAN2 インターフェースをそれぞれの ISP に接続します。

WAN1 の Addressing mode は Manual で、ISP1 から払いだされたIPを登録。

 

WAN2 は PPPoE です。 
払い出してもらうIPアドレスを Unnumberd IP に書いておきます。

 

WAN1 / WAN2 ともに設定完了。

 


【WAN LLB の設定】

次はWAN Link Load Balancing の設定です。

Network > WAN LLB  に進みます。

 

Interface State を 「Enable」 にし、「+Create New」 をクリックします。
1 つ目の Interface にWAN1 を登録。
Gateway には ISP1 のデフォルトゲートウェイを登録。

※ WAN1/2 がプルダウンリストに出てこない場合は、ポリシーか Static Route に WAN1/2 を含む設定が(きっと)残っているはず。 

 

もう一度 「 + Create New 」 をクリックして、2番めの Interface に WAN2 を追加します。
WAN2 は PPPoE なので、Gateway は未登録で。

 

 

ロードバランスアルゴリズムはお好みで (とはいっても回線速度だとか通信要件とか次第ですね)
今回は 「Volume」 で半々(1:1) に使うように。

※ Voume の場合 0:0 だと、次の Default Route の設定をした際に、WAN1 側のデフォルトルートがRouting Monitor に現れない( PPPoE 側の経路情報は表示されるけど)、結果 WAN1 側が使えない現象に遭遇したので、 0 は使用しないのがよさそう。

 


【Static Route の登録】

Network > Static Route に進みます。

 

「+ Create New」 します。 
Device には 「wan-load-balance」 を指定 (すると Next Hop の記入欄が出てこなくなる = 未入力でOK)して登録。

 

追加されたところ。

 

Routing Table がどうなっているか、確認してみます。
Monitor > Routing Monitor を開きます。

↑ Default GW ( 0.0.0.0/0 ) が 2 テーブルありますね! ^^/
一方は wan1 インターフェースのNext Hop (WAN LLB の設定時に登録したIP)、一方は ppp1 (=wan2) インターフェースで PPPoE が払いだしたIPです。

 


【Policy の登録】

詳細は端折りますが ^^; 
Internal から 「 wan-load-balance 」 向けの ポリシーを作成して通信できるようにしておきます。

 


【WAN Status Check】

今回は、ISP1 側の デフォルトルートを ping してreply がなければ ISP2側(wan2)に片寄るように設定。
(ロードバランスが 1:1 なのに片方だけ ping ?  意味無いじゃん、なのですが・・・)

Network > Wan Status Check に進みます。

 

「 + Create New 」 して ISP1 側のデフォルトGW のIPを登録。

 

↓ こんな感じで監視されます。

 


【稼働確認】

ちゃんと 1:1 でバランシングされてるか、確認してみます。

Fortiview > All Sessions を開くと、
(画像がとれなかったのですが) WAN1 / WAN2 の両方から通信してることが確認できます。

 

 

WAN1 インターフェースから ISP1 への ping が失敗すると、↓ こんな風に。

 

このときは、↓ このように Routing Table も縮退して、

セッションが WAN2 に片寄ります。

ISP1への ping が復旧すれば、元に戻ります。

 

今回の備忘録は以上となります。

 

 

 

 

Fortigate Firmware Update v5.4.0 to v5.4.1

Fortigate 60D の FortiOS を v5.4.0 から v5.4.1 にアップデートした際の作業記録です。

インターネットに接続してる Fortigate なので、新ファームウェアの通知とアップデートは、FortiGuard Network 経由で行っています。
(ですので、とくだん難しいことはしておらず、GUIの命じるがままの作業です)

v5.4.1 のリリースノートはこちら(http://docs.fortinet.com/uploaded/files/3075/fortios-v5.4.1-release-notes.pdf

 

ダッシュボードに v5.4.1 が出たとの通知が来ました。
(まだ本番稼働してない個体なので、気楽にアップデートすることにします)

 

画面右下の 「Upgrade」 をクリック。
※ コンフィグファイル は事前にバックアップしておきます。

 

Firmware のダウンロードとアップグレードが実行されます。

 

今回の Fortigate 60D は、 HA構成(Active -Standby)を組んでる機器なので、スタンバイ機側からファームウェアのアップデートがかかります。

スタンバイ機のアップデートが終わると、アクティブ機側がアップデートされます。
(Active側のアップデート中は、Standby機がActiveに昇格しますので、Fortigate経由の通信は途切れずに継続されます。)

↓ FW01 が Active、 FW02 が Standby です。 FW02 が v5.4.1 になったところ。

 

FW01も v5.4.1 になりました。

 

今回のアップデートの所要時間は、2台でだいたい10分程度。

アップデート後は、HA の Master/Slave がひっくり返ってるので、元にもどしておきます。

マスター側で、以下のコマンドを実行。

# diagnose sys ha reset-uptime

 

 

最後に、事前にバックアップしておいたコンフィグと、v5.4.1 のコンフィグを比較します。
(WinMerge 日本語版  http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html  を使用)

バージョンアップ前のコンフィグでは、SNMPのインターフェース設定の名前部分を明示的に指定していたのですが、バージョンアップ後は無指定(ANY)になっちゃってますね。。。 (まぁ、動作的には問題ないですが)

他にも、追加されたパラメータ(WiFi関連が多い感じ)が見受けられますが、実際の通信に関わるポリシーとかインターフェースあたりの設定は(さすがに)バージョンアップ前後で変わってないことが確認できましたので(SNMPの部分は元の設定に戻すとして)、今回の備忘録は以上とします。

 

 

 

FortiGate 60D 2台でHA構成

FortiGate 60D x 2台でHA構成を組んだ際の備忘録です。

 

【 FortiGateについて】
 アメリカ カリフォルニア州サニーベールに本社を置くネットワークセキュリティベンダーの Fortinet社 (http://www.fortinet.com/) が開発したUTM(Unified Threat Management / 統合脅威管理)製品です。
 UTMは次世代型FireWall(Next Generation Firewall)とも呼ばれ、1台の機器で、FIrewall機能や侵入検知/防御、AntiVirus、Webコンテンツフィルタリングなどのネットワーク・セキュリティ機能を包括的に実装した機器です。
 FortiGateにはエントリーモデルからハイエンドモデルまで多数の機種がありますが、今回使用した 60D はエントリーモデルの位置づけになります。

 

 

【今回使用した Fortigate 60D x 2台 】

・ファームウェアバージョン: v5.2.7,build718

↑ 60D には全部で10個の UTPポート(10M/100M/1G) があります。

 

 

【HA構成 概略図】

 

こんな風に 2台 の 60D でHA構成を組んでみます。
Internetが2回線あって設定どうしてるの、とか、内部LANがおおざっぱ、だとかはスルーしてください ^^;

今回は Active – Standby の HA で、FW01 がActive、FW02 を Standby とします。
Fortigate の HA では、ホスト名などのごく一部の設定を除き、2台がまったく同じコンフィグになります。
サービス用IPも共有されるので、機器を個別に管理するために、管理用ポート(FW01, FW02 にそれぞれ異なるIPを付与)が必要です。
今回は、物理ポート(port 6)を管理専用に、物理ポート 7 を HA ハートビート用、port 1 (internal インターフェース)をサービスポート(内部LANがインターネットに抜ける際のNextHop)にします。

管理用ポート(インターフェース)について、今回は贅沢にも物理ポートをまるっと専有しましたが、vlan インターフェースなどを割り当てることもできますので、例えばサービスポート(今回であれば port1 / internal) に相乗りさせることもできます。

 

 

§1. 設定用PCの接続

では、早速設定をしてみます。
まずはFW01からです。

設定は、GUI(ブラウザ) or CLI コンソールから行います。
今回はどちらも使用。
(試してないのですが、Windows(など)から USB ケーブルで接続して初期設定する方法や、iOS (USBケーブルで接続)から も初期設定できる、と Quick Start Guide には書いてある!)

まずは、FW01 の port 5に PC を接続します。

セットアップガイドでは port 1 に繋いで、となってますが、デフォルトでは FG60D の port 1 ~ 7 は同じ設定(同一のハードウェアスイッチに所属)になってますので、どこにつないでもいけます。

PC は DHCP か、192.168.1.99 以外の IP を割り当てます。
(FG60D の port 1 ~ 7  は 192.168.1.99 / 24 が設定されており、DHCPサーバーが有効になっています)

 

ブラウザから、 192.168.1.99 にアクセスします。(HTTPSにリダイレクトされます = ですので、安全な証明書じゃないとブラウザが言いますが、気にせずすすみましょう)
※ 下記スクリーンショットだとIP違いますが、スルーしてください ><)

工場出荷時状態でのID/パスワードは下記のようになっています。Name : admin
Password : なし

ログインすると、ダッシュボード ステータス画面が表示されます。
(System Information の部分には機器のシリアルナンバーやファームウェアバージョンなどが表示されるので、ここでは畳んでいます)

 

初期状態では、admin ユーザのパスワードが空なので、早めに設定しておきましょう。
(スクリーンショットは割愛しますが) System > Admin > Administrators からアカウントの設定・変更が行えます。

また、ホスト名もまっさきに設定しておきます。(HA構成の個体識別子になるので)

GUI で System > Dashboard > Status で設定するか、CLI であれば、

config system global
    set hostname FW01

 

 

 【ちなみに  CLI コマンドのメモ】

・no pager したい
# config system console
(console) # set output standard
(console) # end

・工場出荷時の設定に戻したい
# execute factoryreset

・設定を(全部)みたい
# show

 

 

§2. 設定画面を日本語表示に変更

(お好みで)GUI画面を日本語表示にもできます。

「System > Admin > Settings 」 画面の View Settings 欄の Language のプルダウンから Japanese を選択し、Apply します。

 

日本語表示になりました。(以降、日本語画面で作業します)

 

 

§3. DNS と NTP の設定

内部LAN向けにDNSリゾルバとNTPサーバーを提供したいので、先に設定しておきます。(HA組んだあとからでもいいんだけど、今回はこのFG経由でネットに接続しながらいろいろやってたので。。。)

まずはDNSから。
「システム > フィーチャー」 を選択、右ペインの「フィーチャー設定」画面を最下段までスクロール、「さらに表示」 のボタンがあるのでクリックします。

 

「DNSデータベース」 を 「ON」 にして、「適用」  をクリック。

 

DNSデータベースをONにすると、「システム > ネットワーク」 に 「DNSサーバー」 の項目が追加されます。

 

「インターフェース上のDNSサービス」 で 「新規追加」 をクリックし、内部LAN用のインターフェース(今回であれば 「internal」 )を追加します。

 

 【ちなみに コマンドで DNS Proxy(キャッシュ)の確認】

# diag test application dnsproxy 3
# diag test application dnsproxy 6
# diag test application dnsproxy 7

 

 

次に、外部NTPサーバーの参照と、内部LAN向けのNTPサーバーを設定します。
今回はNICT(http://jjy.nict.go.jp/tsp/PubNtp/qa.html)さんが提供するNTPサーバー(ntp.nict.jp)を利用します。

「システム > ダッシュボード」 を選択し、「システム情報」画面にあるシステム時間の「変更」をクリック。

 

タイムゾーンを GMT+9:00 に。
「NTPサーバーと同期」 にチェックを入れ、「ntp.nict.jp」 を指定します。
内部LAN向けのNTPサーバーにするため、「NTPサーバーを有効にする」 にチェックを入れ、インターフェースに 「internal」 を選択します。

 

 【ちなみに コマンドで時刻(NTP) の確認】

# execute time
# get system ntp
# diagnose sys ntp status

 

 

§4. HAの設定

まず、port 6(管理用ポートにする) と port 7 (HAのハートビート用にする)がハードウェアスイッチ(internal  インターフェース)にバインドされているので、そこから外します。

「システム > ネットワーク > インターフェース」 を開き、「internal」 インターフェースを右クリック > 「編集」 をクリックします。
(スクリーンショットが英語でIPも違いますが、スルーをば。。。)

 

「物理インターフェースメンバ」 の 「internal6」 「internal7」 の右横にある 「X」 をクリックすると、メンバーから外れます。

 

↓外したところ。 画面を最下段までスクロールし、「OK」 をクリックして反映させます。

ちなみに CLI からだと、

config system virtual-switch
    edit "internal"
        config port

delete internal6
delete internal7

 

 

次に、HAの設定です。
「システム > 設定 > HA」 を開き、

設定項目 その他
モード アクティブ・パッシブ  
デバイスのプライオリティ 200

今回は FW01 を 200 に、FW02 を 100 に設定。
0 – 255 の範囲で指定。 値が大きいほうがマスタに選出される(マスタの選出方法はマニュアルに -> http://docs.fortinet.com/fortigate/admin-guides )

クラスタ管理メンバに管理ポートを予約 internal6 internal 6 にエイリアス 「MGMT」 と設定したので、下図のように表示されてます。
(システム > ネットワーク > インターフェース)、
グループ名 & パスワード  お好みの文字列を 同じ文字列の所有者間でHAが構成されるので、FW01/02ともに(なにか)設定します
セッションピックアップ 有効  

ハートビートインターフェースに、Internal7 (プライオリティ 100)、Internal 6 (プライオリティ 50) を指定。
(管理インターフェースも HA heartbeat に使ってみることにしました)

適用をクリックします。

・・・なんか怒られた。。。
“Please disable switch-controller first”

 

switch-controller なるものを disable にしろと。。。 なんじゃろ。。。
調べたところ、knowledge にありました。
http://kb.fortinet.com/kb/documentLink.do?externalID=FD36685

version 5.2 での制限との事なので、solution 通りに設定することにします。
CLIから、

config system global
set switch-controller disable
end

これで設定できるようになりました!

 

さて、ここまでは FG60D がデフォルトで提供しているIP(192.168.1.99)に向けて通信(設定)を行っていましたが、このあたりでこのIPの使用をやめて、管理専用ポート(internal6)にIPを振って、以降はそこ経由で設定することにします。
(同時に Internal インターフェースのDHCPも無効に)

GUIからでもCLIからの設定でも良いのですが、ここではCLIから。

config system interface
    edit "internal6"
        set ip 172.31.10.250 255.255.255.0
        set allowaccess ping https ssh snmp http

(IPとかはご利用の環境に合わせて)
管理ポートにデフォルトゲートウェイを設定して、他のセグメントからもアクセスできるようにします。

config system ha
set ha-mgmt-interface-gateway 172.31.10.229

 

これで、FW01 の設定は完了です。

同様に、FW02 も設定します。
ホスト名、HA のプライオリティ値、管理IPが異なる以外は、上記の手順と同様です。

FW02の設定が終わったら、いよいよLANケーブルを接続です。
(ここまで、FW02は スタンドアロン、FW01 は WAN1/Internal1,6 がリンクアップ済み)

双方の internal 7 間を接続、FW02(のinternal1 とinternal6 )を内部LANに接続します。

すると、GUI画面(システム > 設定 > HA)ではこんなふうに。

 

FW01 がマスターに、FW02がスレーブとして HA 構成が出来上がりです!

このあとは、FW01/02どちらかの管理IPにアクセスして設定を続けても良いですし、サービスIPに接続しての設定するのもありです。
(コンフィグはHA組んだ機器間で自動で同期されますが、ホスト名やHA設定などの一部の設定は同期されませんので、これらを変更する場合は、各管理IPにアクセスが必要です)

 

 【ちなみに CLI の HAコマンド】

・状態確認
# get system ha status

・設定値の確認
# get system ha
# show system ha

・手動フェールオーバー
# diagnose sys ha reset-uptime
 ※ master 側で実行。 slave と 5分以上 uptime 差がないと無効。

 

 

今回の備忘録は以上です。

 

 

iPhoneをUSB経由でテザリングして複数PCをネットに接続

 インターネット接続用の回線が(諸々の都合で)廃止となってしまったので、代わりにiPhone でテザリングして、自分の作業用PCやその他のPCをインターネットに接続できるようにしてみたときの備忘録です。

 

【使用機器】

  • iPhone 5s (iOS 9.2、 docomo / Xiパケ・ホーダイ for iPhone)
  • Windows 7 Professional
  • HUB , その他PC

 構成はこんなです。 (PC達にWiFiがないので、Windows 7 をブリッジにして有線でつなぎます)

 なくなってしまった有線インターネット回線は、もともと Linux や Windows など諸々の検証用に使用していたので、今回も自分の作業用PC(Windows 7)のみならず、他のマシン達も(Windows 7経由で)同時にインターネットに接続できるようにしてみます。

  携帯電話事業者によって、テザリング できる / できない は変わってきますので、そこらへんについてはご利用のキャリアでのご確認を。。。
 私の場合(docomo)では、特に追加契約などは不要でテザリングできました。
 ・docomo iPhone テザリングの利用方法

 

 作業のおおまかな流れとしては、

  1.  USB接続の iPhone でテザリングできるように、 Windows 7 にデバイスドライバなどを入れる。
  2.  Windows 7 の USBポート に iPhone を繋いでインターネットに接続。
  3.  Windows 7 の有線LANにHUB(とか)を繋ぐ。
  4.  Windows 7 で 有線LAN と iPhone側の接続をブリッジする。

 こんな感じです。
 特段むずかしい事もないので、早速やってみましょう。

 

§1. デバイスドライバの導入

 Windows 用の iPhone ドライバは、iTunes のインストーラーに含まれています。
 iTunes をまるっとインストールするのが手っ取り早いのですが、iTunes には Bojour などどいった他のアプリも同梱されています。
 今回は作業用PCということもあり、極力不要なアプリは除外したいので、必要最低限なもののみインストールします。

【iPhone USB テザリング】
 ・Apple のサポートコミュニティ(英語) : https://discussions.apple.com/thread/6829407?start=0&tstart=0
・ASCII.jp の記事 : http://ascii.jp/elem/000/000/918/918548/

 

 上記サイトを参考に、iTunes インストーラーをアーカイバで展開(解凍) -> 各インストールコンポーネント(*.msi)を抽出、下記の2つを導入、でUSB経由でiPhoneテザリングするための最低限必要な機能が実装できます。

① AppleApplicationSupport.msi
② AppleMobileDeviceSupport.msi

(インストールの順番は、iTunes 削除 https://support.apple.com/ja-jp/HT204275 と逆 ~ 上記① -> ②の順番 ~ で行います)

 ちなみに、Mobile Device Support (← Windows のサービスとしてインストールされる)だけでも動くのでは、と思って試したのですが、 Application Support がないとサービスの起動ができませんでした。。。

 

 

  • iTunes のダウンロード

 Apple のサイトから iTunes のインストーラーをダウンロードして、展開(解凍)します。

 ダウンロードサイト(日本):  http://www.apple.com/jp/itunes/download 

 

 ダウンロードしたインストーラーを解凍したところ。(今回は Lhaplus http://www7a.biglobe.ne.jp/~schezo/  を使用)

 上記のなかから、

① AppleApplicationSupport.msi
② AppleMobileDeviceSupport.msi

 ①、②の順番にインストール。 (インストールのスクリーンショットは割愛しますが、インストーラーの指示どおりで特に難しくないです)

 

§ 2. iPhone を USB で接続

 まず、iPhone側 で、ホーム画面から 「設定」 を押して > 「インターネット共有」 を押して > インターネット共有設定をオンに。(スクリーンショットはないです・・・)

 続いて、Windows 7 マシンのUSBポートに iPhone を接続します。

 すると、Windowsのネットワークアダプタに ↓ このように、「Apple Mobile Device Ethernet」(画面内の下から2番目) が追加されます。

 私の環境だと、iPhoneは 「ローカルエリア接続2」にマッピングされました。

 このPC 1台だけをネット接続するのであれば、この時点で 「ローカルエリア接続2」 を 「DHCP」 に設定すれば、インターネットに疎通できるようになります。

 

【iPhone から配布されるIPアドレス】
Windowsで ipconfig して確認したところ、

IPv4 アドレス . . . . . . . . . . : 172.20.10.4(優先)
サブネット マスク . . . . . . . . : 255.255.255.240
リース取得. . . . . . . . . . . . : 2016年1月14日 10:41:08
リースの有効期限. . . . . . . . . : 2016年1月15日 10:26:44
デフォルト ゲートウェイ . . . . . : 172.20.10.1
DHCP サーバー . . . . . . . . . . : 172.20.10.1
DNS サーバー. . . . . . . . . . . : 172.20.10.1

でした。

iPhone からは、USBインターフェース(ローカルエリア接続2)に /28 (255.255.255.240)のネットワークが展開されていますので、iPhone が使う .1 を除き、第4オクテットが .2  ~  .14  を端末側で利用できますね。
端末側では DHCP を使用しなくとも、第4オクテットが .2  ~  .14 を固定で割り振るのもアリですね。

 

 

§ 3. WIndows 7 の有線LAN側にHUB(とか)を接続

 Windows 7 の有線LAN側にHUB(とか)を接続、その先にインターネットに接続したいマシン達を接続します。 

 各マシンのIPアドレスは、DHCPにするか、固定でもよいかと。
(DHCPと固定を併用する場合は、DHCPリースされてないIPを固定に割り当てないと)

 DHCPを使用する場合は、最大 13台が同時接続できる・・・かな? (検証していないのですが、.2 から .14 までがリースされるとして)

 NATを併用すれば、もっと接続台数は増やせますね。

 多くの携帯電話会社では 通信量制限があるので、台数が多いとすぐ上限を超えてしまいそうですが・・・
 また、従量課金の場合はこの方法はキケンですね・・・

 

 

§ 4. Windows 7 で 有線LAN と iPhone側の接続をブリッジする

 Windows 7 の有線LAN と iPhone テザリング接続を間をブリッジ接続します。

 コントロールパネルからネットワーク接続を開き、

・有線LAN : ローカルエリア接続(Marvell Yukon 88E8072)
・iPhone テザリング : ローカルエリア接続2(Apple Mobile Device Ethernet)

を選択、右クリックして 「ブリッジ接続」 を選択します。

 

 しばらくすると、下記のように 「ネットワーク ブリッジ」 が作成されます。

 

 「ネットワークブリッジ」 のプロパティを開くと、アダプターの欄に先ほど選択していた  「ローカルエリア接続」 と 「ローカルエリア接続2」 が選択(チェック)されているはずです。

  「ネットワークブリッジ」 のIPアドレスは DHCP で取得にしておきます。 

 

 

 これで、Windows 7 と その先につながっているマシン達が、iPhone 経由でインターネットと疎通できます。
 iPhone の USB インターフェース側に展開される IPアドレス(サブネット)は上記に記したように /28 (iPhone も含めて、ホスト部 は14台ぶん) のサブネットなので、DHCPでiPhoneからIPアドレスをもらっても、固定IPを別途割り振っても良いかと思います。
 携帯電話の通信量制限を気にしなくても良い環境であれば、Windows 7 の有線LAN側に NAT できる機器を置けば、何台でも同時接続可能にすることもできると思います。

 

 今回の備忘録は以上です。