我在网络和互联网之间设置了 2 台 OpenBSD 计算机作为防火墙。在本地网络上,fw1
有 IP 192.168.0.253
,fw2
有 IP 192.168.0.254
,它们192.168.0.1
使用 CARP 共享。在 WAN 上,它们有 IP192.168.1.253
和192.168.1.254
,并共享172.16.0.1
(真实 IP 是公共 IP)。我这样设置是为了节省公共 IP;我没有足够的 IP 给每个防火墙自己的 IP和在第三个上使用 CARP。
但是,CARP 似乎无法正常工作。当我降级时fw1
,内部 CARP 设备切换到备份模式。但是,外部接口仍处于主模式。奇怪的是,fw2
还当我降级时进入主模式fw1
,所以有 2 个主模式。
知道为什么该接口没有进入备份模式吗?
答案1
CARP 的默认行为是独立处理接口,因此您可以在同一个框中拥有一个主接口和另一个从属接口。
要改变这种行为,您必须将抢占标志更改为 1:
sysctl net.inet.carp.preempt=1
以下是 OpenBSD 常见问题解答的摘录:
网.inet.carp.preempt
允许冗余组中具有更好 advbase 和 advskew 的主机抢占主节点。此外,如果一个接口发生故障,此选项还可以启用一组接口的故障转移。如果一个启用了 CARP 的物理接口发生故障,CARP 将在 carp(4) 接口所属的接口组上将降级计数器 carpdemote 增加 1,从而导致所有组成员一起故障转移。默认情况下,net.inet.carp.preempt 为 0(禁用)。