溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

pfSense book之高可用性集群(HA)

發(fā)布時(shí)間:2020-09-27 19:55:02 來(lái)源:網(wǎng)絡(luò) 閱讀:7231 作者:鐵血男兒 欄目:建站服務(wù)器

高可用性集群

  • pfsync概述

  • pfSense XML-RPC配置同步概述

  • 冗余配置示例

  • HA與多WAN

  • 驗(yàn)證故障轉(zhuǎn)移功能

  • 提供無(wú)NAT的冗余

  • 第2層冗余

  • 高可用與橋接

  • 使用IP別名減少心跳流量

  • 接口

  • 故障排查


pfSense的高可用性通過(guò)以下特性的組合來(lái)實(shí)現(xiàn):

  • CARP用于IP地址冗余

  • XMLRPC用于配置同步

  • pfsync用于狀態(tài)表同步

通過(guò)這種配置,單元充當(dāng)“主動(dòng)/被動(dòng)”群集,主節(jié)點(diǎn)作為主單元,輔助節(jié)點(diǎn)作為備用角色,如果主節(jié)點(diǎn)發(fā)生故障,則會(huì)根據(jù)需要接管。


雖然經(jīng)常被錯(cuò)誤地稱為“CARP群集”,但由于CARP只是pfSense實(shí)現(xiàn)高可用性的幾種技術(shù)之一,因此兩個(gè)或多個(gè)冗余pfSense防火墻更適合稱為“高可用性群集”或“HA群集”,未來(lái)的CARP可以交換為不同的冗余協(xié)議。


每個(gè)群集節(jié)點(diǎn)上的一個(gè)接口將專門用于同步任務(wù)。這個(gè)接口通常稱為“Sync”接口,用于配置同步和pfsync狀態(tài)同步。任何可用的接口都可以用于“Sync


注意

有人稱之為“CARP”接口,這是不正確的,而且非常具有誤導(dǎo)性。 CARP心跳發(fā)生在與CARP VIP的每個(gè)接口上; CARP流量和故障轉(zhuǎn)移操作不使用Sync接口。


最常見的高可用性群集配置僅包含兩個(gè)節(jié)點(diǎn)。 群集中有更多的節(jié)點(diǎn)也是可以的,但它們顯然不具有特別的優(yōu)勢(shì)。


區(qū)分三種功能(IP地址冗余,配置同步和狀態(tài)表同步)非常重要,因?yàn)樗鼈儼l(fā)生在不同的地方。 配置同步和狀態(tài)同步發(fā)生在同步接口上,直接在防火墻單元之間進(jìn)行通信。 CARP心跳在每個(gè)接口上與CARP VIP一起發(fā)送。 故障轉(zhuǎn)移信號(hào)不會(huì)發(fā)生在同步接口上,而是發(fā)生在每個(gè)啟用CARP的接口上。


CARP 概述

共用地址冗余協(xié)議(CARP)由OpenBSD開發(fā)人員創(chuàng)建,作為免費(fèi)的開放式冗余解決方案,用于在一組網(wǎng)絡(luò)設(shè)備之間共享IP地址。在此之前已經(jīng)有類似的解決方案,主要是IETF虛擬路由器冗余協(xié)議(VRRP)標(biāo)準(zhǔn)。然而,思科聲稱VRRP已經(jīng)被它的熱備用路由器協(xié)議(HSRP)的專利覆蓋,并告知OpenBSD開發(fā)人員它將執(zhí)行其專利權(quán)利。因此,OpenBSD開發(fā)人員創(chuàng)建了一個(gè)新的免費(fèi)開放協(xié)議,在不侵犯思科專利的情況下實(shí)現(xiàn)基本相同的效果。 CARP于2003年10月在OpenBSD上投入使用,后來(lái)又被添加到FreeBSD中。


CARP類型虛擬IP地址(VIP)在群集的節(jié)點(diǎn)之間共享。一個(gè)節(jié)點(diǎn)是主節(jié)點(diǎn),接收IP地址的流量,其他節(jié)點(diǎn)保持備份狀態(tài)并監(jiān)視心跳,以查看并確認(rèn)主節(jié)點(diǎn)發(fā)生故障時(shí)是否需要承擔(dān)主節(jié)點(diǎn)角色。由于一次只有一個(gè)群集成員正在使用IP地址,因此CARP VIP不會(huì)發(fā)生IP地址沖突。


為了使故障轉(zhuǎn)移正常工作,必須將進(jìn)入群集的入站和出站流量(例如路由上游流量,×××,NAT,本地客戶端網(wǎng)關(guān),DNS請(qǐng)求等)通過(guò)CARP VIP進(jìn)行傳遞,例如出站NAT將從CARP VIP發(fā)送。如果流量直接發(fā)往某個(gè)節(jié)點(diǎn),而不是CARP VIP,則該流量不會(huì)被其他節(jié)點(diǎn)接收。


CARP與VRRP和HSRP類似,在某些情況下有可能會(huì)發(fā)生沖突。在包含CARP VIP的每個(gè)接口上發(fā)送心跳,每個(gè)VIP每個(gè)接口一個(gè)心跳。在默認(rèn)的偏離值和基準(zhǔn)值下,VIP每秒發(fā)出一次心跳。偏離值確定哪個(gè)節(jié)點(diǎn)在給定時(shí)間點(diǎn)是主節(jié)點(diǎn)。無(wú)論哪個(gè)節(jié)點(diǎn)傳輸心跳,更快的那個(gè)都會(huì)承擔(dān)主節(jié)點(diǎn)角色。較高的偏離值會(huì)導(dǎo)致心跳傳輸延遲增加,因此具有較低偏離值的節(jié)點(diǎn)將成為主節(jié)點(diǎn)設(shè)備,除非網(wǎng)絡(luò)或其他問(wèn)題導(dǎo)致心跳延遲或丟失。


注意

切勿使用CARP VIP訪問(wèn)防火墻GUI、SSH或其他。 出于管理的目的,只能在每個(gè)單獨(dú)節(jié)點(diǎn)的接口上使用實(shí)際的IP地址,而不要使用VIP。 否則,不能事先確定正在訪問(wèn)哪個(gè)節(jié)點(diǎn)單元。


CARP的IP地址要求

使用CARP的高可用性群集需要每個(gè)子網(wǎng)中有三個(gè)IP地址,并且Sync接口需要單獨(dú)的未使用子網(wǎng)。 對(duì)于廣域網(wǎng),這意味著最佳配置需要大于或等于29個(gè)子網(wǎng)。 每個(gè)節(jié)點(diǎn)使用一個(gè)IP地址,另外還有一個(gè)共享的CARP VIP地址用于故障轉(zhuǎn)移。 同步接口每個(gè)節(jié)點(diǎn)只需要一個(gè)IP地址。

在技術(shù)上可以將CARP VIP接口配置為給定子網(wǎng)中唯一的IP地址,但通常不建議這樣做。在WAN上使用時(shí),這種類型的配置將只允許從主節(jié)點(diǎn)到WAN的通信,這會(huì)使任務(wù)(如更新、插件安裝、網(wǎng)關(guān)監(jiān)控或任何需要輔助節(jié)點(diǎn)的外部連接的任務(wù))變得非常復(fù)雜。它可能更適合用于內(nèi)部接口,但內(nèi)部接口通常不會(huì)受到與WAN相同的IP地址限制,因此仍然最好在所有節(jié)點(diǎn)上配置IP地址。


交換機(jī)/第2層問(wèn)題

