您好,登錄后才能下訂單哦!
HA(High Available),高可用性集群,是保證業(yè)務連續(xù)性的有效解決方案,一般有兩個或兩個以上的節(jié)點,且分為活動節(jié)點及備用節(jié)點。通常把正在執(zhí)行業(yè)務的稱為活動節(jié)點,而作為活動節(jié)點的一個備份的則稱為備用節(jié)點。當活動節(jié)點出現(xiàn)問題,導致正在運行的業(yè)務(任務)不能正常運行時,備用節(jié)點此時就會偵測到,并立即接續(xù)活動節(jié)點來執(zhí)行業(yè)務。從而實現(xiàn)業(yè)務的不中斷或短暫中斷。
只有兩個節(jié)點的高可用集群又稱為雙機熱備,即使用兩臺服務器互相備份。當一臺服務器出現(xiàn)故障時,可由另一臺服務器承擔服務任務,從而在不需要人工干預的 情況下,自動保證系統(tǒng)能持續(xù)對外提供服務。雙機熱備只是高可用集群的一種,高可用集群系統(tǒng)更可以支持兩個以上的節(jié)點,提供比雙機熱備更多、更高級的功能, 更能滿足用戶不斷出現(xiàn)的需求變化。
本指南以pfsense2.33來進行高可用性的配置示例。
高可用性集群配置的三個要點:
CARP用于IP地址冗余
XMLRPC用于配置同步
pfsync用于狀態(tài)表同步
通過配置,兩個節(jié)點充當“主動/被動”集群,一個節(jié)點用作主節(jié)點,另一個輔助節(jié)點用作備份角色,如果主節(jié)點出現(xiàn)故障,輔助節(jié)點則根據(jù)需要接管。
下面分以下幾個章節(jié)展開介紹:
高可用性集群的組件
高可用性先決條件
配置高可用性集群
測試高可用性
高可用性故障排除
在高可用性集群上升級pfSense
雖然經(jīng)常錯誤地稱為“CARP群集”,但是運行pfSense軟件的兩個或多個冗余防火墻更適合稱為“高可用性集群”或“HA集群”,因為CARP只是用于實現(xiàn)高可用性的幾種技術之一,未來的CARP可以變換為不同的冗余協(xié)議。
最常見的高可用性(HA)集群配置只包含兩個節(jié)點。在集群中可以有更多的節(jié)點,但是它們并沒有更多的意義。本指南假設兩個pfsense節(jié)點正在使用,一個充當主節(jié)點,另一個作為輔助節(jié)點。
重要的是我們區(qū)分HA(IP地址冗余,配置同步和狀態(tài)表同步)的三個功能,因為這些任務發(fā)生在不同的地方。防火墻在同步接口上執(zhí)行配置同步和狀態(tài)同步,直接在防火墻單元之間進行通信。防火墻在CARP VIP的每個接口上發(fā)送CARP心跳。故障轉(zhuǎn)移指令不會發(fā)生在同步接口上,而是發(fā)生在每個支持CARP的接口上。
為了通過集群連接以在故障切換期間無縫連接,到集群的流量必須使用冗余IP地址。通用地址冗余協(xié)議(CARP)通常用于完成這個任務。
CARP類型虛擬IP地址(VIP)在集群的節(jié)點之間共享。一個節(jié)點是主站并接收IP地址的流量,其他節(jié)點維護備份狀態(tài)并監(jiān)視心跳,以查看如果前一個主站失敗,是否需要承擔主機角色。由于一次只有一個集群成員正在使用IP地址,因此CARP VIP沒有IP地址沖突。
為了使故障轉(zhuǎn)移正常工作,重要的是到達集群的入站流量將被發(fā)送到CARP VIP,并且從CARP VIP發(fā)送流量。入站流量包括路由上行流量,×××,NAT,本地客戶端網(wǎng)關和DNS請求。出站流量包括出站NAT和×××。如果流量直接尋址到節(jié)點,而不是CARP VIP,則該流量將不會被其他節(jié)點獲取。
CARP的工作類似于VRRP和HSRP,甚至在某些情況下可能會發(fā)生沖突。心跳在包含CARP VIP的每個接口上發(fā)送,每個接口每個VIP心跳一次。在偏離和基準的默認值下,VIP會每秒鐘發(fā)送一次心跳。偏離確定在給定時間點哪個節(jié)點是主節(jié)點。無論哪個節(jié)點發(fā)送心跳,最快的都是主角色。較高的偏離值會導致以更多的延遲發(fā)送心跳,因此,如果網(wǎng)絡或其他問題導致心跳延遲或丟失,則具有較低偏離值的節(jié)點將成為主機。
注意
不要使用CARP VIP訪問防火墻GUI,SSH或其他管理機制。 出于管理目的,只能使用每個單獨節(jié)點的接口上的實際IP地址,而不是VIP。不然可能不確定哪個節(jié)點被訪問。
為了使維護實際上相同的防火墻節(jié)點變得更加容易,可以使用XML-RPC進行配置同步。啟用XML-RPC同步后,支持區(qū)域的設置將被復制到輔助設備,并在每次配置更改后激活。 XMLRPC同步是可選的,但是如果沒有它,維護集群就會困難的多。
某些區(qū)域無法同步,例如接口配置,可以同步的部分包括:防火墻規(guī)則、別名、用戶、證書、×××、DHCP、路由、網(wǎng)關等。作為一般規(guī)則,特定于硬件或特定安裝的項目(例如 System > General 或 System > Advanced下的接口或值)不同步。支持的區(qū)域列表可能會根據(jù)使用的pfSense的版本而有所不同。有關要同步的區(qū)域的列表,請參閱XMLRPC部分中System > High Avail Sync的復選框。大多數(shù)插件不能同步,但有些插件包含有自己的同步設置。
配置同步應使用Sync接口,或者如果沒有專用的Sync接口,請使用為pfsync配置的相同接口。
在雙節(jié)點集群中,只能在主節(jié)點上啟用XML-RPC設置,輔助節(jié)點必須禁用這些設置。
要使XML-RPC運行,兩個節(jié)點都必須在相同的端口和協(xié)議上運行GUI,例如:端口443上的HTTPS,這是默認設置。無法禁用管理員帳戶,并且兩個節(jié)點必須具有相同的管理員帳戶密碼。
pfsync啟用集群節(jié)點之間的防火墻狀態(tài)表的同步。對主節(jié)點狀態(tài)表的更改通過Sync接口發(fā)送到輔助防火墻,反之亦然。當pfsync處于活動狀態(tài)并正確配置時,如果主節(jié)點發(fā)生故障,則備份節(jié)點將接管,并且客戶端將不會注意到這種切換。
pfsync默認使用多播,也可以定義IP地址來強制單播更新用于只有兩個防火墻的環(huán)境,組播無法正常運行。任何活動接口都可用于發(fā)送pfsync更新,但是使用專用接口更有利安全性和性能提升。 pfsync不支持任何身份驗證方法,因此如果使用專用接口以外的任何方式,任何具有本地網(wǎng)絡訪問權(quán)限的用戶都可以將狀態(tài)插入到狀態(tài)表中。在不注重安全的低吞吐量環(huán)境中,可以使用LAN接口。這種狀態(tài)同步所需的帶寬將從一個環(huán)境變化到另一個環(huán)境,但是可能達到防火墻吞吐量的10%,具體取決于網(wǎng)絡中的狀態(tài)插入和刪除速率。
故障切換仍然可以在沒有pfsync的情況下運行,但不能無縫連接。沒有pfsync,如果一個節(jié)點失敗,另一個接管,用戶連接將被丟棄。用戶可以立即通過其他節(jié)點重新連接,但在轉(zhuǎn)換期間它們將被中斷。根據(jù)特定環(huán)境中的使用情況,這可能會被忽視,也有可能是一個簡短的中斷。
當使用pfsync時,必須在參與狀態(tài)同步的所有節(jié)點(包括輔助節(jié)點)上啟用pfsync設置,否則它將無法正常運行。
在實現(xiàn)冗余配置之前,必須滿足一些先決條件。
本指南假定:
只使用兩個集群節(jié)點
兩個集群節(jié)點均使用相同的pfsense設備
兩臺設備為出廠默認配置,沒有進行其他設置
注意
不要將兩個單元的LAN端口連接到同一個LAN交換機,應該在基本設置被應用到每個節(jié)點后才連接, 否則將出現(xiàn)IP地址沖突,導致不能單獨與每個節(jié)點進行通信。
本指南假定每個集群節(jié)點上的一個接口專用于同步任務。 這通常被稱為“同步”接口,它被防火墻用于配置同步和pfsync狀態(tài)同步。 可以使用任何可用的接口。 在本指南中,OPT4接口(igb5)將用于同步流量。
注意
有人稱之為“CARP”接口,這是錯誤的,且非常容易誤導。 CARP心跳在每個接口上發(fā)生CARP VIP。CARP流量和故障切換操作不使用Sync接口。
必須在所有節(jié)點上以相同的順序?qū)涌谶M行分配。 如果接口未對齊,則配置同步和其他任務將無法正常運行。 如果對接口分配進行了任何調(diào)整,則它們必須在兩個節(jié)點上相同地進行復制。
高可用性集群在每個子網(wǎng)中需要三個IP地址以及用于同步接口的單獨的未使用的子網(wǎng)。 每個節(jié)點使用一個IP地址,加上一個共享的CARP VIP地址進行故障切換。 同步接口每個節(jié)點只需要一個IP地址。
本指南使用的IP地址如下表所示,你可以根據(jù)需要換成自己的IP地址。
IP 地址 | 用途 |
---|---|
198.51.100.200/24 | CARP共享IP地址 |
198.51.100.201/24 | 主節(jié)點 WAN IP 地址 |
198.51.100.202/24 | 輔助節(jié)點WAN IP地址 |
IP 地址 | 用途 |
---|---|
192.168.1.1/24 | CARP共享IP地址 |
192.168.1.2/24 | 主節(jié)點 LAN IP 地址 |
192.168.1.3/24 | 輔助節(jié)點LAN IP地址 |
IP 地址 | 用途 |
---|---|
172.16.1.2/24 | 主節(jié)點同步IP地址 |
172.16.1.3/24 | 輔助節(jié)點同步IP地址 |
在技術上可以將具有CARP VIP的接口配置為給定子網(wǎng)中的唯一IP地址,但是我們不建議使用這種類型的配置。 當廣域網(wǎng)使用這種配置時,它只允許從主節(jié)點到上游網(wǎng)絡(例如Internet)的通信,這使得諸如更新、插件安裝、網(wǎng)關監(jiān)控或需要來自輔助節(jié)點的外部連接的任何事情變得復雜化。 它更適合內(nèi)部接口,但是內(nèi)部接口通常不會受到與WAN相同的IP地址限制,因此仍然優(yōu)先選擇在所有節(jié)點上配置IP地址。 本指南不涵蓋此類配置。
如果網(wǎng)絡上的其他設備使用沖突的標識符,CARP可能會干擾VRRP、HSRP或使用CARP的其他系統(tǒng)。 為了確保某個網(wǎng)段不會有沖突的流量,請在每個接口上執(zhí)行數(shù)據(jù)包捕獲,尋找CARP流量。 每個2層上的VHID必須是唯一的,因此每個接口都必須單獨檢查。 只要網(wǎng)段處于單獨的廣播域中,可以在不同的網(wǎng)段上使用相同的VHID。
如果顯示任何CARP或VRRP流量,請注意VHID / VRID,并在以后配置CARP VIP VHID時避免使用該標識符。
本指南假定沒有其他可能存在沖突的流量。
使用安裝向?qū)Щ蚴謩釉O置之后,使用唯一的主機名和非沖突的靜態(tài)IP地址配置每個防火墻。
例如,一個節(jié)點可以是"firewall-a.example.com"另一個節(jié)點可以是"firewall-b.example.com",也可以是更個性化的一對名稱。
避免命名節(jié)點為master和backup,因為它們是狀態(tài)而不是角色,可以命名為primary和 secondary。
對于IP地址,出廠默認LAN地址為192.168.1.1。 在本例中,該地址將是CARP VIP。 使用該子網(wǎng)將每個節(jié)點移動到子網(wǎng)中的自己的地址,例如主節(jié)點的192.168.1.2和輔助節(jié)點的192.168.1.3。
在輔助節(jié)點上,在Services > DHCP Server 的LAN選項卡下禁用LAN段的DHCP服務器。 此服務將在配置同步后自動啟用,如果在完全配置HA之前啟用,主服務器和輔助節(jié)點上可能會發(fā)生IP地址沖突。
一旦每個節(jié)點具有唯一的LAN IP地址,并且輔助節(jié)點上的DHCP被禁用,則兩個節(jié)點都可以插入同一個LAN交換機。
兩個節(jié)點都必須在相同的端口和協(xié)議上運行GUI。 本指南假定在端口443上使用HTTPS。
不能禁用管理員帳戶,并且兩個節(jié)點必須具有相同的管理員帳戶密碼。
在pfSense2.4及更高版本上,任何用戶都可以用于配置。 同步用戶必須具有System - HA node sync權(quán)限。 現(xiàn)在我們使用admin,然后可以更改它。
兩個節(jié)點必須在同一子網(wǎng)中具有靜態(tài)IP地址,并在WAN接口設置上配置正確的網(wǎng)關。
兩個節(jié)點都必須正確配置DNS,或者使用禁用轉(zhuǎn)發(fā)功能的DNS解析器,或者在System > General Setup下設置DNS服務器。
訪問Services > DNS Resolver。 查看設置,即使沒有更改,單擊保存一次以確保默認值被設置。
CARP心跳利用組播傳送,并且可能需要在集群涉及的交換機上進行特殊處理。 某些交換機過濾、速率限制或以其他方式干擾可能導致CARP組播失敗。 此外,一些交換機采用可能無法正常使用CARP的端口安全方法。
所以交換機必須:
允許使用CARP VIP在不影響端口的情況下發(fā)送和接收組播流量。
允許使用多個MAC地址發(fā)送和接收流量。
允許CARP VIP MAC地址在端口之間移動。
CARP未能正確反映預期狀態(tài)的幾乎所有問題都是交換機故障或其他2層問題,因此在繼續(xù)操作之前,請確保交換機已正確配置。
每個節(jié)點的WAN端口必須連接到相同的WAN交換機,然后連接到WAN CPE / Modem / 上游鏈路。 LAN端口都將連接到同一個LAN交換機,依此類推。 Sync接口可以直接連接在兩個節(jié)點之間,而無需交換機。
在繼續(xù)之前,必須配置集群節(jié)點上的Sync接口。 同步IP地址分配列出了要用于每個節(jié)點上的同步接口的地址。
導航到Interfaces > OPT4
設置 Enable Interface(啟用接口)
為 SYNC
輸入說明文字
設置IPv4 Configuration Type(IPv4配置類型) 為Static IPv4(靜態(tài)IPv4)
設置IPv4 address (IPv4地址)為 172.16.1.2
,這是在主節(jié)點模式的情況下。如果是輔助節(jié)點,則設置為 172.16.1.3
在IPv4 address(地址)旁邊的CIDR下拉列表中選擇24為子網(wǎng)掩碼
不要選中Block private networks 或 Block bogon networks
單擊 Save
單擊Apply Changes(應用更改)
在主節(jié)點上完成此過程后,請在具有相應IPv4 address(地址)值的輔助節(jié)點上再次執(zhí)行該過程。
要完成Sync接口配置,請將防火墻規(guī)則添加到兩個節(jié)點以允許同步。
至少防火墻規(guī)則必須通過配置同步流量(默認情況下,端口443上的HTTPS)和pfsync流量。 在大多數(shù)情況下,使用簡單的“allow all(允許全部)”樣式規(guī)則。 對于本指南,兩者將被顯示,它也將作為同步工作的指標。
在主節(jié)點上進行如下設置:
導航到Firewall > Rules 的SYNC 選項卡
單擊 在列表頂部創(chuàng)建一個新的規(guī)則
設置 Action 為Pass
設置 Protocol 為TCP
設置 Source為YNC Net
設置 Destination 為SYNC Address
設置 Destination port range 為 443
或從下拉式選擇器中選擇HTTPS
設置 Description 為Allow configuration synchronization
單擊 Save
單擊 在列表頂部創(chuàng)建另一個新的規(guī)則
設置 Action 為 Pass
設置 Protocol 為 pfsync
設置 Source 為 SYNC Net
設置 Destination 為any
設置 Description為 Allow state synchronization
單擊 Save
單擊 Apply Changes
完成后,規(guī)則將如下圖“示例同步接口防火墻規(guī)則”所示,該規(guī)則還包括允許ICMP回顯(ping)用于診斷目的的規(guī)則。
在輔助節(jié)點進行如下設置:
導航到Firewall > Rules 的 SYNC 選項卡
單擊 在列表頂部創(chuàng)建一個新的規(guī)則
設置 Action 為 Pass
設置 Protocol 為 any
設置 Source 為SYNC Net
設置 Destination 為any
設置 Description 為 Temp rule for sync
單擊 Save
單擊 Apply Changes
注意
輔助節(jié)點的規(guī)則是不同的, 一旦進行了第一次配置同步,則輔助節(jié)點上的臨時規(guī)則將被主節(jié)點的規(guī)則所替代。
必須在主節(jié)點和輔助節(jié)點上配置使用pfsync的狀態(tài)同步才能運行。
首先在主節(jié)點上,然后在輔助節(jié)點上執(zhí)行以下操作:
導航到System > High Avail Sync
在頁面上找到 State Synchronization Settings (pfsync) 部分
啟用Synchronize States
設置Synchronize Interface 為SYNC
設置pfsync Synchronize Peer IP 同步另一個節(jié)點。 在主節(jié)點上設為 172.16.1.3
,在輔助節(jié)點上設置為 172.16.1.2
單擊Save
注意
只能在主節(jié)點上配置同步。僅在主節(jié)點上執(zhí)行以下操作:
導航到System > High Avail Sync
設置Synchronize Config to IP 為輔助節(jié)點的Sync接口 IP地址,172.16.1.3
輸入Remote System Username(遠程系統(tǒng)用戶): admin
注意
在pfSense2.3.x以及之前,這一定是永遠是admin,不能填其他用戶! 在pfSense2.4及更高版本上,任何用戶都可以用于配置。 同步用戶必須具有System - HA node sync權(quán)限。
輸入Remote System Password (遠程系統(tǒng)密碼),初始如果沒改變則為pfsense。
單擊Save
在輔助節(jié)點上導航到Firewall > Rules SYNC選項卡,你會發(fā)現(xiàn)現(xiàn)在的規(guī)則已經(jīng)與主節(jié)點同步了。
注意
不要在設置為同步的區(qū)域中對輔助節(jié)點進行更改! 下一次主節(jié)點執(zhí)行同步時,這些更改將會被覆蓋。
現(xiàn)在配置同步完成后,CARP虛擬IP地址只需要添加到主節(jié)點,并通過配置同步自動復制到輔助節(jié)點。 下面來我們設置。這需要將增加兩個CARP VIP:一個用于WAN,一個用于LAN。
導航到主節(jié)點的Firewall > Virtual IPs菜單
單擊 在列表的頂部創(chuàng)建一個新的VIP
選擇Type 為CARP
選擇Interface為WAN
在Address(es) 框中輸入WAN CARP VIP地址和子網(wǎng)掩碼。 在本例中輸入198.51.100.200
和24
在Virtual IP Password中輸入隨機密碼,并在確認框中再次輸入密碼。 這只需要在兩個節(jié)點之間進行匹配,這將通過同步來處理。
選擇“確定CARP VHID可用性”中確定的未使用的VHID Group。
注意
一個常見的策略是使VHID與IP地址的最后一個八位字節(jié)相匹配,因此在這種情況下,本例中使用了200的VHID。
在Advertising Frequency 設置Base =1, Skew = 0。當復制到輔助節(jié)點時,該值將自動調(diào)整。
在 Description 中輸入描述 WAN CARP VIP
單擊Save
Base 和 Skew共同決定CARP心跳發(fā)送的頻率。 Base的值增加了整秒,應該在兩個節(jié)點之間匹配。 Skew 值增加1/25秒的增量。 主節(jié)點應始終偏移0或1,輔助節(jié)點必須要更高一點,通常為100+。 該調(diào)整由配置同步過程自動處理。
注意
如果CARP對給定網(wǎng)絡上的延遲太敏感,我們建議一次添加一秒鐘來調(diào)整Base,直到達到穩(wěn)定。
對LAN CARP VIP
重復以上過程。
導航到Firewall > Virtual IPs
單擊 在列表的頂部創(chuàng)建一個新的VIP
選擇Type 為 CARP
選擇 Interface 為 LAN
在Address(es) 框中輸入LAN CARP VIP地址和子網(wǎng)掩碼,在本例中輸入192.168.1.1
和24
在Virtual IP Password中輸入隨機密碼,并在確認框中再次輸入密碼。
選擇“確定CARP VHID可用性”中確定的未使用的VHID Group。
在Advertising Frequency 設置Base =1, Skew = 0。
在Description 輸入描述 LAN CARP VIP
單擊 Save
單擊 Apply Changes
如果在WAN子網(wǎng)中有其他IP地址被用于1:1 NAT,端口轉(zhuǎn)發(fā),×××等等,那么現(xiàn)在可以將其添加為CARP VIP。
檢查輔助節(jié)點上的 Firewall > Virtual IPs,以確保VIP按預期方式同步。
如果設置同步成功,兩個節(jié)點上的虛擬IP地址將看起來像CARP虛擬IP列表。
現(xiàn)在在兩個節(jié)點上訪問 Status > CARP以確認正確的狀態(tài)。 主節(jié)點應顯示所有VIP(主要CARP VIP狀態(tài))的MASTER狀態(tài),輔助節(jié)點應顯示所有VIP的BACKUP狀態(tài)(輔助節(jié)點上的CARP VIP狀態(tài))。 如果狀態(tài)不正確,請參閱高可用性故障排除。
NAT的設置將會自動同步,因此這些修改只需要對主節(jié)點進行。
在主節(jié)點上導航到Firewall > NAT, Outbound 選項卡
將Mode(模式) 更改為Manual Outbound NAT rule generation(手動出站NAT規(guī)則生成)
單擊 Save, 規(guī)則列表將使用與默認自動出站NAT所使用的規(guī)則相同的規(guī)則進行填充。
注意
如果列表中沒有規(guī)則出現(xiàn),請確保WAN在Interfaces > WAN下選擇了一個網(wǎng)關。
單擊 編輯LAN子網(wǎng)的規(guī)則
設置Translation Address 為WAN CARP VIP,在本例中為198.51.100.200 。
單擊 Save
對列表中的每個規(guī)則重復該編輯,但來源為127.0.0.0/8的規(guī)則除外。
單擊 Apply Changes
訪問輔助節(jié)點的Firewall > NAT, Outbound選項卡,以確保出站規(guī)則更改在那里有反映。
注意
如果稍后添加其他本地接口,例如第二個LAN,DMZ等,并且該接口使用專用IP地址,則此時必須添加其他手動出站NAT規(guī)則。
完成后,規(guī)則更改將與CARP VIP的LAN出站NAT規(guī)則中的更改相似。
如果有任何端口轉(zhuǎn)發(fā)要使用WAN CARP VIP,必須使用Firewall > NAT, Port Forward 選項卡添加。 端口轉(zhuǎn)發(fā)將按照常規(guī)方式工作,但Destination(目的地)將是WAN CARP VIP。
集群節(jié)點上的DHCP服務器守護進程需要進行調(diào)整,以便它們可以協(xié)同工作。 這些更改將從主服務器自動同步到輔助服務器,因此與VIP和出站NAT一起,這些更改只需要在主節(jié)點上進行。
導航到Services > DHCP Server, LAN 選項卡
將DNS服務器列表中的第一個條目設置為LAN CARP VIP, 這里是 192.168.1.1
將Gateway (網(wǎng)關)設置為LAN CARP VIP, 這里是 192.168.1.1
將Failover Peer IP (故障轉(zhuǎn)移對等IP)設置為輔助節(jié)點的實際LAN IP地址,這里是 192.168.1.3
單擊 Save
將DNS服務器和網(wǎng)關設置為CARP VIP可確保本地客戶端正在與故障轉(zhuǎn)移地址進行通信,而不是直接連接到任一節(jié)點。 這樣,如果主節(jié)點失敗,本地客戶端將繼續(xù)與輔助節(jié)點通話。
故障轉(zhuǎn)移對等IP允許守護進程在該子網(wǎng)中直接與對等體通信,以交換諸如租約信息之類的數(shù)據(jù)。 當設置與輔助設備同步時,會自動調(diào)整此值,以便輔助節(jié)點返回主站。
在兩個節(jié)點上,訪問Status > DHCP Leases以查看狀態(tài)。其中包含故障轉(zhuǎn)移池狀態(tài),每個本地接口池將顯示一行。 當兩個節(jié)點正常工作時,兩個都將指示normal(正常)狀態(tài),如下圖所示。
當配置×××(如Open×××或IPsec)時,選擇WAN CARP VIP作為×××的接口,并確保遠程對等體也使用CARP VIP作為對等地址構(gòu)建隧道的另一側(cè)。
對于其他本地服務、插件等,同樣,如果服務將在兩個節(jié)點上工作,我們建議使用CARP VIP進行綁定。
各類插件的高可用性支持各不相同。 檢查插件的說明文檔,以了解對高可用性的支持情況。
重復配置其他本地接口所需的幾個相同步驟:
在兩個節(jié)點上分配接口
在兩個節(jié)點上啟用接口,在同一子網(wǎng)內(nèi)使用不同的IP地址
在新子網(wǎng)中添加CARP VIP(僅限主節(jié)點)
添加防火墻規(guī)則(僅限主節(jié)點)
為新子網(wǎng)添加手動出站NAT,利用CARP VIP進行轉(zhuǎn)換(僅限主節(jié)點)
使用CARP VIP為DNS和網(wǎng)關角色配置新子網(wǎng)的DHCP服務器(可選,僅主節(jié)點)
在所有配置完成后,現(xiàn)在必須進行測試以驗證有效性。 下面列出了系統(tǒng)各個方面的測試。 如果測試失敗,請查看配置,并根據(jù)后面的幫助查找解決辦法。
在LAN上設置客戶端,確保接收到DHCP IP地址,并顯示LAN CARP VIP作為其網(wǎng)關和DNS服務器。 驗證客戶端是否可以解析主機名,訪問Internet,是否按預期方式運行。
XMLRPC配置同步可以通過幾種方法進行測試。 最簡單的方法是對主要的任何支持的區(qū)域(如防火墻規(guī)則)進行更改,然后查看更改是否會在輔助節(jié)點反映出來(一般只需要幾秒鐘)。
強制配置同步測試XMLRPC的手動方法是訪問主節(jié)點上的Status > Filter Reload ,然后單擊Force Config Sync(強制配置同步)。 狀態(tài)將短暫更改,然后如果一切正常,將顯示一條消息,指示同步已成功完成。
在兩個節(jié)點上訪問Status > CARP,以檢查CARP是否正常工作。 所有CARP VIP的主節(jié)點將顯示“MASTER”,而所有CARP VIP的輔助節(jié)點將顯示“BACKUP”。 如果狀態(tài)屏幕指示CARP被禁用,請點擊Enable CARP (啟用CARP)按鈕。
Status > CARP頁面列出了指示狀態(tài)同步狀態(tài)的pfsync節(jié)點。 在兩個節(jié)點上,這些值可能并不總是相同,但是它們將是接近的。 如果兩者非常不同,則可能提示狀態(tài)同步的問題。 如果它們相同或幾乎相同,則狀態(tài)同步正在工作。
可以通過以下四種方式進行故障轉(zhuǎn)移測試:
單擊主節(jié)點上的Status > CARP上的Enter Persistent CARP Maintenance Mode(持久CARP維護模式)。 這將永久禁用CARP,即使重新啟動主節(jié)點。 要退出維護模式,請單擊 Leave Persistent CARP Maintenance Mode (保持CARP維護模式),再次啟用CARP。 這是一種比禁用CARP更容易和更快速的改變方式。
拔下CARP VIP的接口(如WAN或LAN)的網(wǎng)絡電纜。 這將觸發(fā)故障切換, 將電纜重新插入以恢復。
在主節(jié)點Status > CARP上單擊Temporarily Disable CARP(臨時禁用CARP)。 這將暫時禁用CARP,如果主節(jié)點重新啟動,它將重新啟動。 單擊啟用CARP重新打開它。
關閉或重新啟動主節(jié)點。
在任何上述測試期間,請訪問輔助節(jié)點的的Status > CARP,以確認CARP VIP已經(jīng)接管并顯示MASTER狀態(tài)。
在觸發(fā)故障轉(zhuǎn)移之前、期間和之后,測試從LAN上的客戶端到Internet的連接,以確保連接在每個步驟中起作用。 下載文件,流媒體很有可能會持續(xù)不間斷。 但基于VoIP的電話可能會有輕微的中斷,因為它們不像其他電話那樣會緩沖數(shù)據(jù)。
還有客戶端嘗試通過輔助節(jié)點運行時從DHCP獲取IP地址。
如果已經(jīng)配置了×××或其他服務,那么在測試過程中也要檢查它們,以確保在輔助節(jié)點上建立的×××繼續(xù)通過流量。
一旦主節(jié)點返回到“MASTER”狀態(tài),確保一切都繼續(xù)工作。
如果測試失敗,請檢查以下設置。
在深入下面的技術細節(jié)之前,首先檢查配置,確保所有步驟都正確。
如果接口為CARP狀態(tài)顯示“INIT”,如下圖所示,最常見的情況是這表明該VIP所在的接口沒有連接任何東西。 如果沒有連接到交換機或另一個端口,則該接口關閉,并且VIP無法完全初始化。 如果插入了線纜,那么請重新配置它。
如果接口掉線并將保持掉線,例如防火墻尚未使用的接口,則從接口中刪除CARP VIP,直到其準備就緒。 在掉線接口上配置CARP VIP會導致防火墻自身降級,導致故障轉(zhuǎn)移不穩(wěn)定。
VHID確定CARP IP使用的虛擬MAC地址。 pfSense中輸入驗證將不允許在一對防火墻上使用沖突的VHID,但是如果同一廣播域中有多個集群運行CARP,則可能會產(chǎn)生沖突。 VRRP還使用相同的虛擬MAC地址方案,因此使用與CARP IP VHID相同的VRID的VRRP IP也會產(chǎn)生相同的MAC地址沖突。
在WAN接口上使用CARP時,也意味著上游網(wǎng)絡/ ISP使用的VRRP或CARP也可能發(fā)生沖突。 請確保使用該廣播域上的ISP沒有使用的VHID。
除了創(chuàng)建可能干擾流量的MAC沖突之外,它還可能會干擾CARP VIP狀態(tài)。
CARP VIP的子網(wǎng)掩碼必須與同一子網(wǎng)的接口IP地址上的子網(wǎng)掩碼相匹配。 例如,如果接口IP地址為192.168.1.2/24,則CARP VIP必須使用/ 24的CIDR掩碼。
通常,二層交換機問題本身表現(xiàn)為顯示一個或多個CARP VIP的“MASTER”狀態(tài)的兩個單元。如果發(fā)生這種情況,請檢查以下項目:
確保兩個接口(WAN,LAN等)連接到正確的二層交換機的 VLAN。例如,確保兩個設備的LAN端口都連接到同一個交換機的 VLAN。
驗證兩個節(jié)點是否可以在每個網(wǎng)段上相互通過(例如通過ICMP回顯)。防火墻規(guī)則可能需要添加到WAN以適應這種測試。
如果插入到單獨的交換機中,請確保交換機正確中繼和傳遞廣播/組播流量。
如果正在使用調(diào)制解調(diào)器/ CPE背面的開關,請嘗試使用真正的開關。這些內(nèi)置交換機通常不能正確處理CARP流量。通常將防火墻插入適當?shù)慕粨Q機,然后上傳到CPE將消除問題。
禁用IGMP Snooping或其他組播限制和檢查功能。如果它們已經(jīng)關閉,請嘗試啟用該功能并再次禁用該功能。
如果XMLRPC同步嘗試失敗,則會在GUI中生成通知以引起注意,如下圖所示。 通知通常包含有關為什么失敗及指向修復的信息,如果還不足以排除故障,請檢查本節(jié)中的其他項目。
XMLRPC故障詳細信息會記錄到主系統(tǒng)日志(Status > System Logs, General 選項卡)。 通常錯誤都會明確顯示,例如身份驗證失敗將指示在同步設置上為管理員用戶輸入的密碼不正確。 如下圖所示,同步嘗試期間發(fā)生超時, 在這個例子中,是由于缺少防火墻規(guī)則。
在輔助節(jié)點上訪問Status > System Logs, Firewall 選項卡。 檢查日志中的條目未能到達GUI端口上的輔助同步接口,如下圖所示。 如果流量顯示為阻止,請根據(jù)需要調(diào)整同步接口規(guī)則。
訪問 System > User Manager,并確保在兩個系統(tǒng)上啟用管理員用戶,并且兩個系統(tǒng)上的管理員密碼都相同。 訪問System > High Avail Sync,并重新檢查是否正確輸入了管理員用戶名和密碼。
在pfSense2.4及更高版本中,確保同步用戶存在于輔助節(jié)點上,并具有“System - HA node sync”權(quán)限。
檢查Status > Interfaces,并確保同步接口在兩個單元上顯示鏈接。 如果沒有鏈路,請確保兩臺設備之間連接了一條電纜。 如果鏈路仍然無法實現(xiàn),請嘗試在兩個節(jié)點之間使用小型交換機或VLAN。
向Sync接口添加防火墻規(guī)則以允許ICMP回顯請求,然后嘗試從一個防火墻ping另一個防火墻,以確保它們可以在第3層彼此相遇。如果不能,請仔細檢查接口IP地址和子網(wǎng)掩碼設置, 以及布線。
如果pfsync節(jié)點在Status> CARP下不排隊,則提示狀態(tài)尚未同步。
在兩個節(jié)點的Status > System Logs, Firewall選項卡上檢查防火墻日志。 如果存在任何pfsync協(xié)議流量,則同步接口上的防火墻規(guī)則可能不正確。
查看Firewall > Rules 的 Sync 接口選項卡的規(guī)則。 確保規(guī)則將pfsync協(xié)議流量或任何協(xié)議的流量傳遞到任何目的地。 相應地調(diào)整規(guī)則,并再次檢查日志和CARP狀態(tài),看看它是否開始工作。
請參閱上面的驗證連接以檢查節(jié)點之間的連接。
如果狀態(tài)似乎同步,但故障切換仍然不能順利完成,請檢查Interfaces > (Assign) ,并確保接口全部按照物理名稱排列。 在pfSense2.2及更高版本中,狀態(tài)綁定到接口,因此,如果LAN接口在一個節(jié)點上是igb0,而在另一個節(jié)點上是igb3,則狀態(tài)將不會排隊。 調(diào)整接口,使它們在兩個節(jié)點上是相同的。
如果本地客戶端無法從集群中的CARP VIP獲取DNS響應,請檢查以下項目:
如果使用默認DNS解析器(unbound),請訪問Services > DNS Resolver,然后單擊主節(jié)點上的保存,確保默認值得到充分尊重。
如果使用DNS解析器或DNS轉(zhuǎn)發(fā)器,請確保守護程序配置為偵聽所有接口或至少本地主機和內(nèi)部CARP VIP。
確保本地接口防火墻規(guī)則通過TCP和UDP端口53到用于本地DNS的CARP VIP。
確保防火墻本身在System > General下配置了DNS服務器,特別是如果使用DNS轉(zhuǎn)發(fā)器(dnsmasq)而不是DNS解析器(未綁定)。
如果DHCP故障轉(zhuǎn)移池狀態(tài)未顯示為“normal(正常)”,則需要檢查以下幾項:
確保兩臺設備在正確的接口上連接到相同的交換機/子網(wǎng)
驗證該接口上兩臺設備之間的連接
確保故障轉(zhuǎn)移對等IP地址已正確配置
確保有問題的接口上有CARP VIP
確保主節(jié)點上的CARP VIP的 skew為0或1,并且輔助節(jié)點的 skew為100或更高。
如果一切都失?。?/span>
可以在兩個節(jié)點的Status > Services 上單擊停止DHCP服務
在兩個節(jié)點上訪問 Diagnostics > Command
在兩個節(jié)點的“Shell Execute”框中運行以下命令:rm /var/dhcpd/var/db/dhcpd.leases*
在兩個節(jié)點的Status > Services 上單擊啟動DHCP服務
在開始升級任何部分之前,請首先查看pfSense博客和更新日志,確定版本變化及升級注意事項。
在開始之前,先在兩個節(jié)點的 Diagnostics > Backup/Restore 下備份各自的配置。
注意
備份是快速解決各類問題的最好方法。
首先在輔助節(jié)點上執(zhí)行升級。 這樣,如果升級失敗,則不會有中斷,如果需要重新安裝,則可以毫不費力地完成。
一旦輔助節(jié)點系統(tǒng)啟完成后,登錄并確認它正在運行。 如果所有服務都處于活動狀態(tài),CARP狀態(tài)為OK,那么是時候測試了。 通過將主節(jié)點置于維護模式(請參閱測試故障切換)并觀察輔助節(jié)點上發(fā)生的情況,強制從主節(jié)點進行故障切換。 如果輔助接管OK并且流量繼續(xù)流動,則可以繼續(xù)。
主節(jié)點處于維護模式時,無需額外的干擾即可升級。 啟動操作系統(tǒng)升級,并讓防火墻重新啟動。 一旦重新啟動,請確認本地服務按預期運行,然后將節(jié)點退出維護模式。
使用當前操作系統(tǒng)和活動的兩個節(jié)點,運行最終測試以確保服務正常運行,流量正在流動、CARP、DHCP和其他狀態(tài)區(qū)域都正常運行。
翻譯自pfsense book
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。