1. 程式人生 > 其它 >FortiGate FGCP HA 配置文件

FortiGate FGCP HA 配置文件

請訪問原文連結:https://sysin.org/blog/fortios-fgcp-ha-config/,檢視最新版。原創作品,轉載請保留出處。

作者:gc(at)sysin.org,主頁:www.sysin.org

防火牆 HA 配置系列文章:

概述

FortiOS 提供 6 種冗餘解決方案,工業標準的 VRRP 和 5 種專有的解決方案:

  • FortiGate Cluster Protocol (FGCP) high availability,
  • FortiGate Session Life Support Protocol (FGSP) high availability,
  • Session-Aware Load Balancing Clustering (SLBC),
  • Enhanced Load Balanced Clustering (ELBC),
  • Content Clustering.

FGCP HA 是 ForitOS 最常用的 HA 配置方式,也是本文描述的內容。

FGCP HA 參考拓撲:

FGCP HA

FortiGate HA 叢集由為 HA 操作配置的兩到四個 FortiGate 組成。叢集中的每個 FortiGate 稱為叢集裝置。所有叢集裝置必須是相同的 ForitGate 型號,安裝相同的 FortiOS 韌體版本。所有叢集裝置還必須具有相同的硬體配置 (例如,相同數量的硬碟等等),並以相同的操作模式 (NAT 模式或透明模式) 執行。

您可以建立最多由四個 FortiGate 組成的 FGCP 叢集。

此外,叢集裝置必須能夠通過心跳介面彼此通訊。建立叢集並繼續執行叢集需要這種心跳通訊。沒有它,叢集就像獨立 FortiGate 的集合。

在啟動時,使用相同的 HA 配置配置叢集裝置並連線它們的心跳介面之後,叢集裝置使用 FortiGate 叢集協議 (FGCP) 査找為 HA 操作配置的其他 FortiGate,並協商建立叢集。在叢集操作期間,FGCP 通過心跳介面連結在叢集裝置之間共享通訊和同步資訊。這種通訊和同步稱為 FGCP 心跳或者 HA 心跳。通常,簡稱為心跳。

叢集使用 FGCP 選擇主裝置,並提供裝置、連結和會話故障轉移。FGCP 還管理兩種 HA 模式:主動 - 被動 (故障轉移 HA) 和主動 - 主動 (負載均衡 HA)。

不同步的配置

FGCP 使用增量同步和週期性同步的組合,以確保所有叢集裝置的配置與主裝置的配置同步。這意味著在大多數情況下,你只需進行—次配置更改,就可以將其同步到所有叢集裝置。這包括包含額外資訊的特殊配置設定 (例如,第三方證書、替換訊息文字檔案和圖形等)。

某些配置設定不同步,以支援 FortiGate 某些特定操作。以下設定在叢集裝置之間不同步:

  • FortiGate 主機名。允許你識別叢集裝置。
  • GUI 儀表板配置。故障轉移只有,你可能必須重新配置儀表板小部件。
  • HA 覆蓋。
  • HA 裝置優先順序。
  • 虛擬叢集 1 和虛擬叢集 2 裝置優先順序。
  • ping 伺服器或死閘道器檢測配置的 HA 優先順序 (ha-priority) 設定。
  • 成為 HA 保留管理介面的 FortiGate 介面的系統介面設定。
  • 保留管理介面的預設路由,使用 config system ha 命令的 ha-mgmt-interface-gateway 選項設定。
  • 動態加權負載均衡閾值和高低水印。
  • OSPF summary-addresses 設定。

此外,許可證是不同步的,因為每個 FortiGate 必須單獨許可。這包括 FortiCloud 啟用和 FortiClient 許可,如果你購買了超過 10 個虛擬域 (VDOM),則輸入一個許可金鑰。

HA 工作模式

Active-Passive(A-P)模式:

叢集中的所有防火牆必須工作在同一個模式下。可以對執行中的 HA 叢集進行模式的修改,但會造成一定的延時,因為叢集需要重新協商並選取新的主裝置。A-P 模式提供了備機保護。HA 叢集中由一臺主裝置,和一臺以上到從裝置組成。

從裝置與主裝置一樣連線到網路,但不處理任何的資料包,從裝置處於備用狀態。從裝置會自動同步主裝置的配置,並時刻監視主裝置到執行狀態。整個失效保護的過程是透明的,一旦主裝置失效,從裝置會自動接替其工作。如果裝置的介面或鏈路出現故障,叢集內會更新鏈路狀態資料庫,重新選舉新的主裝置。

Active-Active(A-A)模式:

A-A 模式下會對佔用資源較多的程序進行在各個裝置中進行分擔。需要處理協議識別、病毒掃描、ips、網頁過濾、郵件過濾、資料防洩露、應用程式控制、voip 內容掃描、協議保護(HTTP,HTTPS,FTP,IMAP,IMAPS,POP3,SMTP,SMTPS,IM,NNTP,SIP,SIMPLE),SCCP 協議控制等。通過對如上內容的負載均擔,A-A 模式可以提供更高的 UTM 效能。安全策略中的終端控制,流控,使用者認證功能,在 A-A 模式下沒有什麼提高效果。其他非 UTM 功能不會進行負載分擔,將由主裝置進行處理。除了 UTM 功 能外,還可以實現對 TCP 會話進行分擔。

AA 模式下,叢集中的主裝置負責對所有通訊會話的處理,然後將部分負載分發到所有從裝置上。從裝置可以說是活動的,因為要處理 UTM 的相關會話。但從裝置只處理由主裝置分配的資料,不會響應 arp 等。其他方面 AA 模式和 AP 模式是相同的。

單機配置同步、單機會話同步模式

從 5.0 版本開始,全新 NGFW 下一代防火牆支援單機配置同步、會話同步功能,在一些應用場景中它可以代替雙機 HA 功能,實現控制非同步流量的目的。

HA 配置要求

進行 HA 配置,硬體和軟體版本需滿足如下要求:

  1. 防火牆硬體型號相同;

  2. 同型號硬體要求硬體版本,記憶體容量,CPU 型號,硬碟容量等相同;

  3. 相同的軟體版本;

  4. 裝置的所有介面不能工作在 DHCP,PPPOE 模式下。沒有使用的介面 IP 地址模式也需要選擇為 "自定義";

假如 HA 的兩臺 FGT 存在上述不一致的情況,那麼做為備機的 FGT 將會被 Shutdown 主動關閉。

串列埠下將會列印 shutdown 並提示原因:

slave and master have different hdisk status. Cannot work with HA master. Shutdown the box!

The system is going down NOW

The system is halted.

HA 配置步驟

步驟 1、配置裝置 1 的 HA

步驟 2、配置裝置 2 的 HA

步驟 3、組建 HA

步驟 4、檢視 HA 叢集

HA 配置建議

  1. 進行 HA 環境下更換裝置前,進行配置備份,防止操作失誤而造成的配置丟失。

  2. 建議配置兩條以上的心跳線纜,防止單心跳故障造成 HA 機群崩潰,使用獨立的心跳介面,儘量避免與業務口混用。

  3. 優先使用光纖介面。

  4. 開啟會話同步:set session-pickup enable(預設關閉) 或者在 WEB 上啟用 "會話交接"

  5. 謹慎使用 override 功能。開啟 override 後設備選舉過程中 HA 優先順序引數高於裝置執行時間引數,可能造成期望成為備機的裝置被選舉為主裝置,造成反向同步配置資訊。

  6. 更改預設的 HA 組的 ID,避免同一個廣播域記憶體在多個 HA 機群,而造成介面的虛擬 MAC 衝突

  7. 選擇正確的監控埠和心跳埠,在開啟 vdom 虛擬 cluster 時候,每個 cluster 需要單獨配置。

  8. 如果開啟 ping server 功能,則需要再 HA 配置中新增相應的配置命令。

  9. 建議將與防火牆相連的交換機介面配置為 stp portfast 模式,發生介面 Up/Down 切換時,交換機的介面可立刻進入轉發狀態,而不需要 stp 狀態進行偵聽、學習、轉發等延遲步驟後接口才轉發資料。

FGCP HA 配置例項

1. 配置任務概述:兩臺裝置配置主備模式

網口:

  • port1 用作內網口
  • port2 用作外網口
  • port3 和 port4 用作 heartbeat

連線:

  • port1、port2 以及 MGMT 口正常連線網線到交換機
  • port3 和 port4 暫不連線網線

1) 主裝置:已經在網路配置執行的機器,或者是新機器可以配置一下管理 IP 即可

The FortiGate already on the network will be configured to become the primary unit by:

  • Licensing it (if required)
  • Enabling HA
  • Increasing its device priority
  • Enabling override // 全新機器不需要啟用 override(SYSIN)

2) 備機:如果不是新機器需要恢復出廠設定,建立群集後所有設定將被主裝置覆蓋

The new FortiGate will be prepared by:

  • Setting it to factory defaults to wipe any configuration changes
  • Licensing it (if required)
  • Enabling HA without changing the device priority and override
  • Connecting it to the FortiGate already on the network.

The new FortiGate becomes the backup unit and its configuration is overwritten by the primary unit.

2. 配置群集