CARP心跳線利用多點(diǎn)傳送,并且可能需要對(duì)集群涉及的交換機(jī)進(jìn)行特殊處理。 一些交換機(jī)會(huì)以可能導(dǎo)致CARP失敗的方式過(guò)濾、限速或以其他方式干擾組播。 另外,一些交換機(jī)使用端口限制方法,這些方法可能導(dǎo)致CARP無(wú)法正常工作。


因此交換機(jī)必須:


  • 允許發(fā)送和接收多播流量,不能干擾使用CARP VIP的端口。

  • 允許使用多個(gè)MAC地址發(fā)送和接收流量。

  • 允許CARP VIP MAC地址在端口之間移動(dòng)。


幾乎所有CARP未能正確反映預(yù)期狀態(tài)的問(wèn)題都是交換機(jī)故障或其他第2層問(wèn)題,因此在繼續(xù)之前請(qǐng)確保交換機(jī)已正確配置。


pfsync 概述

pfsync可以使群集節(jié)點(diǎn)之間的防火墻狀態(tài)表保持同步。主防火墻上狀態(tài)表的修改會(huì)通過(guò)Sync接口發(fā)送到輔助防火墻,反之亦然。當(dāng)pfsync處于活動(dòng)狀態(tài)并正確配置時(shí),所有節(jié)點(diǎn)都將了解流經(jīng)群集的每個(gè)連接。如果主節(jié)點(diǎn)發(fā)生故障,則備份節(jié)點(diǎn)將接管并且客戶端不會(huì)注意到發(fā)生了轉(zhuǎn)換,因?yàn)閮蓚€(gè)節(jié)點(diǎn)都事先知道連接。


pfsync在默認(rèn)情況下使用多點(diǎn)傳送,但可以定義IP地址以強(qiáng)制單點(diǎn)傳送更新,以便只有兩個(gè)防火墻的多點(diǎn)傳送流量無(wú)法正常運(yùn)行。任何活動(dòng)接口都可用于發(fā)送pfsync更新,但使用專用接口更有利于安全性和性能。 pfsync不支持任何身份驗(yàn)證方法,因此如果使用除專用接口以外的其他任何方法,則任何具有本地網(wǎng)絡(luò)訪問(wèn)權(quán)的用戶都可以將狀態(tài)插入到狀態(tài)表中。在低安全性要求的低吞吐量環(huán)境中,使用LAN接口是可以接受的。這種狀態(tài)同步所需的帶寬在不同環(huán)境之間會(huì)有很大差異,但根據(jù)網(wǎng)絡(luò)中狀態(tài)的插入和刪除速率,可能會(huì)高達(dá)穿越防火墻吞吐量的10%。


故障轉(zhuǎn)移仍然可以在沒有pfsync的情況下運(yùn)行,但不會(huì)無(wú)縫連接。沒有pfsync,如果一個(gè)節(jié)點(diǎn)失敗,另一個(gè)接管,用戶連接將被丟棄。用戶可以立即通過(guò)另一個(gè)節(jié)點(diǎn)重新連接,但在轉(zhuǎn)換過(guò)程中它們會(huì)中斷。根據(jù)特定環(huán)境中的使用情況,這可能會(huì)被忽視,或者可能是一個(gè)重要但短暫的中斷。


當(dāng)使用pfsync時(shí),必須在參與狀態(tài)同步的所有節(jié)點(diǎn)(包括輔助節(jié)點(diǎn))上啟用pfsync設(shè)置,否則將無(wú)法正常運(yùn)行。


pfsync和防火墻規(guī)則

必須在Sync接口上制定允許pfsync通信的規(guī)則。 該規(guī)則必須將來(lái)自Sync網(wǎng)絡(luò)源的pfsync協(xié)議傳遞到任何目標(biāo)。 通過(guò)任何協(xié)議的所有流量的規(guī)則也允許所需的流量,但一般來(lái)說(shuō),更具體的規(guī)則會(huì)更加安全。

pfsync和物理接口

pfSense中的狀態(tài)綁定到特定的系統(tǒng)接口。 例如,如果WAN是em0,那么WAN上的狀態(tài)將與em0綁定。 如果群集節(jié)點(diǎn)具有相同的硬件和接口分配,則按預(yù)期工作。 在使用不同硬件的情況下,可能會(huì)有問(wèn)題。 如果一個(gè)節(jié)點(diǎn)上的WAN是em0,但另一個(gè)節(jié)點(diǎn)上的WAN是igb0,那么這些狀態(tài)將不匹配,并且它們不會(huì)被視為相同。


最好使用相同的硬件,但也可能不能滿足實(shí)際的需要。有一個(gè)解決方法:將接口添加到LAGG,脫離底層物理接口,因此在上面的示例中,廣域網(wǎng)將在兩者上都是lagg0,狀態(tài)將被綁定 到lagg0,盡管lagg0在一個(gè)節(jié)點(diǎn)上包含em0,并且在另一個(gè)節(jié)點(diǎn)上包含igb0。


pfsync和升級(jí)

通常pfSense都允許防火墻在線升級(jí),而不會(huì)造成網(wǎng)絡(luò)中斷。 但不是每次升級(jí)都是如此,因?yàn)閜fsync協(xié)議可以更改以適應(yīng)其他功能。 在升級(jí)之前,始終檢查所有發(fā)布通告中鏈接的升級(jí)指南,以查看是否有任何CARP用戶的特殊注意事項(xiàng)。

XML-RPC配置同步概述

為了將維護(hù)防火墻節(jié)點(diǎn)的工作變得更容易,可以使用XML-RPC進(jìn)行配置同步。啟用XML-RPC同步時(shí),支持區(qū)域的設(shè)置將同步復(fù)制到輔助設(shè)備,并在每次更改配置后激活。 XMLRPC同步是可選的,但如果沒有它,維護(hù)一個(gè)集群的工作量要大的多。


某些區(qū)域設(shè)置無(wú)法同步,如接口配置,但更多的區(qū)域都可以同步:包括防火墻規(guī)則、別名、用戶、證書、×××、DHCP、路由、網(wǎng)關(guān)等。作為一般規(guī)則,特定于硬件或特定安裝的項(xiàng)目(例如系統(tǒng)>常規(guī)或系統(tǒng)>高級(jí)設(shè)置下的接口或值)不會(huì)同步。受支持區(qū)域的列表可能因使用的pfSense版本而有所差別。大多數(shù)插件不會(huì)同步,但有些插件包含自己的同步設(shè)置。有關(guān)更多詳細(xì)信息,請(qǐng)參相關(guān)文檔。


配置同步應(yīng)使用Sync接口,如果沒有專用的Sync接口,請(qǐng)使用為pfsync配置的相同接口。


在雙節(jié)點(diǎn)群集中,只能在主節(jié)點(diǎn)上啟用XML-RPC設(shè)置,輔助節(jié)點(diǎn)必須禁用XML-RPC設(shè)置


為使XML-RPC正常工作,兩個(gè)節(jié)點(diǎn)都必須使GUI運(yùn)行在相同的端口和協(xié)議上,例如:端口443上的HTTPS(默認(rèn)設(shè)置)。管理員帳戶不能被禁用,并且兩個(gè)節(jié)點(diǎn)必須具有相同的管理員帳戶密碼。

冗余配置示例

本節(jié)介紹一個(gè)簡(jiǎn)單的三接口HA配置。 這三個(gè)接口是LAN,WAN和Sync。 這在功能上等同于兩個(gè)接口LAN和WAN部署,pfsync接口僅用于同步主防火墻和輔助防火墻之間的配置和防火墻狀態(tài)。


注意

本示例僅涵蓋IPv4配置。 高可用性與IPv6兼容,但它需要在防火墻接口上進(jìn)行靜態(tài)尋址。 準(zhǔn)備配置HA時(shí),如果靜態(tài)IPv6分配不可用,請(qǐng)?jiān)谒薪涌谏蠈Pv6設(shè)置為無(wú)。


