为什么会出现所谓的“双机部署”呢?由于网络发展非常迅速,很多业务也越来越重要,网络不间断传输要求得到一定的保障,若我们在出口只部署了一台防火墙或者网络中只部署了一台路由器,如下图所示,那么只要其中一台宕机,那么网络必然中断,也就是单点故障。
因此我们在关键的地方,部署双机,可以提升网络的可靠性,利用相关技术搭建,可以保证一台宕机,另一台可以接管工作。
一、路由器的双机部署
传统的网络层设备,只需要做好路由表的备份即可保证业务的转发,普通的路由器或者交换机是不会记录报文的应用层信息和报文的交互状态,只根据路由表进行报文的转发。
如上图,路由器R2、R4与R1、R3之间运行OSPF协议,查看接口的默认值,默认值为1,此处我们手动设置R2的接口OSPF cost为10,所以R3上看R2所在链路的Cost值为12,R4所在链路的Cost值为3,因此查看路由表,可以看到,最优路径为R4所在链路,即开销最小的方向。
1.1.1.0/24下一跳为R4,开销为3。
[R1]ospf
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.1.3.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.1.4.0 0.0.0.255
[R2]ospf
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.1.4.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 10.1.2.0 0.0.0.255
[R3]ospf
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 10.1.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[R4]ospf
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 10.1.3.0 0.0.0.255
//手动设置R2的接口OSPF cost为10
[R2-GigabitEthernet0/0/0]interface g0/0/1
[R2-GigabitEthernet0/0/1]ospf cost 10
[R2-GigabitEthernet0/0/1]interface g0/0/2
[R2-GigabitEthernet0/0/2]ospf cost 10
//查看路由表
[R3]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 16 Routes : 16
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.0/24 OSPF 10 3 D 10.1.1.253 GigabitEthernet
0/0/1
10.1.1.0/24 Direct 0 0 D 10.1.1.254 GigabitEthernet
0/0/1
10.1.1.254/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/1
10.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/1
10.1.2.0/24 Direct 0 0 D 10.1.2.254 GigabitEthernet
0/0/2
10.1.2.254/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/2
10.1.2.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/2
10.1.3.0/24 OSPF 10 2 D 10.1.1.253 GigabitEthernet
0/0/1
10.1.4.0/24 OSPF 10 3 D 10.1.1.253 GigabitEthernet
0/0/1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.1.0/24 Direct 0 0 D 192.168.1.254 GigabitEthernet
0/0/0
192.168.1.254/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
192.168.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
[R3]
当R4故障,R4所在链路开销值会变为无穷大,此时R2所在链路路劲开销仍为12,网络会重新收敛,路由表更新,可重新查看路由表,目的地址1.1.1.0/24下一跳以及开销是否与R2对应,即可验证成功,路由收敛时间短,业务传输可以看作不会中断。
//模拟链路故障或者设备故障
[R4]interface g0/0/0
[R4-GigabitEthernet0/0/0]shutdown
[R4-GigabitEthernet0/0/0]
//查看路由表
[R3]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 15 Routes : 15
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.0/24 OSPF 10 12 D 10.1.2.253 GigabitEthernet
0/0/2
10.1.1.0/24 Direct 0 0 D 10.1.1.254 GigabitEthernet
0/0/1
10.1.1.254/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/1
10.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/1
10.1.2.0/24 Direct 0 0 D 10.1.2.254 GigabitEthernet
0/0/2
10.1.2.254/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/2
10.1.2.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/2
10.1.4.0/24 OSPF 10 11 D 10.1.2.253 GigabitEthernet
0/0/2
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.1.0/24 Direct 0 0 D 192.168.1.254 GigabitEthernet
0/0/0
192.168.1.254/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
192.168.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
[R3]
二、防火墙的双机部署
把上述路由器换成防火墙,情况就变得不一样了,防火墙会对流量的首包进行检测,建立会话表用来记录报文的状态信息等,这条流量的后续报文只有匹配会话才能够通过防火墙并完成转发,无法匹配则需要走首包流程建立会话,可能会不匹配安全策略等原因而被丢弃。
[USG_A]firewall zone trust
[USG_A-zone-trust]add interface g1/0/1
[USG_A-zone-trust]add interface g1/0/0
[USG_B]firewall zone trust
[USG_B-zone-trust]add interface g1/0/1
[USG_B-zone-trust]add interface g1/0/0
[USG_A]undo firewall packet-filter basic-protocol enable
[USG_B]undo firewall packet-filter basic-protocol enable
[USG_A]ospf
[USG_A-ospf-1]area 0
[USG_A-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[USG_A-ospf-1-area-0.0.0.0]network 10.1.3.0 0.0.0.255
[USG_B]ospf
[USG_B-ospf-1]area 0
[USG_B-ospf-1-area-0.0.0.0]network 10.1.2.0 0.0.0.255
[USG_B-ospf-1-area-0.0.0.0]network 10.1.4.0 0.0.0.255
[USG_B]interface g1/0/1
[USG_B-GigabitEthernet1/0/1]ospf cost 10
[USG_B-GigabitEthernet1/0/1]interface g1/0/0
[USG_B-GigabitEthernet1/0/0]ospf cost 10
依照前面的组网架构,将路由器换成防火墙,OSPF配置依照上述(包括OSPF COST),根据路由,一开始也会选择左边的防火墙A进行转发,防火墙A也会建立相应的会话表。
[R3]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 16 Routes : 16
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.0/24 OSPF 10 3 D 10.1.1.253 GigabitEthernet
0/0/1
10.1.1.0/24 Direct 0 0 D 10.1.1.254 GigabitEthernet
0/0/1
10.1.1.254/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/1
10.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/1
10.1.2.0/24 Direct 0 0 D 10.1.2.254 GigabitEthernet
0/0/2
10.1.2.254/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/2
10.1.2.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/2
10.1.3.0/24 OSPF 10 2 D 10.1.1.253 GigabitEthernet
0/0/1
10.1.4.0/24 OSPF 10 3 D 10.1.1.253 GigabitEthernet
0/0/1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.1.0/24 Direct 0 0 D 192.168.1.254 GigabitEthernet
0/0/0
192.168.1.254/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
192.168.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
[R3]
[USG_A]display firewall session table
2023-12-28 13:27:05.970
Current Total Sessions : 1
ftp VPN: public --> public 192.168.1.1:2049 +-> 1.1.1.1:21
[USG_B]display firewall session table
2023-12-28 13:27:33.140
Current Total Sessions : 0
那么问题来了,当防火墙A故障,依照之前的路由的双机部署,会让防火墙B转发流量,但是,防火墙B上没有之前流量的会话表,业务报文找不到会话而被防火墙B丢弃,业务因此中断,此时用户需要重新发出请求,防火墙B建立会话,才能够让业务继续走下去。
[USG_A]interface g1/0/1
[USG_A-GigabitEthernet1/0/1]shutdown
[R3]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 15 Routes : 15
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.0/24 OSPF 10 12 D 10.1.2.253 GigabitEthernet
0/0/2
[USG_B]display firewall session table
2023-12-28 13:28:55.730
Current Total Sessions : 1
ospf VPN: public --> public 10.1.4.253:0 --> 10.1.4.254:0
那我们该怎么办,才能让业务不中断呢?只需要使防火墙A的会话表、Server-map表等重要的状态信息和配置信息,能够传给防火墙B即可,这时候防火墙B就有了之前流量的相关信息,也就可以正常的工作了。这就是防火墙双机热备的HRP功能!
HRP提供了专门的备份通道,用于两台防火墙之间的协商主备状态、备份会话、Server-map表等重要的状态信息和配置信息。主用设备防火墙会处理业务并将业务的重要状态信息和配置信息通过备份通道实时同步给备用防火墙,当主用设备故障,备份设备防火墙已经拥有之前业务的备份状态信息等,因此业务报文可以正常匹配会话而被转发,从而避免了业务的中断。
参考资料:防火墙和VPN技术与实践——李学昭