pfSense配置高可用性

本文介绍如何在集群模式下配置两个pfSense防火墙,以确保服务的高可用性。pfSense 是少数提供高可用性技术的开源解决方案之一。

网络拓扑图

LAN

  • 网络:192.168.99.0/24
  • pfSense A IP:192.168.99.1
  • pfSense B IP:192.168.99.2
  • CARP 虚拟 IP : 192.168.99.100

WAN:

  • 网络:192.168.1.0/24
  • pfSense A IP:192.168.1.1
  • pfSense B IP:192.168.1.2
  • CARP 虚拟 IP : 192.168.1.100

运作原理

高可用性技术包括 3 个主要组件:

  • CARP:用于配置 pfSense 使用的虚拟 IP 协议。如果主服务器遇到问题,此虚拟 IP将由辅助服务器接管。
  • pfsync:用于同步两个pfSense防火墙之间(以及运行数据包过滤器的两台服务器之间的全局性)当前连接状态的协议。
  • XML-RPC:用于将数据从一台服务器复制到另一台服务器的协议。它在 pfSense 中用于将配置从主服务器复制到辅助服务器。

配置虚拟IP

为了保证正常工作,每个pfSense防火墙在其接口上必须有一个唯一的 IP 地址,以及一个在两个 pfSense 服务器之间共享的虚拟 IP 地址。

因此,用于组成集群的每个pfSense防火墙网络需要 3 个 IP 地址。

在主服务器上,导航到Firewall > Virtual IPs:

点击“添加”按钮。

填写字段如下:

  • 类型:CARP
  • 接口: WAN
  • 地址 : 带有此接口掩码的虚拟 IP。在本例中为192.168.1.100/24
  • 虚拟IP密码:密码
  • VHID组:每个虚拟IP必须是唯一的
  • 通告频率:“base”值是以秒为单位的通告频率。“Skew”字段是偏离值,0通常表示是主服务器

在 LAN 接口上执行相同的配置。

完成后单击“应用更改”按钮。

现在可以从菜单 Status> CARP (failover) 中查看虚拟 IP 地址的状态,会发现WAN 和 LAN 虚拟 IP地址都是“Master ”。

虚拟IP的配置仅在主 pfsense (pfSense A) 上执行。

强制使用虚拟IP地址

虚拟IP已配置但还未使用,下面需要将pfSense 的出站流量配置为使用WAN VIP 地址,对入站流量使用 LAN VIP 地址,并将不同的服务配置为使用LAN VIP地址作为默认地址(例如OpenVPN或DHCP的配置)。

这些配置仅在主 pfsense (pfSense A) 上执行

配置出站NAT

进入Firewall > NAT,Outbound选项卡。

选中“混合出站 NAT 规则生成”,然后点击下面的添加按钮。

填写如下信息:

完成后,单击“应用更改”按钮。

配置DHCP服务器

如果pfSense是网络上的DHCP服务器,还需要修改配置。转到Services > DHCP Server。

修改“网关”字段来指示VIP地址(192.168.99.100)。

配置OpenVPN服务器

如果在 pfSense 上配置了 OpenVPN 服务器,必须修改服务侦听接口(通常为“WAN”),将其替换为VIP地址(192.168.1.100)。
修改在VPN > OpenVPN, Servers选项卡中完成。

配置VPN IPsec服务

如果在pfSense上配置了IPsec VPN,必须修改IPsec VPN的侦听接口(通常为“WAN”),将其替换为 VIP 地址(192.168.1.100)。
修改在 VPN > IPsec 阶段 1 设置中完成。

配置高可用

转到System > High Avail. Sync:

配置同步

状态同步设置 (pfsync)

填写的字段信息如下:

  • 同步状态:选中来激活 pfsync。
  • 同步接口:如果没有专门的接口用于两个节点之间的同步,可以选择“LAN”。这是本例中的设置。
  • pfsync 同步对等 IP:pfSense B 的 IP 地址。在本例中为:192.168.99.2

配置同步设置(XMLRPC 同步)

填写的字段信息如下:

  • 将配置同步到指定IP:在主 pfSense (pfSense A) 上,输入辅助 pfSense (pfSense B) 的 IP。在本例中为192.168.99.2,必须与之前在“pfsync 同步对等 IP”字段中输入的 IP 相同。该字段在辅助 pfSense (pfSense B) 上留空
  • 远程系统用户名:在主pfSense (pfSense A) 上,输入用户名来访问辅助 pfSense (pfSense B) -默认情况下应为“ admin ”。该字段在辅助 pfSense (pfSense B) 上留空
  • 远程系统密码:在主pfSense (pfSense A) 上,输入管理员帐户(或您选择的备用帐户)的密码。该字段在辅助 pfSense (pfSense B) 上留空

然后检查需要同步的服务。默认为所有服务(单击“全部切换按钮)。

完成后,单击“保存”按钮。

添加防火墙规则

为同步添加允许通过的防火墙规则。

导航到Firewall > Rules。

添加以下通过规则:

  • 允许XML-RPC 同步在端口 443 上完成。
  • 允许pfsync 协议同步。

最简单的方法是使用两个pfSense防火墙的LAN IP 地址创建别名:

然后使用别名创建防火墙规则:

至此配置完成!

测试设置

为了检查高可用性是否正常运行,可以执行以下测试:

  • 停止主pfSense ;
  • 从主pfSense 的LAN或WAN 接口断开网线;
  • 禁用主pfSense上的CARP 服务(“Status” > “CARP (failover)”);
  • 下载文件或启动ping 请求时从主服务器切换到辅助服务器。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注