確定IP地址分配

第一項(xiàng)任務(wù)是規(guī)劃IP地址分配。 一個(gè)好的策略是使用子網(wǎng)中最低可用的IP地址作為CARP VIP,將下一個(gè)后續(xù)IP地址用作主防火墻接口IP地址,并將下一個(gè)IP地址用作輔助防火墻接口IP地址。 這種策略是可選的,你可以使用任何方案,但我們強(qiáng)烈建議使用一致且合理的方案來(lái)簡(jiǎn)化設(shè)計(jì)和管理。

WAN 地址

WAN地址將從ISP分配的地址中選擇。 如“WAN IP地址分配表”所示,HA的WAN子網(wǎng)為198.51.100.0/24,地址198.51.100.200至198.51.100.202將用作WAN IP地址。


WAN IP地址分配表
IP 地址 作用
198.51.100.200/24CARP共享IP地址
198.51.100.201/24 主節(jié)點(diǎn) WAN IP 地址
198.51.100.202/24 輔助節(jié)點(diǎn) WAN IP 地址


LAN地址

LAN子網(wǎng)是192.168.1.0/24。 在本例中,LAN IP地址將按照“LAN IP地址分配表”中所示進(jìn)行分配。


LAN IP地址分配表
IP 地址 作用
192.168.1.1/24CARP共享IP地址
192.168.1.2/24 主節(jié)點(diǎn) LAN IP 地址
192.168.1.3/24 輔助節(jié)點(diǎn) LAN IP 地址


Sync接口地址

這個(gè)接口上沒有共享的CARP VIP,因?yàn)椴恍枰?這些IP地址僅用于防火墻之間的通信。 在本例中,172.16.1.0/24用作Sync子網(wǎng)。 將只使用兩個(gè)IP地址,但掩碼(/ 24)與其他內(nèi)部接口(LAN)保持一致。 對(duì)于IP地址的最后八位字節(jié),請(qǐng)使用與該防火墻的LAN IP地址相同的最后八位字節(jié)以保持一致。


Sync IP地址分配表
IP 地址 作用
172.16.1.2/24 主節(jié)點(diǎn) Sync IP 地址
172.16.1.3/24 輔助節(jié)點(diǎn) Sync IP 地址


下圖顯示了此示例HA的結(jié)構(gòu)。 主節(jié)點(diǎn)和輔助節(jié)都有與WAN和LAN相同的連接,并且它們之間使用交叉電纜連接Sync接口。 在這個(gè)例子中,廣域網(wǎng)交換機(jī)和局域網(wǎng)交換機(jī)仍然存在潛在的單點(diǎn)故障。 交換機(jī)冗余將在本章后面的第2層冗余中介紹。

pfSense book之高可用性集群(HA)

HA網(wǎng)絡(luò)示例圖

群集配置基礎(chǔ)

每個(gè)節(jié)點(diǎn)都需要實(shí)際HA設(shè)置以外的一些基本配置。 在兩個(gè)節(jié)點(diǎn)都沒有沖突的LAN設(shè)置之前,請(qǐng)勿將兩個(gè)節(jié)點(diǎn)都連接到同一個(gè)LAN中。

安裝、接口分配和基本配置

在防火墻上安裝操作系統(tǒng),并在兩個(gè)節(jié)點(diǎn)上以相同方式分配接口。 接口必須在所有節(jié)點(diǎn)上按照相同的順序進(jìn)行分配。 如果接口未對(duì)齊,配置同步和其他任務(wù)將無(wú)法正常工作。 如果對(duì)接口分配進(jìn)行了任何調(diào)整,則必須在兩個(gè)節(jié)點(diǎn)上進(jìn)行相同的復(fù)制。


然后,連接到GUI并使用安裝向?qū)槊總€(gè)防火墻配置唯一的主機(jī)名和非沖突的靜態(tài)IP地址。 


例如,一個(gè)節(jié)點(diǎn)可以是“firewall-a.example.com”,另一個(gè)節(jié)點(diǎn)可以是“firewall- b.example.com”,也可以是更加個(gè)性化的一對(duì)名稱。


注意

避免將節(jié)點(diǎn)命名為“master”或“backup”,因?yàn)檫@些是防火墻默認(rèn)使用的狀態(tài),可以將他們命名為“primary”和“secondary”。


默認(rèn)的LAN IP地址是192.168.1.1。 每個(gè)節(jié)點(diǎn)必須使用它自己的地址,例如主節(jié)點(diǎn)使用192.168.1.2,輔助節(jié)點(diǎn)使用192.168.1.3。 該布局顯示在LAN IP地址分配中。 一旦每個(gè)節(jié)點(diǎn)具有唯一的LAN IP地址,則兩個(gè)節(jié)點(diǎn)都可以插入同一個(gè)LAN交換機(jī)。


設(shè)置Sync接口

在繼續(xù)之前,必須配置群集節(jié)點(diǎn)上的Sync接口。 同步IP地址分配列出了用于每個(gè)節(jié)點(diǎn)上的同步接口的地址。 在主節(jié)點(diǎn)上完成設(shè)置后,再在輔助節(jié)點(diǎn)上進(jìn)行設(shè)置。


完成Sync接口配置后,還必須在兩個(gè)節(jié)點(diǎn)上將添加防火墻規(guī)則以允許他們之間進(jìn)行同步。


防火墻規(guī)則必須允許通過(guò)配置同步(默認(rèn)情況下,HTTPS使用的443端口)和pfsync在兩個(gè)節(jié)點(diǎn)之間的通信。 可以使用簡(jiǎn)單的“全部允許”樣式規(guī)則。


下圖是配置完成的防火墻規(guī)則列表,其中還包含允許ICMP(ping)用于診斷目的的規(guī)則。


pfSense book之高可用性集群(HA)

Sync 接口防火墻規(guī)則示例

輔助節(jié)點(diǎn)并不需要這些規(guī)則,只需要有一條規(guī)則允許流量通過(guò)GUI來(lái)使XML-RPC運(yùn)行。 一旦配置了XML-RPC,主節(jié)點(diǎn)的全部規(guī)則就會(huì)同步到輔助節(jié)點(diǎn)。

配置pfsync

必須在主節(jié)點(diǎn)和輔助節(jié)點(diǎn)上配置使用pfsync的狀態(tài)同步才能正常工作。


首先在主節(jié)點(diǎn)上,然后在輔助節(jié)點(diǎn)上執(zhí)行以下操作:


  • 導(dǎo)航到系統(tǒng)>高可用性同步(雙機(jī)備份)

  • 設(shè)置同步狀態(tài)

  • 將同步接口設(shè)置為SYNC

  • 將pfsync同步對(duì)等IP到另一個(gè)節(jié)點(diǎn)。 配置主節(jié)點(diǎn)時(shí)設(shè)置為172.16.1.3,配置輔助節(jié)點(diǎn)時(shí)設(shè)置為172.16.1.2

  • 點(diǎn)擊保存


配置同步 (XML-RPC)設(shè)置


警告

配置同步只能在主節(jié)點(diǎn)上配置。 輔助節(jié)點(diǎn)不能也不需要配置。