1)主裝置

config system global
  set hostname FortiGateSYSIN01
end

config system ha
 set mode a-p
 set group-id 8
 set group-name FG-HA
 set password
 set priority 200
 set override enable  // 全新機器不需要啟用 override
 set hbdev port3 200 port4 100
end

//port3 和 port4 為兩個心跳介面(SYSIN)

清空 arp 表
arp -d
檢視 MAC 地址更新
get hardware nic (或者 diagnose hardware deviceinfo nic)

2)備機

execute factoryreset
// 非新機器時執行

config system global
 set hostname FortiGateSYSIN02
end

config system ha
 set mode a-p
 set group-id 8
 set group-name FG-HA
 set password
 set priority 100
 set hbdev port3 200 port4 100
end
//mode、group-id、group-name、password 個心跳埠設定相同,priority 優先順序低,不配置 override

3. 連線群集

將 heartbeat 埠網線直連,這裡是 port3 和 port4,這是主備裝置將發現對方並協商建立群集,主裝置將配置同步到備機上。

4. 校驗群集並禁用 orveride

登入主機執行如下命令

diagnose sys ha checksum cluster

可以看到所有群整合員的 checksum 相同,表示已經同步完成。

也可以在 web 介面的 HA Status Dashboard 檢視群集同步狀態

在主裝置上執行如下命令禁用 override,若不取消這項設定,主裝置將始終保持主機狀態無法實現故障轉移

config system ha
 set override disable
end

檢視最近的 HA 系統狀態時間

show HA Historical Events

5. 測試故障轉移

在內網長 ping 8.8.8.8

關閉主裝置

可以觀察有丟包產生,網路仍然可以正常訪問

6. 相關命令

  • 重啟和切換

    • 軟切換:diagnose sys ha reset-uptime
    • 重啟防火牆:exec reboot (只重啟主防火牆,將導致主備切換)
  • 檢視裝置系統狀態

    • 檢視系統基本資訊:get sys status
    • 檢視系統狀態資訊:get sys performance status
  • 檢視介面狀態

    • 檢視單介面狀態:diagnose hardware deviceinfo nic 介面名
    • 檢視聚合介面狀態:diagnose netlink aggregate name 聚合介面名
    • 關閉介面線速轉發:diagnose npu np2 fastpath-sniffer enable Port-Number

    注:該配置只在工作機有效(diagnose 命令),當裝置切換時,原備機沒有這個配置

  • 檢視 HA 狀態

    • 登入備牆,需要先用 admin 登入到主防火牆後執行:exec ha manage 0 或 1

    • 檢視主備機配置是否同步:diag sys ha showcsum

      檢視主備機輸出是否一致,如果一致則表明配置已同步。

    • 檢視 HA 狀態:get sys ha status

  • 檢視會話

    檢視會話:diagnose sys session stat 或 diagnose sys session full-stat

  • 檢視系統 ARP 表項

    • 檢視 ARP 表:get sys arp
    • 檢視豐富 ARP 資訊:diagnose ip arp list
  • 檢視當前系統程序

    • 檢視系統程序:diagnose sys top 5 99

    • 殺程序:diagnose sys kill 11 程序 ID 或 dia sys kill 9 程序 ID

      注意:kill 11 有日誌,kill 9 沒有日誌。

HA-Cluster 不中斷升級過程

  1. 在主機 Web 介面上點選升級按鈕。

  2. 主機把 OS 發給備機,備機準備並開始升級,然後自動重啟,此過程需要 5 分鐘(或更長時間),請耐心等待。

  3. 備機升級完成,並切換成主機。

  4. 主機觀察到備機升級成功並切換為新的主機後,開始準備升級,此過程需要 5 分鐘(或更長時間),請耐心等待。

  5. 一旦準備完成,主機(此時為備)自動重啟載入升級後 OS ,重啟約 2 分鐘。

  6. 主機(此時為備)重啟後,形成 HA 。主機從原來的備同步配置(外部配置和內部配置),約 1~3 分鐘。

此時,HA 重新建立,但是主備關係發生了切換,需要在此時的主(最開始的備) 手工執行切換 diagnose sys ha reset uptime 切換原來的主備關係。

HA 配置命令集參考

HA 配置命令 config system ha,如下是常用的配置命令。

1.set group-id 0

配置 HA 機群的組 ID,一個機群內的成員必須有相同的組 ID. 該 ID 會成為生成防火牆介面的的虛擬 MAC 的一個組成因素,因此當同一個廣播域有2組以上的 HA 機群的時候需要配置不同的組 ID,防止 MAC 地址衝突.

2.set group-name "FGT-HA"

一個機群內的成員必須有相同的組名字

