防火墙双机热备,主要是提供冗余备份的功能,在网络发生故障的时候避免业务出现中断。防火墙双机热备组网根据防火墙的模式, 分路由模式下的双机热备组网和透明模式下的双机热备组网,下面分别根据防火墙的不同模式下的组网提供防火墙双机热备命令行说明。
防火墙的双机热备的配置主要涉及到 HRP 的配置, VGMP 的配置,以及 VRRP 的配置,防火墙的双机热备组网配置需要根据现网的业务和用户的需求来进行调整, 下面就防火墙的双机热备配置涉及到的命令行做一个解释说明。
1 HRP 命令行配置说明
HRP 是华为的冗余备份协议, Eudemon 防火墙使用此协议进行备份组网, 达到链路状态备份的目的,从而保证在设备发生故障的时候业务正常。
HRP 协议是华为自己开发的协议,主要是在 VGMP 协议的基础上进行扩展得到的;VGMP 是华为的私有协议,主要是用来管理 VRRP 的, VGMP 也是华为的私有协议,是在VRRP 的基础上进行扩展得到的。不管是 VGMP 的报文,还是 HRP 的报文,都是 VRRP 的报文,只是防火墙在识别这些报文的时候能根据自己定义的字段能判断出是 VGMP 的报文,HRP 的报文,或者是普通的 VRRP 的报文。
在 Eudemon 防火墙上, hrp 的作用主要是备份防火墙的会话表, 备份防火墙的 servermap表,备份防火墙的黑名单,备份防火墙的配置,以及备份 ASPF 模块中的公私网地址映射表和上层会话表等。
两台防火墙正确配置 VRRP, VGMP ,以及 HRP 之后,将会形成主备关系,这个时候防火墙的命令行上会自动显示防火墙状态是主还是备, 如果命令行上有 HRP_M 的标识, 表示此防火墙和另外一台防火墙进行协商之后抢占为主防火墙,如果命令行上有 HRP_S 的标识,表示此防火墙和另外一台防火墙进行协商之后抢占为备防火墙。 防火墙的主备状态只能在两台防火墙之间进行协商,并且协商状态稳定之后一定是一台为主状态另外一台为备状态,不可能出现两台都为主状态或者都是备状态的。
在防火墙的 HRP 形成主备之后, 我们称 HRP 的主备状态为 HRP 主或者是 HRP 备状态,在形成 HRP 的主备状态之后默认是一部分配置在主防火墙上配置之后能自动同步到备防火墙上的,而这些命令将不能在备防火墙的命令行上执行,这些命令包括 ACL ,接口加入域等,但其中一些命令行是不会从主防火墙上备份到备防火墙上。
HRP 的配置命令的功能和使用介绍如下:
hrp enable
: HRP使能命令,使能 HRP之后防火墙将形成主备状态。hrp configuration check acl
:检查主备防火墙两端的 ACL的配置是否一致。执行此命令之后,主备防火墙会进行交互,执行完之后可以通过命令行display hrpconfiguration check acl
来查看两边的配置是否一致。hrp configuration check hrp
:检查主备防火墙两端的 HRP的配置是否一致。执行此命令之后,主备防火墙会进行交互,执行完之后可以通过命令行display hrpconfiguration check acl
来查看两边的配置是否一致。hrp interface Ethernet/ GigabitEthernet
:添加防火墙配置会话备份通道。通常就是指防火墙心跳口,此接口用来备份防火墙的会话的。hrp interface Ethernet 1/0/0 high-availability
:配置防火墙的高可用性接口。主要是用来实现防火墙的会话快速备份,如果不配置 high-availability ,会话快速备份的命令将不能使能, 配置此命令之后, 此接口会被有限选择作为防火墙会话备份的接口。在防火墙上配置了 hrp interface 之后,防火墙选择备份通道的接口为:先选择配置的时候带了 high-availability 的接口,如果配置了多个带 high-availability 的接口,先选择槽位号和端口号比较小的接口,然后在选择槽位号和端口号比较小的不带high-availability 的接口。 接口发生故障导致接口上的 VRRP处于初始化状态或者是接口上的 VRRP所属的 VGMP没有使能的时候,防火墙会重新选择备份通道。学习更多网络技术,请关注微信公众号:网络技术干货圈hrp mirror session enable
:会话快速备份使能命令,此命令使能之后防火墙上对新建的会话或者是刷新的会话立即备份到对端防火墙上,在配置 high-availability 之后才能配置此命令。hrp mirror packet enable
:报文搬迁使能命令,此命令使能之后,如果 ICMP的应答报文或者是 TCP的 ACK报文在其中一台防火墙上找不到会话,会把报文搬迁到另外一台防火墙上,如果在另外一台防火墙上找到会话,报文根据会话转发,如果找不到会话,直接丢弃。此功能现在保留,但是基本上不再使用,因为防火墙会话快速备份使能之后会话在建立或者是刷新的时候马上就能备份到对端防火墙上,并且报文搬迁占用比较多的带宽,所以这个命令推荐不使用。hrp ospf-cost adjust-enable
:这个命令是在防火墙和路由器组网的时候使用的,在防火墙上配置这个命令后, 防火墙发布 OSPF的路由的时候, 会判断是主防火墙或者是备防火墙,如果是主防火墙,防火墙把学习到的路由直接发布出去,如果是备防火墙,防火墙把学习到的路由加上一个 COST值再发布出去,这个 COST值默认是 65535,可以根据需要进行调整,这样和防火墙相连的路由器在计算路由的时候,路由就都能指到主防火墙上, 路由器把报文转发到主防火墙上。 在使用防火墙和路由器进行组网起 OSPF协议的时候,尽量保证 OSPF的域小一些,这样在防火墙发生主备倒换的时候, OSPF的路由能尽快收敛,保证业务很快恢复。hrp auto-sync connection-status
:防火墙连接状态备份命令。防火墙会话备份不分防火墙是主防火墙或者是备防火墙,使能了次命令后,防火墙都能把自己建立的会话或者是刷新的会话备份到对端防火墙上。 此命令行在防火墙 hrp enable 执行之后就默认使能了。hrp auto-sync config
:防火墙配置备份命令。防火墙上使能此命令后,在主防火墙上配置的命令行如 ACL,域等都可以自动备份到备防火墙上,保证命令行能实时同步。此命令行在 hrp enable 之后就默认使能了,此时在备防火墙上是默认不能配置 ACL等配置的,但是如果需要单独配置,执行 undo hrp auto-sync config 就可以在备防火墙上配置此命令行了,主防火墙上执行 ACL等配置发送到备防火墙上不会备执行,如果在主防火墙上执行此命令,主防火墙上将不把配置发送到备防火墙上执行。hrp auto-sync config batch-backup
:防火墙配置批量备份使能命令。使能此命令,在防火墙发生主备倒换之后,新的主防火墙备自动把配置备份到新的备防火墙上。此命令默认是不使能的,现在也不推荐使用,因为批量备份将消耗大量的 CPU资源,可能在执行批量备份的时候影响某些业务。hrp sync config
:防火墙配置批量备份命令。执行此命令后主防火墙能把自己的配置发送到备防火墙上执行,此命令行在用户视图下使用,在使能了 hrp 之后才能使用。此命令默认是也不推荐使用,因为批量备份将消耗大量的 CPU资源,可能在执行批量备份的时候影响某些业务。hrp sync connection-status
:手工同步连接状态信息命令, 会进行会话,黑名单,地址转换表,以及 ARP表等的备份等,同时对于 Eudemon 1000来说还会刷新备份的通道。display hrp
:显示当前 HRP的状态信息,主要包括 HRP的备份通道, HRP的状态, hrp是否使能快速备份,为 MASTER 状态的 VGMP信息。display hrp verbose
:显示当前 HRP的详细状态信息。
2 VGMP 配置说明
VGMP (vrrp group management protocol )是 VRRP 的组管理协议,同样 VGMP 协议也是华为私有的协议。 VGMP 通过把 VRRP 加入到一个组中进行管理,通过 VGMP 报文和对端进行协商,确定自己和对端的 VGMP 的状态,根据 VGMP 的状态的主备,把 VGMP 组下面的 VRRP 的状态改成和 VGMP 的状态一致。 VGMP 状态也分 Master 和 Slave,同样 VGMP报文是在 VRRP 报文的基础上进行封装的,它通过 VRRP 报文通知对端自己的状态以及和对端进行协商。
防火墙的 VGMP 功能现在支持两台防火墙之间的 VGMP 协商,通过协商, 在两台防火墙上形成一主一备的状态,当其中主防火墙发生故障或者其他原因导致 VGMP 的优先级降低的时候,备防火墙的 VGMP 会抢占为主, 原来的主防火墙的 VGMP 会变成备,同时 VGMP组里面的 VRRP 也跟随这 VGMP 的状态的变化发生变化。通过 VGMP 来管理 VRRP,使VGMP 为主的防火墙对外发布 VGMP 组下面的所有的 VRRP 的虚地址,而 VGMP 为备的防火墙不对外发布 VRRP 虚地址,形成 VRRP 的冗余备份。
VGMP 的配置命令的功能和使用介绍如下:
vrrp group <1-16>
:创建 VGMP管理组。执行此命令行之后,创建一个 VGMP管理组,并进入此管理组视图,所有的 VGMP的配置都在 VGMP视图下进行配置。add interface Ethernet 1/0/7 vrrp vrid 1 :把接口 Ethernet1/0/7 下配置的 VRRP 1加入到此管理组进行管理。add interface Ethernet 1/0/7 vrrp vrid 1 data
:把接口 Ethernet1/0/7 下配置的VRRP 1加入到此管理组进行管理,并且把接口 Ethernet1/0/7 作为发送 VGMP数据报文的通道。配置了发送 VGMP的数据通道之后, VGMP才能使能。防火墙的配置同步是通过VGMP的数据通道进行发送的。add interface Ethernet 1/0/7 vrrp vrid 1 data transfer-only
: 把 接 口Ethernet1/0/7 下配置的 VRRP 1加入到此管理组进行管理,并且把接口 Ethernet1/0/7作为发送 VGMP数据报文的通道,并且此接口下的 VRRP的或者优先级发生变化的时候不参与到 VGMP优先级的计算。通常在防火墙上下行都是交换机组网的情况,心跳口上的VRRP可以以此种方式加入到 VGMP组中。add interface Ethernet1/0/7 vrrp vrid 1 data ip-link 1
:把接口 Ethernet1/0/7下配置的 VRRP 1加入到此管理组进行管理,并且把接口 Ethernet1/0/7 作为发送 VGMP数据报文的通道,同时在 VGMP上绑定 ip-link 功能。 ip-link 的使用介绍请参考其他文档。vrrp-group enable
:VGMP组使能命令。在配置了 VGMP的数据通道之后,此命令才可以执行, 执行此命令后, 防火墙会从数据通道发送 VGMP的报文和对端防火墙进行交互, 确定 VGMP的主备状态。vrrp-group preempt
:配置 VGMP组的抢占模式。此命令配置之后本端 VGMP和对端 VGMP进行协商,并进行抢占,如果优先级高就抢占为主,如果优先级低就被抢占为备。配置此命令后默认抢占延时为 0,即立即抢占。vrrp-group preempt delay <0-1800000>
:配置 VGMP组抢占延时,单位为毫秒( ms),如果本地的 VGMP组的优先级比对端的 VGMP的优先级高, 在延时配置的时间后 VGMP就抢占为 Master 状态。对于防火墙组网,我们建议的抢占方式是备防火墙抢占延时为 0,主防火墙配置抢占延时为 20000ms或者是不抢占。具体的配置在相关组网中详细说明如何配置防火墙的抢占方式。vrrp-group priority <1-254>
:配置 VGMP组的优先级。 配置 VGMP组的优先级后, VGMP和对端的防火墙的 VGMP进行协商,并确定 VGMP的主备状态。 默认使用这种方式作为 VGMP组的优先级,默认优先级是 100。VGMP组的优先级调整算法为:当前优先级-(当前优先级 /16 )。如果 VGMP组下的一个 VRRP变成初始化状态,则 VGMP组的优先级调整一次,同样如果配置的一个 ip-link 检测远端 IP 为不可达, VGMP组的优先级也会调整一次,每次都使用上面的算法进行调整。对于采用此种方式,建议主防火墙配置为 105,备防火墙使用默认配置 100。vrrp-group priority using-vrrppriority
:使用 VRRP的优先级作为 VGMP组的优先级。配置 VGMP组的优先级后, VGMP和对端的防火墙的 VGMP进行协商,并确定 VGMP的主备状态。如果采用此种方式决定 VGMP组的优先级, 首先把 VGMP组下所有的 VRRP的优先级加起来,再除以 VGMP组下的 VRRP的个数。如果还在 VGMP下面配置了 ip-link ,并且ip-link 检测到远端的 IP 地址不可达,计算出 ip-link 调整的优先级,计算方法为ip-link 绑定的 VRRP的优先级除以 16,然后用根据 VGMP组下的所有的 VRRP计算出来的优先级减去 ip-link 调整的优先级, 得到最终的 VGMP组的优先级。 采用此种方式, 建议VRRP的优先级主防火墙配置为 105,备防火墙配置为默认的 100。vrrp-group priority plus <0-254>
:此命令也是用来调整 VGMP的优先级的,但是现在不再使用,也不推荐配置此命令。vrrp-group manual-preempt
: VGMP组手动抢占命令。在 VGMP配置了抢占延时的时候,如果延时时间没有到, 即使本地防火墙的 VGMP组的优先级比对端高, 也不进行抢占。 如果在 VGMP组下面配置了不抢占,即使本地优先级比对端高,也不进行抢占。但是通过vrrp-group manual-preempt 可以进行手动抢占,如果本地 VGMP组优先级高,配置的抢占延时没有到或者配置不抢占,通过此命令本地 VGMP能马上抢占为 Master 状态。请关注微信公众号:网络技术干货圈vrrp-group timer hello <200-60000>
:VGMP组发送 VGMP的 hello 报文的时间间隔,单位为毫秒( ms),默认值为 1000ms。通过配置 VGMP组下的 VGMP的 hello 报文的发送时间间隔, VGMP组能更快的进行抢占切换。建议采用默认值,如果参数设置的太小,导致防火墙发送和接受的 VGMP的报文的数量会很多,会占用较多的 CPU资源,并且配置1s 的 hello 报文的时间间隔也能满足现网故障反应时间间隔。vrrp-group group-send
:VGMP组下的所有数据通道都发送 VGMP报文。配置此命令后,VGMP发送数据报文和 hello 报文的时候,加入此 VGMP组的每个数据通道都发送一次。此命令默认不使能, VGMP会自动选择一个数据通道作为发送 VGMP报文的通道,并且在检测到数据通道发生故障的时候重新进行选择。
3 VRRP 配置说明
防火墙的 VRRP 和标准的 VRRP 协议一样,下面大概说说 VRRP 的配置,详细信息可以找相关的 RFC 查看。在防火墙上, 如果 VRRP 加入到 VGMP 中,VRRP 的状态由 VGMP决定,不再自己协商。
VRRP 的配置命令的功能和使用介绍如下:
vrrp vrid 1 virtual-ip 1.1.1.100
:在接口视图下配置 VRRP 。此命令是在接口上配置VRRP的 ID 以及 VRRP的虚地址。vrrp vrid 1 track Ethernet1/0/6
:配置 VRRP监视的端口。配置监视的端口之后,如果此端口的协议状态 down,VRRP的优先级会自动调整。默认是调整 10,可以在此命令后面继续配置下降多少。vrrp vrid 1 priority <1-254>
:配置 VRRP的优先级。默认值是 100,如果是主防火墙,建议配置为 105,备防火墙建议配置为默认值 100。vrrp vrid 1 timer advertise <1-255>
:VRRP的 hello 报文发送的时间间隔。默认 VRR的 hello 报文的发送时间间隔为 1s,建议使用默认配置。vrrp vrid 1 preempt-mode
:VRRP的抢占参数。如果 VRRP加入 VGMP组中, VRRP的抢占参数不再生效。
4 IP-Link 配置说明
4.1 ip-link 功能说明:
防火墙 ip-link 功能是一种检测三层链路是否可达的功能, 基本原理就是在防火墙上配置 ip-link 使能并配置 ip-link 的目的地址之后,防火墙会向该目的地址发送 icmp 的报文判断该目的地址是否可达, 判断从防火墙到该目的地址三层链路是否可通, 应用在双机热备组网中, VGMP能根据 ip-link 特测的结果调整 VGMP的优先级,从而使防火墙在和路由器组网中能在发生故障的时候进行主备倒换。
防火墙在使能 ip-link 功能时,需要判断 ip-link 的目的地址的设备能和防火墙进行正常的 icmp 交互,这样防火墙才能正确的检测该目的地址,从而在该设备发生故障的时候正确引导主备防火墙进行主备切换, 所以 ip-link 使用的前提条件是 ip-link 配置的目的地址的设备能正常的和防火墙进行 icmp 会话。
4.2 ip-link 在组网中的应用:
防火墙的 ip-link 功能一般使用的双机热备组网环境中常见组网如下图所示:
如上图所示 , 如果在防火墙上不使能 ip-link 功能,正常情况下报文会通过防火墙 A进行转发,这时必须保证防火墙 A的上下行设备都是正常工作。 但是一旦和防火墙 A相连的路由器 A的 0/1 口发生故障,报文不能从该口进行转发,此时防火墙 A的 VRRP是检测不到路由器 A的 0/1 口发生故障的,报文会继续从防火墙 A转发到路由器 A,导致业务中断。如果在防火墙 A上使能 ip-link 的功能,使得 ip-link 的目的地址是路由器 A的 0/1 口,当路由器 A的 0/1 口发生故障的时候,防火墙 A能探测到路由器 A的 0/1 接口的 IP 地址是不可达的, 此时防火墙 A认为从本地 0/0 口出去的链路不通, 这个时候防火墙 A会自动调整优先级,使防火墙 A 和防火墙 B 发生主备倒换,防火墙 A 上面的业务全部转移到防火墙 B上,保证了业务的正常转发。
4.3 防火墙 ip-link 的配置:
在防火墙上配置 ip-link 功能时首先要确认 ip-link 配置中的目的地址的设备在正常的情况下能正确的和防火墙进行 icmp 会话。相关配置介绍如下:
1:使能防火墙 ip-link 功能
在系统视图下执行命令 ip-link check enable
如:
[Eudemon]ip-link check enable
2:配置 ip-link 其他参数
代码语言:txt复制ip-link INTEGER<1-32> [ vpn-instance vpn-name] destination X.X.X.X [ interface | timer ]
上述命令参数含义可参考命令行给出的提示信息。
3:vrrp 绑定 ip-link
进入 VGMP 的视图
代码语言:txt复制Vrrp group 1
配置 ip-link
代码语言:txt复制[E1000_A-vrrpgroup-1]add int Ethernet 4/0/0 vrrp vrid 1 ip-link 1
4.4 防火墙 ip-link 的配置:
配置防火墙 ip-link 使能之后, 防火墙将向 ip-link 目的地址的设备发送 icmp 报文检测目的设备是否正常。 我们通过查看 vrrp 组的状态可以看到 ip-link 已经开始影响 vrrp 组的优先级了,防火墙 ip-link 检查调整优先级的大小和加入 vrrp 管理组的接口 down 掉调整 vrrp 管理组的优先级相同。
代码语言:txt复制HRP_M[E1000_A]dis v v
Vrrp Group 16
state : Master
Priority : 98 ―――― >此处优先级会根据 ip-link 检查的结果进行调整
Preempt : YES Delay Time : 0
Timer : 1000
Group-Send : YES
Peer Status : OnLine
Vrrp number : 3
: Same
interface : Ethernet4/0/7, vrrp id : 254 Up
interface : Ethernet4/0/0, vrrp id : 2 Up
interface : Ethernet4/0/1, vrrp id : 1 Down, ip-link: 32 Down