在主節(jié)點(diǎn)上執(zhí)行以下操作:


  • 導(dǎo)航到系統(tǒng)>高可用性同步

  • 將“同步配置”下的“配置同步目標(biāo)IP”設(shè)置為為輔助節(jié)點(diǎn)同步接口IP地址172.16.1.3

  • 將遠(yuǎn)程系統(tǒng)用戶名設(shè)置為admin。


    注意

    用戶名必須是“admin”,其他用戶名不會(huì)正常工作!

  • 將遠(yuǎn)程系統(tǒng)密碼設(shè)置為管理員用戶帳戶密碼,并在確認(rèn)框中重復(fù)輸入。

  • 選中需要進(jìn)行同步區(qū)域的復(fù)選框以同步到輔助節(jié)點(diǎn)。 全部切換按鈕用于一次選擇所有選項(xiàng)。

  • 點(diǎn)擊保存


快速確認(rèn)后,進(jìn)入輔助節(jié)點(diǎn)的防火墻>規(guī)則策略列表,可以看到主節(jié)點(diǎn)輸入的規(guī)則已經(jīng)被同步過(guò)來(lái)了。


這兩個(gè)節(jié)點(diǎn)已連接并進(jìn)行配置同步! 每當(dāng)在主節(jié)點(diǎn)上進(jìn)行修改后,所做的更改將很快同步到輔助節(jié)點(diǎn)。


警告

不要在輔助節(jié)對(duì)設(shè)置同步的區(qū)域進(jìn)行任何更改! 下次主節(jié)點(diǎn)執(zhí)行同步時(shí),這些選項(xiàng)將被覆蓋。


配置CARP虛擬IP

通過(guò)配置同步,CARP虛擬IP地址只需添加到主節(jié)點(diǎn),并且它們將自動(dòng)同步到輔助節(jié)點(diǎn)。

  • 導(dǎo)航到主節(jié)點(diǎn)上的防火墻>虛擬IPs,設(shè)置CARP VIP

  • 單擊右側(cè)的 pfSense book之高可用性集群(HA) 按鈕在列表頂部添加新的VIP。


  • 注意

    必須為處理用戶流量的每個(gè)接口添加一個(gè)VIP,在本示例中,要為WAN和LAN各添加一個(gè)。類型:定義VIP的類型,在這種情況下CARP。

接口: 定義VIP將駐留的接口,例如WAN

地址: 地址框是為VIP輸入IP地址值的位置。 還必須選擇子網(wǎng)掩碼,并且它必須與接口IP地址上的子網(wǎng)掩碼相匹配。 在本例中,輸入198.51.100.200和24(請(qǐng)參閱WAN IP地址分配)。 

虛擬 IP密碼: 設(shè)置CARP VIP的密碼。 這只需要兩個(gè)節(jié)點(diǎn)之間的匹配,這將通過(guò)同步來(lái)處理。 密碼和確認(rèn)密碼框必須填寫并且必須匹配。 

VHID 組:  定義CARP VIP的ID一個(gè)常見的策略是使VHID匹配IP地址的最后一個(gè)字節(jié),因此在這種情況下選擇200 

廣播頻率:  確定CARP心跳發(fā)送的頻率。 

Base(基本值):控制Heartbeats之間經(jīng)過(guò)的整秒數(shù),通常為1.這應(yīng)該在群集節(jié)點(diǎn)之間匹配。Skew(偏離值):控制秒的分?jǐn)?shù)(1/256增量)。 主節(jié)點(diǎn)通常設(shè)置為0或1,次節(jié)點(diǎn)將為100或更高。 該調(diào)整由XML-RPC同步自動(dòng)處理。

描述:一些文本可以識(shí)別VIP,例如WAN CARP VIP。



注意

如果CARP對(duì)給定網(wǎng)絡(luò)的延遲過(guò)于敏感,建議一次調(diào)整基本值一秒鐘,直到穩(wěn)定為止。


以上描述以WAN VIP為例。 LAN VIP也進(jìn)行類似配置,但它將使用LAN接口,地址為192.168.1.1(請(qǐng)參閱LAN IP地址分配)。


如果WAN子網(wǎng)中有任何額外的IP地址用于1:1 NAT、端口轉(zhuǎn)發(fā)、×××等,也可以在這里進(jìn)行添加。


編輯完成后,點(diǎn)擊應(yīng)用更改。


添加VIP后,請(qǐng)檢查輔助節(jié)點(diǎn)上的防火墻>虛擬IPs,以確保VIP按預(yù)期進(jìn)行了同步。


如果同步成功,兩個(gè)節(jié)點(diǎn)上的虛擬IP地址將如下圖所示。


pfSense book之高可用性集群(HA)

CARP虛擬IP地址列表

為CARP配置出站NAT

下面將配置NAT,以便LAN上的客戶端使用共享的WAN IP訪問(wèn)廣域網(wǎng)。


  • 導(dǎo)航到防火墻> NAT(地址轉(zhuǎn)換),出站選項(xiàng)卡

  • 單擊選中手動(dòng)出站NAT規(guī)則生成

  • 點(diǎn)擊保存


將出現(xiàn)一組與自動(dòng)出站NAT適用的規(guī)則。 調(diào)整內(nèi)部子網(wǎng)源的規(guī)則,以改為使用CARP IP地址。

  • 在規(guī)則的右側(cè)單擊 pfSense book之高可用性集群(HA) 進(jìn)行編輯

  • 找到頁(yè)面的轉(zhuǎn)換部分

  • 從地址下拉列表中選擇WAN CARP VIP地址

  • 更改描述以提及此規(guī)則將NAT LAN連接到WAN CARP VIP地址


警告

如果稍后添加其他本地接口(如第二個(gè)LAN,DMZ等),并且該接口使用私有IP地址,則必須在此時(shí)添加其他手動(dòng)出站NAT規(guī)則。


完成后,規(guī)則更改將與使用CARP VIP的LAN出站NAT規(guī)則中的規(guī)則更改類似。


pfSense book之高可用性集群(HA)

CARP VIP的LAN出站NAT規(guī)則

修改DHCP服務(wù)器

群集節(jié)點(diǎn)上的DHCP服務(wù)器設(shè)置需要調(diào)整,以便它們可以一起工作。 這些修改將從主節(jié)點(diǎn)同步到輔助節(jié)點(diǎn),因此對(duì)于VIP和出站NAT,這些修改只需要在主節(jié)點(diǎn)上進(jìn)行。

  • 導(dǎo)航到系統(tǒng)服務(wù)> DHCP服務(wù)器,LAN 選項(xiàng)卡。

  • 將DNS服務(wù)器設(shè)置為L(zhǎng)AN CARP VIP,此處為192.168.1.1

  • 將網(wǎng)關(guān)設(shè)置為L(zhǎng)AN CARP VIP,此處為192.168.1.1

  • 將故障轉(zhuǎn)移對(duì)等IP設(shè)置為輔助節(jié)點(diǎn)的實(shí)際LAN IP地址,此處為192.168.1.3

  • 點(diǎn)擊保存


將DNS服務(wù)器和網(wǎng)關(guān)設(shè)置為CARP VIP可確保本地客戶端與故障轉(zhuǎn)移地址通信,而不是直接通向任一節(jié)點(diǎn)。 如果主節(jié)點(diǎn)失敗,本地客戶端將繼續(xù)與輔助節(jié)點(diǎn)通話。


故障轉(zhuǎn)移對(duì)等IP允許守護(hù)程序直接在此子網(wǎng)中與對(duì)等方進(jìn)行通信,以交換租賃信息等數(shù)據(jù)。 當(dāng)設(shè)置與輔助設(shè)備同步時(shí),會(huì)自動(dòng)調(diào)整該值,以便輔助設(shè)備指向主設(shè)備。

高可用與多WAN

HA還可以在多WAN配置中用于防火墻冗余。 本節(jié)詳細(xì)介紹雙WAN HA部署所需的VIP和NAT配置。 


確定IP地址分配

