高可用性 (HA) 是指IT系统、组件或应用程序在一定时间内以较高级别一致且不中断地运行的能力。高可用性 (HA) 旨在保证系统满足预先设定的运行性能水平,提供最佳性能并有效管理各种工作负载和故障,同时最大限度地减少或消除任何服务中断。
OPNsense采用通用地址冗余协议 (CARP) 来实现硬件故障转移,通过配置两个或多个防火墙来创建,如果主防火墙上的一个接口出现故障或主防火墙完全关闭,则辅助防火墙将变为活动状态。
利用这一强大的功能,可以建立一个完全冗余的防火墙系统,并具有自动且完美的故障转移功能。在过渡到备份网络期间,网络将保持正常连接,对用户造成的干扰基本可以忽略。
在深入研究OPNsense上的HA设置之前,我们先了解与建立集群系统相关的术语。
CARP
CARP(通用地址冗余协议 ) 支持在多个主机之间共享单个IP地址和虚拟主机 ID (VHID),从而确保一项或多项服务的高可用性。如果一台或多台主机发生故障,其余主机将无缝接管控制权,确保用户不会遇到任何服务中断。
除了共享IP地址之外,每个主机还分配有一个唯一的IP地址用于管理和配置。共享IP地址的所有计算机都拥有相同的VHID。网络接口广播域中的每个虚拟IP地址都必须具有唯一的虚拟主机标识符 (VHID)。
通用地址冗余协议 (CARP) 使用IP协议112,基于OpenBSD,并使用多播数据包将其状态传达给相邻设备。确保每个接口都能接收CARP报文。每个虚拟接口都需要拥有一个不同的虚拟主机ID (vhid),该ID在物理计算机之间共享。规定的偏差用于确定具有较高优先级的物理机。偏度的降低对应于分数的增加。CARP采用IP协议112(0x70)来确定传输通告时的优先级,它通过224.0.0.18或 来实现FF02::12。
pfSync
pfsync是一种通讯协议,用于在运行数据包过滤器 (PF) 的计算机之间同步防火墙状态,以实现高可用性。它与CARP结合使用,以确保备份防火墙维护与主防火墙相同的信息。如果防火墙集群中的主系统发生故障,辅助计算机能够无缝处理正在进行的连接,而不会造成任何损失。建议使用专用接口在主机之间传输pfSync数据包,以增强安全性(防止状态注入)并提高速度。为了使状态信息准确地跨两个防火墙应用,它们必须使用相同的接口名称来访问相同的网络。举例来说,如果防火墙A 的内部网络 (LAN) 通过igb0接口链接,则防火墙B也必须将igb0分配给该LAN。
XMLRPC
OPNsense的一项功能XMLRPC同步可以确保备份服务器的配置与主服务器的配置保持一致。每次配置发生变化后,选中同步区域的配置都会从主节点复制到辅助节点,并在启用XMLRPC同步时激活。XMLRPC同步不是必需的,但它可以大大减少集群维护所需的工作量。
在本教程中,将介绍如何在OPNsense 防火墙系统上配置高可用性,使用的防火墙版本为OPNsense 24.7.3,网络拓扑如下 图所示:
HA配置
必备条件
- 两个OPNsense 防火墙设备,每个防火墙有三个网络接口。
- WAN IP 地址3个,主、备各一个固定 IP 地址,还有一个为主防火墙指定的虚拟 IP 地址。
- LAN IP 地址3 个,主、备各一个固定 IP 地址,还有一个为主防火墙指定的虚拟 IP 地址。
ESXI安全策略设置
配置接口
本教程防火墙IP地址分配如下表所示:
接口 | IP地址 |
---|---|
lan | 10.10.10.201/24 |
wan | 192.168.0.201/24 |
pfSync | 11.11.0.1 |
表 1. 主防火墙接口 IP 地址
接口 | IP地址 |
---|---|
lan | 10.10.10.202/24 |
wan | 192.168.0.202/24 |
pfSync | 11.11.0.2 |
表 2. 备份防火墙接口 IP 地址
按照上述表格的数据,配置好主备防火墙的对应接口,确保主备分别使用都能正常联网。
防火墙规则
虚拟IP地址
在主节点上配置虚拟IP地址,然后使用XMLRPC同步,将这些设置同步到备份防火墙。
VIP接口的值如下表所示:
选项 | 值 |
---|---|
类型 | Carp |
接口 | LAN |
IP地址 | 10.10.10.200 / 24 |
密码 | opnsense |
VHID组 | 3 |
通告频率 | 基本 1 / 偏离 0 |
描述 | VIP LAN |
表3. LAN 接口虚拟IP设置
选项 | 值 |
---|---|
类型 | Carp |
接口 | WAN |
IP地址 | 192.168.0.200 / 24 |
密码 | opnsense |
VHID组 | 1 |
通告频率 | 基本 1 / 偏离 0 |
描述 | VIP WAN |
表 4. WAN 接口虚拟IP设置
在主防火墙上,导航至接口→虚拟IP →设置,点击右下角添加按钮,为LAN接口创建新的虚拟IP 地址,如下图所示:
输入完成以后,单击“保存”。并点击“应用”激活设置。
为WAN 接口创建新的虚拟 IP 地址,如下图所示:
输入完成以后,单击“保存”。并点击“应用”激活设置。
注意:要确保Carp VIP的子网掩码与主接口相同。
出站NAT
为了保持平稳过渡,离开防火墙的流量必须使用与广域网 (WAN) 接口关联的虚拟IP地址。默认情况下,OPNsense的NAT出站为“自动出站 NAT规则生成”,会影响数据流量的平滑过渡,需要修改为虚拟的VIP WAN接口,以便来让来自10.10.10.0/24 网络的数据包使用CARP虚拟接口 (192.168.0.200)出站。
在主防火墙上配置出站 NAT 规则,导航到防火墙→ NAT →出站,选择混合或手动出站NAT规则,点击保存,然后单击添加按钮创建新出站规则,接口选择WAN,源地址设置为LAN net,转换/目标设置选择虚拟的VIP WAN,单击“保存”,单击“应用更改”激活设置。
配置DHCP
在局域网部署DHCP,所有客户端都应该使用虚拟地址来代替通常传输的物理地址。两台防火墙在同时运行时,它们应该了解彼此的DHCP池,当 OPNsense转发DNS请求时,验证DHCP服务器是否提供正确的IP地址。DHCP获取的DNS和网关应该是虚拟VIP LAN地址。
在主、备防火墙上,分别转到服务>ISC DHCPv4,LAN选项卡,选择以下参数进行配置。
选项 | 值 |
---|---|
DNS服务器 | 10.10.10.200 |
网关 | 10.10.10.200 |
故障转移对端IP | 10.10.10.202 |
表 5. 主节点上的 DHCP 服务器选项
备份节点上配置如下:
选项 | 值 |
---|---|
DNS服务器 | 10.10.10.200 |
网关 | 10.10.10.200 |
故障转移对端IP | 10.10.10.201 |
表 6. 备份节点上的 DHCP 服务器选项
pfSync
为了启动同步过程,必须在主防火墙上分别配置pfSync和HA同步 (xmlrpc)。在主节点上启用pfSync,可以按照以下步骤操作:
导航到系统→高可用性→设置,选中同步状态选项,选择PFSYNC作为同步接口(也可以选择LAN接口作为同步接口,因为同步的数据量和次数非常少,这样可以少占用一个专用网络接口。),将同步对端 IP设置为 11.11.0.2。(这里使用备份防火墙的PFSYNC接口的IP地址)。将同步配置到IP设置为 11.11.0.2。输入远程系统用户名,例如root,输入远程系统密码,如opnsense。在服务选项,选择要同步到备份防火墙的设置,建议选中Web Gui、Unbound DNS、Virtual IPs、NAT、Network Time、Cron、DHCPD、Firewall Rules等几个选项。
备份防火墙上pfSync的配置,如下图所示:
HA同步
转到系统→高可用性→状态,如果能打开该页面,说明主、备防火墙已成功建立连接。点击状态下面的同步按钮,将配置同步到备份防火墙,然后点击下面的重启所有服务按钮,重启防火墙的各种服务。
测试
在测试之前,建议重启主、备防火墙。
从位于两个防火墙后面的客户端进行联网测试(客户端的网关和DNS应设置为虚拟VIP LAN地址),从主防火墙上断开WAN接口,应该能将连接转移到备份防火墙,而不会导致网络中断。
更新
为了最大限度地减少更新执行期间的中断,需要遵循以下步骤进行操作:
1、在备用防火墙上应用更新,然后重启备用防火墙。
2、在主防火墙上,转到接口→虚拟 IP →状态,然后选择进入持久 CARP 维护模式。现在备用防火墙已成为MASTER,验证所有服务(包括 DHCP、VPN 和 NAT)是否正常,确保备用防火墙接管正常。
3、更新主防火墙,重新启动后,在主防火墙上退出持久 CARP 维护模式。
自动操作
建议在执行维护时保持备份防火墙的完整性,也可以设置定期同步备份。主防火墙节点上有一个内置cron操作,可以定期同步配置。导航到系统 → 设置 → Cron,添加一个任务即可。
节点状态
导航至系统→高可用性→状态,查看先前配置的备份防火墙的状态。状态页面显示备份防火墙上运行的所有服务。如有必要,可以从此页面更新备份计算机并恢复服务。
可以导航到接口 → 虚拟IPs → 状态查看 HA 集群的状态。
状态页面列出了每个配置的carp VHID 组的活动状态。此外,状态页面还包括用于强制节点进入维护模式和禁用carp的选项。每个VIP 状态的详细描述如下。
- INIT:这通常表示接口有问题;通常,这是由于接口未断开或其他技术问题造成的。
- BACKUP:当处于备份状态时,此接口作为集群的一部分监视通告。如果暂时没有通告,它将过渡到主模式。
- MASTER:在监视网络通告时识别活动节点。如果检测到具有高级通告的节点,它可能会转换为备份状态(受抢占设置限制,可通过系统→高可用性→设置页面访问)。
- 禁用:选择此页面上的“暂时禁用 CARP”选项时禁用。
老师,你好!
我在虚拟机上部署OpenSense遇到了一点问题,想请教一下你,方便联系吗?
可以说一下问题情况,或参照相关文章自行解决。