本文介绍如何在集群模式下配置两个pfSense防火墙,以确保服务的高可用性。pfSense 是少数提供高可用性技术的开源解决方案之一。
网络拓扑图
- 网络: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通常表示是主服务器
完成后单击“应用更改”按钮。
现在可以从菜单 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选项卡中完成。
如果在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 请求时从主服务器切换到辅助服务器。
楼主你好,想问一下,PFsense的CARP可以修改配置文件将组播改成单播吗?
不能
好的,谢谢