在這個(gè)例子中,每個(gè)WAN上將使用四個(gè)IP地址。 每個(gè)防火墻需要一個(gè)IP地址,另外還有一個(gè)CARP VIP用于出站NAT,另外還有一個(gè)CARP VIP用于1:1 NAT條目,該條目將用于DMZ段中的內(nèi)部郵件服務(wù)器。

WAN 和 WAN2 IP 地址

下表顯示了兩個(gè)WAN的IP地址。 在大多數(shù)環(huán)境中,這些將是公共IP地址。


WAN IP 地址
IP 地址 作用
198.51.100.200用于出站NAT的共享CARP VIP
198.51.100.201 主節(jié)點(diǎn)防火墻 WAN
198.51.100.202 輔助節(jié)點(diǎn)防火墻 WAN
198.51.100.203用于1:1 NAT的共享CARP VIP


WAN2 IP 地址
IP 地址 作用
203.0.113.10用于出站NAT的共享CARP VIP
203.0.113.11 主節(jié)點(diǎn)防火墻 WAN2
203.0.113.12 輔助節(jié)點(diǎn)防火墻 WAN2
203.0.113.13用于1:1 NAT的共享CARP VIP


LAN 地址

LAN子網(wǎng)是192.168.1.0/24。 在這個(gè)例子中,LAN IP地址將被分配如下。


LAN IP 地址分配
IP 地址 作用
192.168.1.1CARP共享LAN VIP
192.168.1.2 主節(jié)點(diǎn)防火墻LAN
192.168.1.3 輔助節(jié)點(diǎn)防火墻 LAN


DMZ 地址

DMZ子網(wǎng)是192.168.2.0/24。 地址分配見下表。


DMZ IP 地址分配表
IP 地址 作用
192.168.2.1CARP共享DMZ VIP
192.168.2.2 主節(jié)點(diǎn)防火墻 DMZ
192.168.2.3 輔助節(jié)點(diǎn)防火墻 DMZ

pfsync 地址

這個(gè)接口上不會(huì)有共享的CARP VIP,因此不需要設(shè)置。 這些IP地址僅用于防火墻之間的通信。 在本例中,172.16.1.0/24將作為Sync子網(wǎng)。 使用兩個(gè)IP地址,子網(wǎng)掩碼與其他內(nèi)部接口一致。 

Sync IP 地址分配
IP 地址 作用
172.16.1.2主節(jié)點(diǎn)防火墻 Sync
172.16.1.3 輔助節(jié)點(diǎn)防火墻 Sync

NAT 配置

使用HA與多WAN時(shí)的NAT配置與使用單個(gè)WAN的HA相同。 確保只有CARP VIP用于入站流量或路由。 有關(guān)NAT配置的更多信息,請(qǐng)參閱相關(guān)文檔。


防火墻配置

使用多WAN時(shí),必須設(shè)置防火墻規(guī)則,以使用默認(rèn)網(wǎng)關(guān)將流量傳遞到本地網(wǎng)絡(luò)。 否則,當(dāng)流量嘗試到達(dá)CARP地址或從LAN到DMZ時(shí),它將轉(zhuǎn)而出去與WAN連接。


必須在所有內(nèi)部接口的防火墻規(guī)則頂部添加一條規(guī)則,該規(guī)則將所有本地網(wǎng)絡(luò)的流量引導(dǎo)至默認(rèn)網(wǎng)關(guān)。 必須注意使用默認(rèn)網(wǎng)關(guān),而不是故障轉(zhuǎn)移或負(fù)載平衡網(wǎng)關(guān)組之一。 此規(guī)則的目的地是本地LAN網(wǎng)絡(luò),或包含任何本地可達(dá)網(wǎng)絡(luò)的別名。


具有DMZ的多WAN HA 圖

由于附加的廣域網(wǎng)和DMZ元素,這種布局的圖表要復(fù)雜得多,如下圖所示。

pfSense book之高可用性集群(HA)

具有DMZ的多WAN HA示意圖

驗(yàn)證故障轉(zhuǎn)移功能

由于使用HA涉及高可用性,因此在將群集投入生產(chǎn)之前應(yīng)該進(jìn)行徹底的測(cè)試。 測(cè)試最重要的部分是確保HA系統(tǒng)在系統(tǒng)中斷期間能夠正常故障切換。


如果本節(jié)中的任何操作不能按預(yù)期正常工作,請(qǐng)參閱高可用性故障排除。


檢查CARP 狀態(tài)

在這兩個(gè)系統(tǒng)上,導(dǎo)航到系統(tǒng)狀態(tài)> CARP(故障轉(zhuǎn)移)。 如果一切工作正常,主節(jié)點(diǎn)設(shè)備所有CARP VIP狀態(tài)將顯示為pfSense book之高可用性集群(HA)MASTER,輔助節(jié)點(diǎn)設(shè)備將顯示為pfSense book之高可用性集群(HA)BACKUP。

如果其中一個(gè)顯示DISABLED,請(qǐng)單擊啟用CARP按鈕,然后刷新頁(yè)面。

如果一個(gè)接口顯示pfSense book之高可用性集群(HA) INIT,則意味著包含CARP VIP的接口沒有連接。 將接口連接到交換機(jī),或者至少連接到其他節(jié)點(diǎn)。 如果該接口不使用,請(qǐng)從接口上移除CARP VIP,因?yàn)檫@會(huì)干擾正常的CARP操作。

檢查配置是否正確同步

導(dǎo)航到輔助節(jié)點(diǎn)上的主要位置,例如防火墻>規(guī)則策略和防火墻> NAT(地址轉(zhuǎn)換),確保在主節(jié)點(diǎn)上創(chuàng)建的規(guī)則正在同步到輔助節(jié)點(diǎn)。



檢查DHCP故障轉(zhuǎn)移狀態(tài)

如果配置了DHCP故障切換,則可以在系統(tǒng)狀態(tài)> DHCP租約中檢查它的狀態(tài)。 包含DHCP故障轉(zhuǎn)移池狀態(tài)的頁(yè)面頂部將出現(xiàn)一個(gè)新的部分,如下圖所示。

pfSense book之高可用性集群(HA)

DHCP故障轉(zhuǎn)移池狀態(tài)

測(cè)試CARP故障切換

現(xiàn)在進(jìn)行真正的故障轉(zhuǎn)移測(cè)試。在開始之前,請(qǐng)確保LAN上的CARP后面的本地客戶端可以連接到互聯(lián)網(wǎng),同時(shí)pfSense防火墻在線運(yùn)行。一旦確認(rèn)可以正常工作,那么現(xiàn)在是進(jìn)行備份的好時(shí)機(jī)。

實(shí)際測(cè)試時(shí),請(qǐng)從網(wǎng)絡(luò)上拔下主節(jié)點(diǎn)或暫時(shí)關(guān)閉主節(jié)點(diǎn)??蛻舳藢⒛軌蛲ㄟ^(guò)輔助節(jié)點(diǎn)繼續(xù)從Internet加載內(nèi)容。在輔助節(jié)點(diǎn)上再次檢查狀態(tài)> CARP(故障轉(zhuǎn)移),它現(xiàn)在將報(bào)告它是LAN和WAN CARP VIP的MASTER。

現(xiàn)在將主節(jié)點(diǎn)重新聯(lián)機(jī),它將恢復(fù)為MASTER的角色,并且輔助節(jié)點(diǎn)系統(tǒng)將自己降級(jí)到BACKUP。在這個(gè)過(guò)程中的任何時(shí)候,互聯(lián)網(wǎng)連接仍然是可以正常工作的。