3.set mode  standalone/a-a/a-p

HA 工作模式,常用為 a-p 模式。AA 模式下在 HA 狀態中檢視到 HA 的角色,有主裝置及從裝置,通常會被認為工作在主被模式下,實際上主主下裝置雖然都在工作,仍會有一臺作為叢集的主裝置用來控制和分配流量和會話給叢集中的其他裝置。AA 模式預設情況下僅負載均衡 UTM 的流量,所以在下不使用 UTM 功能時建議使用 AP 模式。

4.set password

一個機群內的成員必須有相同的密碼

5.set hbdev "port1" 50 "port2" 50

配置心跳介面。其中 50 為優先順序,優先順序高的被優先使用。

6.unset session-sync-dev

可以配置專門的心跳介面用於會話資訊同步,預設和控制資訊為同一心跳介面。

7.set route-ttl 10

路由轉發表的存活時間。HA 裝置之間只同步轉發表,不同步路由表。當一個備機被選舉成主機後,其原有轉發表的存活時間,單位秒。隨後通過靜態或動態路由協議生成轉發表,繼續工作。

8.set route-wait 0

主裝置收到新的路由條目後,會等待 x 秒後,再同步給從裝置。

9.set route-hold 10

主裝置進行2次路由同步之間的間隔,防止路由震盪而造成反覆更新路由。

10.set sync-config enable

配置檔案自動同步,需要開啟。

11.set encryption disable

是否允許使用 AES-128 和 SHA1 對心跳資訊進行加密和完整性驗證。

12.set authentication disable

是否使用 SHA1 演算法驗證心跳資訊的完整性。

13.set hb-interval 2

傳送心跳資料包的間隔,單位為每 100ms. 如配置 2,則每 200ms 傳送一個心跳資訊。

14.set hb-lost-threshold 6

心跳資訊連續丟失6個後則認為對方不再存活。

15.set helo-holddown 20

Hello 狀態時間。裝置加入 HA 機群前等待的時間,防止由於未能發現所有的機群成員而造成 Ha 的反覆協商。

16.set arps 5

裝置成為主裝置後,要傳送免費 arp 來宣佈自己的 MAC 地址,以便相連的交換機能夠及時更新 MAC 地址表,該引數用於配置其傳送的數量。

17.set arps-interval 8

傳送免費 arp 的間隔,單位秒。

18.set session-pickup enable/disable

關閉或者開啟會話同步,預設為 disable。一般需要開啟。

19.set session-pickup-delay{enable | disable}

僅對存活 30 秒以上的會話進行同步。開啟後會對效能有所優化,但小於 30 秒的會話在 HA 切換的時候會丟失。預設為關閉,謹慎使用。

20.set link-failed-signal disable

防火牆上發生被監控埠失效觸發 HA 切換的時候,是否將除心跳口外的所有埠 shutdown 一秒鐘的時間,便於與之相連的交換機及時更新 MAC 表。// 這個命令是一個優化命令,其實是建議配置上去的。

21.set uninterruptable-upgrade enable

是否允許無中斷升級OS。系統自動分別對機群內的裝置升級,並自動切換,不會造成業務的中斷。

22.set ha-uptime-diff-margin 300

當進行 HA 選舉時,啟動時間為一個選舉的一個引數,當2臺裝置啟動時間差小於 300 時則將該部分差異忽略,視為相同。

23.set override disable

預設為 disable,HA選舉按如下順序進行比較:有效介面數量 > 執行時間 > HA 優先順序 > 裝置序列號。Enable 情況下,訊據順序改變。有效介面數量 > HA 優先順序 > 執行時間 > 裝置序列號。每次裝置加入或者離開機群,都會強制整個機群重新進行主裝置的選舉。

24.set priority 128

HA 優先順序,為便於管理,建議主裝置 200,從裝置 100.

25.set monitor port3 port4

配置需要被監控的埠,其有效數量多的裝置成為主裝置。

26.unset pingserver-monitor-interface

是否設定 pingserver 監控埠。

27.set pingserver-failover-threshold 0

pingserver 觸發的閥值,0 則意味著任何的 pingserver 失效都會觸發 HA 的切換。

28.set pingserver-flip-timeout 60

兩次 pingserver 失效切換之間的間隔。如 A 發生失效,切換到 B. 切過去之後發現 B 也是失效的,則需要等待 60 分鐘的時間允許切換回 A.

29.set ha-mgmt-status enable HA 的帶外管理配置命令

set ha-mgmt-interface port1

set ha-mgmt-interface-gateway x.x.x.x

相關產品下載

Fortinet FortiOS 7.0.0 (FortiGate VM deployment Images)