在盡可能多的故障情況下測(cè)試HA。其他測(cè)試包括:


  • 拔下WAN或LAN上的網(wǎng)線

  • 拔下主電源插頭

  • 使用臨時(shí)禁用功能和維護(hù)模式禁用主節(jié)點(diǎn)上的CARP

  • 單獨(dú)測(cè)試每個(gè)系統(tǒng)(關(guān)閉輔助節(jié)點(diǎn)電源,然后重新接通電源并關(guān)閉主電源)

  • 在故障轉(zhuǎn)移期間下載文件或嘗試傳輸音頻/視頻流

  • 在故障轉(zhuǎn)移期間,向Internet主機(jī)運(yùn)行連續(xù)的ICMP回應(yīng)請(qǐng)求(ping)


提供無(wú)NAT的冗余

如前所述,只有CARP VIP為防火墻直接處理的地址提供冗余,并且它們只能與NAT或防火墻本身的服務(wù)一起使用。 冗余還可以為具有HA的路由公共IP子網(wǎng)提供冗余。 本節(jié)介紹這種類型的配置,這在大型網(wǎng)絡(luò)、ISP和無(wú)線ISP網(wǎng)絡(luò)以及數(shù)據(jù)中心環(huán)境中很常見。


公共IP分配

pfSense的WAN端至少需要一個(gè)/ 29的公共IP范圍,它提供了六個(gè)可用的IP地址。 兩個(gè)防火墻部署只需要三個(gè),但這是容納三個(gè)IP地址的最小IP子網(wǎng)。 每個(gè)防火墻都需要一個(gè)IP,并且WAN端至少需要一個(gè)CARP VIP。


第二個(gè)公共IP子網(wǎng)將通過(guò)ISP、數(shù)據(jù)中心或上游路由器路由到CARP VIP。 由于此子網(wǎng)路由到CARP VIP,因此路由不會(huì)依賴于單個(gè)防火墻。 對(duì)于本章中所描述的示例配置,將使用/ 24公共IP子網(wǎng),并將其分成兩個(gè)/ 25個(gè)子網(wǎng)。


網(wǎng)絡(luò)概述

這里描述的示例網(wǎng)絡(luò)是一個(gè)數(shù)據(jù)中心環(huán)境,由兩個(gè)pfSense防火墻組成,每個(gè)防火墻有四個(gè)接口:WAN、LAN、DBDMZ和pfsync。 該網(wǎng)絡(luò)包含許多網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)服務(wù)器。 它不是基于任何真實(shí)的網(wǎng)絡(luò),但會(huì)有類似這樣的實(shí)例部署。

WAN網(wǎng)絡(luò)

WAN側(cè)連接到上游網(wǎng)絡(luò),即ISP、數(shù)據(jù)中心或上游路由器。

WEB 網(wǎng)絡(luò)

該網(wǎng)絡(luò)中的網(wǎng)段使用“LAN”接口,但已重命名。 它包含Web服務(wù)器,所以它被命名為WEB,但可以稱為DMZ,SERVERS或任何所需的東西。

DBDMZ網(wǎng)絡(luò)

該段是一個(gè)OPT接口并包含數(shù)據(jù)庫(kù)服務(wù)器。 在托管環(huán)境中,將網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)服務(wù)器分隔成兩個(gè)網(wǎng)絡(luò)是很常見的。 數(shù)據(jù)庫(kù)服務(wù)器通常不需要從互聯(lián)網(wǎng)直接訪問(wèn),因此不受Web服務(wù)器的危害影響。

Sync網(wǎng)絡(luò)

此圖中的同步網(wǎng)絡(luò)用于通過(guò)XML-RPC同步pfSense配置的修改,以及pfsync同步兩個(gè)防火墻之間的狀態(tài)表修改。 建議使用專用接口。

網(wǎng)絡(luò)拓?fù)?/span>

網(wǎng)絡(luò)拓?fù)淙缦聢D所示,包括所有可路由的IP地址、WEB網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)DMZ。

pfSense book之高可用性集群(HA)

HA與路由IPs的關(guān)系圖

注意

包含數(shù)據(jù)庫(kù)服務(wù)器的網(wǎng)段通常不需要公開訪問(wèn),因此更常用的是使用私有IP子網(wǎng),但可以使用此處說(shuō)明的示例,而不考慮兩個(gè)內(nèi)部子網(wǎng)的功能。

第2層冗余

本節(jié)介紹規(guī)劃冗余網(wǎng)絡(luò)時(shí)要考慮的第2層設(shè)計(jì)元素。 本章假定只部署兩個(gè)系統(tǒng),當(dāng)然也可以根據(jù)需要擴(kuò)展到更多的部署。


如果兩個(gè)冗余pfSense防火墻都接入到同一臺(tái)交換機(jī)任何接口上,則該交換機(jī)將成為單點(diǎn)故障。 為了避免這種單點(diǎn)故障,最好的選擇為每個(gè)接口部署兩個(gè)交換機(jī)(除了專用的pfsync接口)。


下圖以網(wǎng)絡(luò)為中心,未顯示交換機(jī)基礎(chǔ)結(jié)構(gòu)。 具有冗余交換機(jī)的HA圖圖解釋了該環(huán)境如何與冗余交換機(jī)基礎(chǔ)架構(gòu)配合使用。

pfSense book之高可用性集群(HA)

具有冗余交換機(jī)的HA示意圖

交換機(jī)配置

使用多個(gè)交換機(jī)時(shí),交換機(jī)應(yīng)互連。 只要兩臺(tái)交換機(jī)之間有單一連接,并且任何一臺(tái)防火墻上都沒有網(wǎng)橋,對(duì)任何類型的交換機(jī)來(lái)說(shuō)都是安全的。 在使用橋接的情況下,或者在交換機(jī)之間存在多個(gè)互連的情況下,必須小心避免第2層環(huán)路。 如果是這種情況,就需要一個(gè)管理型交換機(jī),它能夠使用生成樹協(xié)議(STP)來(lái)檢測(cè)和阻塞會(huì)產(chǎn)生交換機(jī)環(huán)路的端口。 當(dāng)使用STP時(shí),如果活動(dòng)鏈路斷路,例如交換機(jī)故障,那么備份鏈路可以自動(dòng)提交到它的位置。


pfSense還支持lagg(4)鏈路聚合和鏈路故障切換接口,允許將多個(gè)網(wǎng)絡(luò)接口插入一個(gè)或多個(gè)交換機(jī)以提高容錯(cuò)能力。 有關(guān)配置鏈路聚合的更多信息,請(qǐng)參閱LAGG(鏈路聚合)。


主機(jī)冗余

獲得防火墻內(nèi)關(guān)鍵系統(tǒng)的主機(jī)冗余比較困難。 每個(gè)系統(tǒng)都可以使用兩個(gè)網(wǎng)卡,使用鏈路聚合控制協(xié)議(LACP)或類似的供應(yīng)商特定功能連接到每組交換機(jī)。 服務(wù)器也可以有多個(gè)網(wǎng)絡(luò)連接,并且根據(jù)操作系統(tǒng),可以在一組服務(wù)器上運(yùn)行CARP或類似的協(xié)議,以便它們形成相互冗余。 

其他單點(diǎn)故障

當(dāng)試圖設(shè)計(jì)一個(gè)完全冗余的網(wǎng)絡(luò)時(shí),會(huì)許多單點(diǎn)故障會(huì)被忽略。需要考慮的事情比簡(jiǎn)單的交換機(jī)故障要多得多。以下是一些常見的冗余示例:


  • 為每個(gè)冗余段提供隔離電源。

  • 為冗余系統(tǒng)使用單獨(dú)的斷路器。

  • 使用多個(gè)UPS/發(fā)電機(jī)。

  • 使用多個(gè)電力供應(yīng)商,盡可能進(jìn)入建筑物的兩側(cè)。

  • 即使是多WAN配置也不能保證Internet正常運(yùn)行。

  • 使用多種互聯(lián)網(wǎng)連接技術(shù)(DSL,Cable,F(xiàn)iber,Wireless)。

  • 如果任何兩個(gè)運(yùn)營(yíng)商使用相同的光纖/隧道/路徑,他們都可能同時(shí)被淘汰。

  • 備份冷卻,冗余冷水機(jī)組或便攜式/應(yīng)急空調(diào)。

  • 考慮將第二套冗余設(shè)備放置在另一個(gè)房間,另一個(gè)樓層或另一個(gè)建筑物中。

  • 在城鎮(zhèn)或其他城市的另一部分有重復(fù)的設(shè)置。

  • 我聽說(shuō)火星上的主機(jī)價(jià)格便宜,但延遲是殺手級(jí)的。


高可用性與橋接

高可用性目前不兼容本地橋接。 

使用IP別名減少心跳流量

如果某個(gè)網(wǎng)段上有大量的CARP VIP,則會(huì)導(dǎo)致很多組播流量。 每個(gè)CARP VIP每秒發(fā)送一次心跳。 為了減少這種流量,額外的VIP可以在接口上的一個(gè)CARP VIP上“堆疊”。 首先,選擇一個(gè)CARP VIP作為接口的“主要”VIP。 然后,將同一子網(wǎng)中的其他CARP VIP更改為IP別名類型VIP,選擇“主”CARP VIP接口作為它們?cè)赩IP配置上的接口。


這不僅減少了在給定細(xì)分受眾中看到的心跳,而且還會(huì)導(dǎo)致所有IP別名VIP與“主”CARP VIP一起更改狀態(tài),從而降低第2層問(wèn)題,減少故障轉(zhuǎn)移出現(xiàn)問(wèn)題的概率。


IP別名VIP通常不會(huì)通過(guò)XML-RPC配置同步進(jìn)行同步,但是,以這種方式設(shè)置為使用CARP接口的IP別名VIP將會(huì)進(jìn)行同步。

接口

如果在與HA的單個(gè)接口上需要多個(gè)子網(wǎng),則可以使用IP別名來(lái)完成。 與主接口IP地址一樣,我們建議每個(gè)防火墻在附加子網(wǎng)內(nèi)都有一個(gè)IP地址,每個(gè)子網(wǎng)總共至少有三個(gè)IP。 必須將單獨(dú)的IP別名條目添加到新子網(wǎng)內(nèi)的每個(gè)節(jié)點(diǎn),以確保其子網(wǎng)掩碼與新子網(wǎng)的實(shí)際子網(wǎng)掩碼相匹配。 直接在接口上的IP別名VIP不同步,安全可以得到保證。


一旦將IP別名VIP添加到兩個(gè)節(jié)點(diǎn)以在新子網(wǎng)中獲得立足點(diǎn),則可以使用來(lái)自新子網(wǎng)的IP地址添加CARP VIP。


只要不需要附加子網(wǎng)和兩個(gè)獨(dú)立HA節(jié)點(diǎn)之間的通信,就可以省略IP別名,并直接在另一個(gè)子網(wǎng)中使用CARP VIP。

故障排除

高可用性配置相對(duì)復(fù)雜,且有許多不同的方式來(lái)配置故障轉(zhuǎn)移群集。在本節(jié)中,一些常見(不常見)的問(wèn)題在大多數(shù)情況下討論并有望解決。如果在咨詢本節(jié)后問(wèn)題仍然存在,那么在pfSense論壇上有專門的CARP / VIPs討論區(qū)。


在繼續(xù)之前,請(qǐng)花時(shí)間檢查HA群集的所有成員以確保它們具有一致的配置。通常,這有助于通過(guò)示例設(shè)置,仔細(xì)檢查所有正確的設(shè)置。在輔助節(jié)點(diǎn)上重復(fù)該過(guò)程,并注意輔助節(jié)點(diǎn)上配置不同的地方。請(qǐng)務(wù)必檢查CARP狀態(tài)(檢查CARP狀態(tài)),并確保所有集群成員都啟用CARP。


系統(tǒng)狀態(tài)>系統(tǒng)日志,系統(tǒng)選項(xiàng)卡會(huì)記錄與HA有關(guān)的錯(cuò)誤。檢查涉及的每個(gè)系統(tǒng)上的日志,看看是否有任何與XMLRPC同步、CARP狀態(tài)轉(zhuǎn)換或其他相關(guān)錯(cuò)誤的信息。


常見錯(cuò)誤配置

有三種常見的錯(cuò)誤配置會(huì)阻止HA正常工作。

每個(gè)CARP VIP使用不同的VHID

在給定接口或廣播域上創(chuàng)建的每個(gè)CARP VIP上必須使用不同的VHID。 使用單個(gè)HA時(shí),輸入驗(yàn)證將防止重復(fù)的VHID。 不過(guò),也不總是那么簡(jiǎn)單。 CARP是一種組播技術(shù),因此在同一網(wǎng)段上使用CARP的任何內(nèi)容都必須使用唯一的VHID。 VRRP也使用與CARP類似的協(xié)議,因此確保與VRRP VHID沒有沖突,例如ISP或本地網(wǎng)絡(luò)中的其他路由器正在使用VRRP。

最好的解決方法是使用一組獨(dú)特的VHID。 如果正在使用已知安全的專用網(wǎng)絡(luò),請(qǐng)從1開始編號(hào)。在VRRP或CARP發(fā)生沖突的網(wǎng)絡(luò)上,咨詢?cè)摼W(wǎng)絡(luò)的管理員以查找空閑區(qū)域的VHID。


不正確的時(shí)間

檢查所涉及的系統(tǒng)是否正確同步時(shí)間并具有有效時(shí)區(qū),尤其是在虛擬機(jī)中運(yùn)行時(shí)。 如果時(shí)間相差太大,某些同步任務(wù)(如DHCP故障切換)將無(wú)法正常工作。

不正確的子網(wǎng)掩碼

真正的子網(wǎng)掩碼必須用于CARP VIP,而不是/ 32。 這必須與分配CARP IP的接口上的IP地址的子網(wǎng)掩碼相匹配。

CARP接口的IP地址

CARP VIP所在的接口在使用前必須已經(jīng)在接口(VLAN,LAN,WAN,OPT)上直接定義了另一個(gè)IP。

不正確的哈希錯(cuò)誤

如果CARP在出現(xiàn)此錯(cuò)誤時(shí)無(wú)法正常工作,則可能是配置不匹配。 確保對(duì)于給定的VIP、VHID、密碼和IP地址/子網(wǎng)掩碼都匹配。


如果設(shè)置正確,并且在生成此錯(cuò)誤消息時(shí)CARP仍不起作用,那么在同一廣播域中可能會(huì)有多個(gè)CARP實(shí)例。 使用tcpdump(數(shù)據(jù)包捕獲)禁用CARP并監(jiān)控網(wǎng)絡(luò),以檢查其他CARP或類似CARP的流量,并適當(dāng)調(diào)整VHID。


如果CARP工作正常,并且系統(tǒng)啟動(dòng)時(shí)此消息在日志中,則可以忽略它。 只要CARP繼續(xù)正常工作(主節(jié)點(diǎn)顯示MASTER,輔助節(jié)點(diǎn)顯示BACKUP狀態(tài)),啟動(dòng)時(shí)就會(huì)看到此消息是正常的。


兩個(gè)系統(tǒng)都顯示為MASTER

如果輔助節(jié)點(diǎn)無(wú)法從主節(jié)點(diǎn)收到CARP廣播,則會(huì)發(fā)生這種情況。 檢查防火墻規(guī)則、連接、交換機(jī)配置。 同時(shí)檢查系統(tǒng)日志是否有可能導(dǎo)致解決方案的相關(guān)錯(cuò)誤信息。 如果在虛擬機(jī)(VM)產(chǎn)品(如ESX)中遇到此問(wèn)題,請(qǐng)參閱虛擬機(jī)(ESX)中的問(wèn)題。

主節(jié)點(diǎn)降級(jí)為BACKUP

在某些情況下,在系統(tǒng)恢復(fù)聯(lián)機(jī)后,可能會(huì)在短時(shí)間內(nèi)正常發(fā)生這種情況。 但是,某些硬件故障或其他錯(cuò)誤情況可能會(huì)導(dǎo)致服務(wù)器默默承擔(dān)240的較高優(yōu)先級(jí),以表示它仍然存在問(wèn)題,并且不應(yīng)成為主設(shè)備。 這可以通過(guò)GUI或通過(guò)shell或系統(tǒng)診斷>命令來(lái)進(jìn)行檢查。

在GUI中,此狀態(tài)顯示在系統(tǒng)狀態(tài)> CARP的錯(cuò)誤消息中。

pfSense book之高可用性集群(HA)

當(dāng)主節(jié)點(diǎn)被降級(jí)時(shí)CARP狀態(tài)

在shell或系統(tǒng)診斷>命令中,運(yùn)行以下命令檢查降級(jí):

#sysctl net.inet.carp.demotion
net.inet.carp.demotion: 240

如果該值大于0,則該節(jié)點(diǎn)已降級(jí)。


在這種情況下,隔離防火墻,檢查網(wǎng)絡(luò)連接,并執(zhí)行進(jìn)一步的硬件測(cè)試。


如果降級(jí)值為0,并且主節(jié)點(diǎn)仍然將自己降級(jí)為BACKUP或不斷變化,請(qǐng)檢查網(wǎng)絡(luò)以確保沒有第2層環(huán)路。 如果防火墻從交換機(jī)接收到自己的心跳,它也可以觸發(fā)對(duì)BACKUP狀態(tài)的更改。


虛擬機(jī)內(nèi)部問(wèn)題(ESX)

在虛擬機(jī)內(nèi)部使用HA時(shí),尤其是VMware ESX,需要一些特殊的配置:

  • 在vSwitch上啟用混雜模式。

  • 啟用“MAC地址更改”。

  • 啟用“偽傳輸”。


ESX VDS混雜模式解決方法

如果正在使用虛擬分布式交換機(jī),則可以為啟用混雜模式的防火墻接口創(chuàng)建端口組,并為其他主機(jī)設(shè)置單獨(dú)的非混雜端口組。論壇上有用戶使用這種方式來(lái)平衡讓CARP功能和保護(hù)客戶端端口的要求。

ESX VDS 升級(jí)問(wèn)題

如果在4.0或4.1中使用VDS(虛擬分布式交換機(jī))并將其從4.0升級(jí)到4.1或5.0,則VDS將無(wú)法正確傳遞CARP流量。 如果在4.1或5.0上創(chuàng)建了新的VDS,它可以正常工作,但升級(jí)后的VDS則不會(huì)。

可以在VDS上禁用混雜模式,然后重新啟用它可以解決該問(wèn)題。


ESX VDS端口鏡像問(wèn)題

如果在VDS上啟用端口鏡像,則會(huì)打破混雜模式。 要修復(fù)它,請(qǐng)禁用然后重新啟用混雜模式。

ESX客戶端端口問(wèn)題

如果物理HA集群使用ESX主機(jī)(lagg組或類似設(shè)備)上的多個(gè)端口連接到交換機(jī),并且目標(biāo)VM只能訪問(wèn)某些設(shè)備/ IP,則端口組設(shè)置可能需要調(diào)整 ESX將基于IP設(shè)置組的負(fù)載平衡設(shè)置為基于散列,而不是始發(fā)接口。

設(shè)置不正確的副作用包括:

  • 流量?jī)H在其NIC上以混雜模式到達(dá)目標(biāo)VM。

  • 當(dāng)主防火墻的“真實(shí)”IP地址可以到達(dá)時(shí),無(wú)法從目標(biāo)VM到達(dá)CARP VIP。

  • 到目標(biāo)VM的端口轉(zhuǎn)發(fā)或其他入站連接從一些IP地址工作,而不是其他IP地址。

ESX物理網(wǎng)卡故障無(wú)法觸發(fā)故障切換

CARP中的自我降級(jí)依賴于交換機(jī)端口鏈路的丟失。 因此,如果主防火墻實(shí)例和輔助防火墻實(shí)例位于不同的ESX單元上,并且主設(shè)備丟失了交換機(jī)端口鏈接并且不會(huì)將其公開給虛擬機(jī),CARP將在其所有VIP上保留MASTER,并且次要設(shè)備也會(huì)相信它應(yīng)該是MASTER。 解決這個(gè)問(wèn)題的方法之一是在ESX中編寫一個(gè)事件,如果物理端口丟失鏈接,該事件將取消VM上的交換機(jī)端口。 在ESX中也可能有其他方法。

KVM + Qemu問(wèn)題

使用e1000網(wǎng)卡(em(4)),ed(4)網(wǎng)卡或CARP VIP不會(huì)離開init狀態(tài)。

VirtualBox 問(wèn)題

在VM的相關(guān)接口上設(shè)置“混雜模式:允許CARP在任何接口類型(橋接,主機(jī),內(nèi)部)上運(yùn)行,

其他交換機(jī)和第2層問(wèn)題

  • 如果節(jié)點(diǎn)單元插入單獨(dú)的交換機(jī),請(qǐng)確保交換機(jī)正確中繼并傳遞廣播/多播通信。

  • 一些交換機(jī)具有廣播/多播過(guò)濾,限制或“風(fēng)暴控制”功能,可以打破CARP。

  • 某些交換機(jī)已損壞固件,導(dǎo)致IGMP Snooping等功能干擾CARP。

  • 如果使用調(diào)制解調(diào)器/ CPE背面的開關(guān),請(qǐng)嘗試使用真正的開關(guān)。 這些內(nèi)置交換機(jī)通常無(wú)法正確處理CARP流量。 通常將防火墻插入合適的交換機(jī),然后上行到CPE將消除問(wèn)題。

配置同步問(wèn)題

  • 在遇到配置同步問(wèn)題時(shí),請(qǐng)仔細(xì)檢查以下項(xiàng)目:

  • 所有節(jié)點(diǎn)上的用戶名必須為admin。

  • 主服務(wù)器上的配置同步設(shè)置中的密碼必須與備份中的密碼相匹配。

  • WebGUI必須位于所有節(jié)點(diǎn)上的相同端口上。

  • WebGUI必須在所有節(jié)點(diǎn)上使用相同的協(xié)議(HTTP或HTTPS)。

  • 必須允許流量通過(guò)同步流量接口上的WebGUI端口。

  • 必須在所有節(jié)點(diǎn)上啟用和配置pfsync接口。

  • 確認(rèn)只有主同步節(jié)點(diǎn)啟用了配置同步選項(xiàng)。

  • 確保在輔助節(jié)點(diǎn)上的同步配置到IP中沒有指定IP地址。

  • 確保兩個(gè)節(jié)點(diǎn)上的時(shí)間都是最新的,并且相當(dāng)準(zhǔn)確。


HA和多WAN故障排除

如果在處理多WAN時(shí)遇到CARP VIP麻煩,請(qǐng)仔細(xì)檢查是否存在與防火墻配置中提到的規(guī)則相同的規(guī)則。


翻譯自pfsense book 

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI