虚墙Vsys
截取自:2023-03-24 网工进阶(四十)华为防火墙技术—概述、基本概念(安全区域、安全策略、会话表)、ASPF、虚拟系统_华为防火墙全局开启aspf-CSDN博客
虚拟系统(Virtual System)是在一台物理设备上划分出的多台相互独立的逻辑设备。
可以从逻辑上将一台FW设备划分为多个虚拟系统。每个虚拟系统相当于一台真实的设备,有自己的接口、地址集、用户/组、路由表项以及策略,并可通过虚拟系统管理员进行配置和管理。
虚拟系统特点
每个虚拟系统由独立的管理员进行管理,使得多个虚拟系统的管理更加清晰简单,所以非常适合大规模的组网环境。
每个虚拟系统拥有独立的配置及路由表项,这使得虚拟系统下的局域网即使使用了相同的地址范围,仍然可以正常进行通信。
可以为每个虚拟系统分配固定的系统资源,保证不会因为一个虚拟系统的业务繁忙而影响其他虚拟系统。
虚拟系统之间的流量相互隔离,更加安全。在需要的时候,虚拟系统之间也可以进行安全互访(通过虚拟接口virtual-if)。
虚拟系统实现了硬件资源的有效利用,节约了空间、能耗以及管理成本。
虚拟系统原理
FW上存在两种类型的虚拟系统,根系统(public)、虚拟系统(VSYS)。
根系统:管理员对FW进行配置等同于对根系统进行配置。启用虚拟系统功能后,根系统会继承先前FW上的配置。
虚拟系统:在FW上划分出来的、独立运行的逻辑设备。
创建虚拟系统时自动生成的VPN实例
创建虚拟系统时,会自动生成相同名字的VPN实例。
个人理解为虚拟系统就是新概念的VPN实例,具备VPN实例的特性同时还具备防火墙的相关功能。
设备使用VSYS ID来区分不同的虚拟系统,这是虚拟系统实现资源、配置和业务虚拟化的关键。
每个虚拟系统都有且仅有一个唯一的VSYS ID值,VSYS ID可以在创建虚拟系统时指定,如果未指定VSYS ID,则设备会在虚拟系统创建时自动为虚拟系统分配一个未被占用的VSYS ID值。
# 查看设备的虚拟系统信息
<HUAWEI> display vsys
Total Virtual system Configured: 2 Remained : 4093
---------------------------------------------------------
Name ID Startup Time
---------------------------------------------------------
public 0 2019/10/01 00:00:00
vsysa 1 2019/10/01 00:00:00
---------------------------------------------------------
设备上存在两种形态的VPN实例:
-
创建虚拟系统时自动生成的VPN实例。
创建虚拟系统时,设备会自动生成一个与虚拟系统同名的VPN实例。该VPN实例与虚拟系统绑定,不能单独删除,实例ID与VSYS ID一致。虚拟系统下不能创建其他的VPN实例,也不能删除默认绑定的VPN实例,删除虚拟系统时与其绑定的VPN实例会同步删除。根系统下有一个默认的公网实例public,VSYS ID和实例ID的取值均为0。
-
在设备上手动创建的VPN实例。
管理员可以使用ip vpn-instance vpn-instance-name命令手动创建VPN实例。此类VPN实例的主要作用是用来做路由隔离,实例ID从整机虚拟系统最大规格数+1开始计数。此类VPN实例与虚拟系统无关,VPN实例的命名不能与已存在的虚拟系统名称相同,且不能命名为public或root。
操作配置
-
启用虚拟系统功能。
vsys enable
-
创建虚拟系统,并进入虚拟系统的管理视图。
vsys name 名称
-
给虚拟系统划分资源:
assign interface assign vlan # 划分公网IP assign global-ip 虚拟系统中配置NAT地址池或NAT Server Global地址时,需要使用公网IP地址。 此时,必须使用在创建虚拟系统时为虚拟系统分配的公网IP地址,否则会导致相关配置下发失败。
-
从根系统的系统视图切换到虚拟系统的用户视图
switch vsys 虚墙名称
进入虚墙之后,与正常防火墙相似,原防火墙具备的在虚墙中多数功能都具备。自行探索。
应用案例
操作思路:
1、准备环境,LSW4创建相应的VPN实例,绑定相应的VLAN。
2、创建三个OSPF进程,公用OSPF、VPN01的OSPF、VPN02的OSPF。将相应接口宣告入OSPF中,接口属于点对点网络类型。
3、防火墙上创建虚墙,绑定接口、安全域。
4、配置虚墙的OSPF与LSW4的OSPF进行对接,实现公用路由与VPN实例路由流量互传。LSW4上配置3类LSA过滤掉对方的VPN实例明细路由。
5、配置防火墙策略,放行相应内部业务访问互联网业务。
1、LSW4创建并绑定相应IP地址
# 公用实例配置
[LSW4]vlan batch 1000 to 1004 10 20
[LSW4]int vl 1000
[LSW4-Vlanif1000]ip add 10.1.14.4 24
[LSW4-Vlanif1000]int vl 1002
[LSW4-Vlanif1002]ip add 10.1.34.6 30
[LSW4-Vlanif1002]int vl 1004
[LSW4-Vlanif1004]ip add 10.1.34.14 30
[LSW4]int g0/0/1
[LSW4-GigabitEthernet0/0/1]port link access
[LSW4-GigabitEthernet0/0/1]port default vlan 1000
[LSW4-GigabitEthernet0/0/1]
[LSW4-GigabitEthernet0/0/1]int g0/0/2
[LSW4-GigabitEthernet0/0/2]port link trunk
[LSW4-GigabitEthernet0/0/2]port trunk allow vlan 1001 to 1004
[LSW4-GigabitEthernet0/0/2]
[LSW4-GigabitEthernet0/0/2]int g0/0/3
[LSW4-GigabitEthernet0/0/3]port link access
[LSW4-GigabitEthernet0/0/3]port default vlan 10
[LSW4-GigabitEthernet0/0/3]
[LSW4-GigabitEthernet0/0/3]int g0/0/4
[LSW4-GigabitEthernet0/0/4]port link access
[LSW4-GigabitEthernet0/0/4]port default vlan 20
[LSW4-GigabitEthernet0/0/4]quit
# 创建VPN实例,绑定VLAN及IP地址
[LSW4]ip vpn-instance VPN01
[LSW4-vpn-instance-VPN01]ipv4
[LSW4-vpn-instance-VPN01-af-ipv4]quit
[LSW4-vpn-instance-VPN01]quit
[LSW4]
[LSW4]ip vpn-instance VPN02
[LSW4-vpn-instance-VPN02]ipv4
[LSW4-vpn-instance-VPN02-af-ipv4]quit
[LSW4-vpn-instance-VPN02]quit
[LSW4]
[LSW4]int vlan 1001
[LSW4-Vlanif1001]ip bind vpn VPN01
[LSW4-Vlanif1001]ip add 10.1.34.2 30
[LSW4-Vlanif1001]int vlan 1003
[LSW4-Vlanif1003]ip bind vpn VPN02
[LSW4-Vlanif1003]ip add 10.1.34.10 30
[LSW4-Vlanif1003]int vlan 10
[LSW4-Vlanif10]ip bind vpn VPN01
[LSW4-Vlanif10]ip add 192.168.10.254 24
[LSW4-Vlanif10]int vlan 20
[LSW4-Vlanif20]ip bind vpn VPN02
[LSW4-Vlanif20]ip add 192.168.20.254 24
2、配置LSW4的OSPF进程
- 划分VLAN1000为Area0区域。
- 划分VLAN10、VLAN1001、1002为Area1区域。
- 划分VLAN20、VLAN1003、1004为Area2区域。
# 配置公用OSPF进程
[LSW4]ospf 1 router-id 4.4.4.4
[LSW4-ospf-1]area 0
[LSW4-ospf-1-area-0.0.0.0]network 10.1.14.4 0.0.0.0
[LSW4-ospf-1-area-0.0.0.0]quit
[LSW4-ospf-1]area 1
[LSW4-ospf-1-area-0.0.0.1]network 10.1.34.6 0.0.0.0
[LSW4-ospf-1-area-0.0.0.1]quit
[LSW4-ospf-1]area 2
[LSW4-ospf-1-area-0.0.0.2]network 10.1.34.14 0.0.0.0
[LSW4-ospf-1-area-0.0.0.2]quit
[LSW4-ospf-1]quit
# 配置VPN01实例OSPF进程
[LSW4]ospf 2 vpn-instance VPN01 router-id 4.4.4.4
[LSW4-ospf-2]vpn-instance-capability simple
[LSW4-ospf-2]area 1
[LSW4-ospf-2-area-0.0.0.1]network 10.1.34.2 0.0.0.0
[LSW4-ospf-2-area-0.0.0.1]network 192.168.10.0 0.0.0.255
[LSW4-ospf-2-area-0.0.0.1]quit
[LSW4-ospf-2]quit
[LSW4]ospf 3 vpn-instance VPN02 router-id 4.4.4.4
[LSW4-ospf-3]vpn-instance-capability simple
[LSW4-ospf-3]area 2
[LSW4-ospf-3-area-0.0.0.2]network 10.1.34.10 0.0.0.0
[LSW4-ospf-3-area-0.0.0.2]network 192.168.20.0 0.0.0.255
[LSW4-ospf-3-area-0.0.0.2]quit
[LSW4-ospf-3]quit
# vpn-instance-capability simple
在设备上部署OSPF VPN多实例时,如果有Type3、Type5或Type7 LSA中设置DN Bit,就会导致这些路由无法计算,因为OSPF进行路由计算会进行防环路检测。这种情况下,通过配置vpn-instance-capability simple命令可以取消OSPF路由环路检测,不检查DN Bit和Route-tag而直接计算出所有OSPF路由,Route-tag恢复为缺省值1。
# 给LSW4所有OSPF接口类型修改成p2p
# AR当作边界路由器,已经配置了OSPF并宣告了测试接口与缺省路由。
[LSW4]int vlan 1000
[LSW4-Vlanif1000]ospf network-type p2p
[LSW4-Vlanif1000]int vlan 1001
[LSW4-Vlanif1001]ospf network-type p2p
[LSW4-Vlanif1001]int vlan 1002
[LSW4-Vlanif1002]ospf network-type p2p
[LSW4-Vlanif1002]int vlan 1003
[LSW4-Vlanif1003]ospf network-type p2p
[LSW4-Vlanif1003]int vlan 1004
[LSW4-Vlanif1004]ospf network-type p2p
[LSW4-Vlanif1004]quit
3、配置防火墙虚墙
- ENSP使用防火墙USG6000V,默认账号admin,默认密码Admin@123。
# 配置基础信息
[FW3]vlan batch 1001 to 1004
[FW3]int g1/0/0
[FW3-GigabitEthernet1/0/0]port trunk allow vlan 1001 to 1004
[FW3-GigabitEthernet1/0/0]quit
# 启用虚墙功能
[FW3]vsys enable
# 创建虚墙
[FW3]vsys name VPN01
[FW3-vsys-VPN01]ass
[FW3-vsys-VPN01]assign vlan 1001
[FW3-vsys-VPN01]assign vlan 1002
[FW3-vsys-VPN01]vsys name VPN02
[FW3-vsys-VPN02]assign vlan 1003
[FW3-vsys-VPN02]assign vlan 1004
[FW3-vsys-VPN02]quit
# 配置VLANif接口
[FW3]int vlan 1001
[FW3-Vlanif1001]ip add 10.1.34.1 30
[FW3-Vlanif1001]int vlan 1002
[FW3-Vlanif1002]ip add 10.1.34.5 30
[FW3-Vlanif1002]int vlan 1003
[FW3-Vlanif1003]ip add 10.1.34.9 30
[FW3-Vlanif1003]int vlan 1004
[FW3-Vlanif1004]ip add 10.1.34.13 30
[FW3-Vlanif1004]quit
- 实例所属接口为Trust区域,非实例接口为Untrust区域。
- 用户流量从Trust进入,从Untrust离开回到交换机上。同理外网流量返回时也需要先经过Untrust区域再到Trust区域。
# 将VPN01 接口划分入安全域
[FW3]switch vsys VPN01
<FW3-VPN01>sys
[FW3-VPN01]firewall zone trust
[FW3-VPN01-zone-trust]add int vlan 1001
[FW3-VPN01-zone-trust]quit
[FW3-VPN01]firewall zone untrust
[FW3-VPN01-zone-untrust]add int vlan 1002
[FW3-VPN01-zone-untrust]quit
# 将VPN02 接口划分入安全域
[FW3]switch vsys VPN02
<FW3-VPN01>sys
[FW3-VPN01]firewall zone trust
[FW3-VPN01-zone-trust]add int vlan 1003
[FW3-VPN01-zone-trust]quit
[FW3-VPN01]firewall zone untrust
[FW3-VPN01-zone-untrust]add int vlan 1004
[FW3-VPN01-zone-untrust]quit
4、配置虚墙OSPF进程
# 配置开启基于BFD、BGP、HRP、DHCP单播报文以及OSPF单播报文的安全策略控制开关。
# 开启该功能后,这些报文的转发受安全策略控制,可通过配置安全策略或者缺省包过滤规则来控制这几种类型报文的转发。
# 关闭该功能后,设备将直接转发这些报文,即使已配置动作为deny的安全策略,也不生效。
# 通过关闭该功能,可以实现不用配置防火墙策略建立起OSPF连接。
[FW3]undo firewall packet-filter basic-protocol enable
# 配置VPN01实例OSPF
[FW3]ospf 1 vpn VPN01 router-id 3.3.3.3
[FW3-ospf-1]vpn-instance simple
[FW3-ospf-1]area 1
[FW3-ospf-1-area-0.0.0.1]network 10.1.34.1 0.0.0.0
[FW3-ospf-1-area-0.0.0.1]network 10.1.34.5 0.0.0.0
[FW3-ospf-1-area-0.0.0.1]quit
[FW3-ospf-1]quit
# 配置VPN02实例OSPF
[FW3]ospf 2 vpn VPN02 router-id 3.3.3.3
[FW3-ospf-2]vpn-instance simple
[FW3-ospf-2]area 2
[FW3-ospf-2-area-0.0.0.2]network 10.1.34.9 0.0.0.0
[FW3-ospf-2-area-0.0.0.2]network 10.1.34.13 0.0.0.0
[FW3-ospf-2-area-0.0.0.2]quit
[FW3-ospf-2]quit
# 配置接口网络类型
[FW3]int vlan 1001
[FW3-Vlanif1001]ospf network-type p2p
[FW3-Vlanif1001]int vlan 1002
[FW3-Vlanif1002]ospf network-type p2p
[FW3-Vlanif1002]int vlan 1003
[FW3-Vlanif1003]ospf network-type p2p
[FW3-Vlanif1003]int vlan 1004
[FW3-Vlanif1004]ospf network-type p2p
# 此时可在LSW4的VPN01、VPN02实例可以学习到对方的路由
# 只提取出重要的几条路由显示
[LSW4]dis ip rou vpn VPN01
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 1 D 10.1.34.1 Vlanif1001
10.1.34.2/32 Direct 0 0 D 127.0.0.1 Vlanif1001
10.1.34.4/30 OSPF 10 2 D 10.1.34.1 Vlanif1001
10.1.34.8/30 OSPF 10 4 D 10.1.34.1 Vlanif1001
10.1.34.12/30 OSPF 10 3 D 10.1.34.1 Vlanif1001
192.168.10.0/24 Direct 0 0 D 192.168.10.254 Vlanif10
192.168.20.0/24 OSPF 10 5 D 10.1.34.1 Vlanif1001
[LSW4]dis ip rou vpn VPN02
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 1 D 10.1.34.9 Vlanif1003
10.1.34.0/30 OSPF 10 4 D 10.1.34.9 Vlanif1003
10.1.34.4/30 OSPF 10 3 D 10.1.34.9 Vlanif1003
10.1.34.12/30 OSPF 10 2 D 10.1.34.9 Vlanif1003
192.168.10.0/24 OSPF 10 5 D 10.1.34.9 Vlanif1003
192.168.20.0/24 Direct 0 0 D 192.168.20.254 Vlanif20
# 于LSW4上进行互相过滤掉对方实例的明细路由
# 过滤VLAN10业务明细路由,放行其它路由。
# 如果不放行其它路由,那么Area0路由将无法同步到Area1区域中。
[LSW4]ip ip-prefix deny_VPN01 deny 192.168.10.0 24
[LSW4]ip ip-prefix deny_VPN01 permit 0.0.0.0 0 less-equal 32
# 过滤VLAN20业务明细路由,放行其它路由
[LSW4]ip ip-prefix deny_VPN02 deny 192.168.20.0 24
[LSW4]ip ip-prefix deny_VPN02 permit 0.0.0.0 0 less-equal 32
# 绑定于公用OSPF进程中的区域1、区域2上
[LSW4]ospf 1
[LSW4-ospf-1]area 1
# 拒绝VLAN20 import进入Area1中
[LSW4-ospf-1-area-0.0.0.1]filter ip-prefix deny_VPN02 import
[LSW4-ospf-1-area-0.0.0.1]quit
[LSW4-ospf-1]area 2
[LSW4-ospf-1-area-0.0.0.2]filter ip-prefix deny_VPN01 import
# 再次查看OSPF实例路由表,只显示默认路由及其它设备互联的地址了。
# 对方的业务明细路由就过滤掉了。
[LSW4]dis ip rou vpn VPN01
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 1 D 10.1.34.1 Vlanif1001
10.1.34.2/32 Direct 0 0 D 127.0.0.1 Vlanif1001
10.1.34.4/30 OSPF 10 2 D 10.1.34.1 Vlanif1001
10.1.34.8/30 OSPF 10 4 D 10.1.34.1 Vlanif1001
10.1.34.12/30 OSPF 10 3 D 10.1.34.1 Vlanif1001
192.168.10.0/24 Direct 0 0 D 192.168.10.254 Vlanif10
[LSW4]dis ip rou vpn VPN02
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 1 D 10.1.34.9 Vlanif1003
10.1.34.0/30 OSPF 10 4 D 10.1.34.9 Vlanif1003
10.1.34.4/30 OSPF 10 3 D 10.1.34.9 Vlanif1003
10.1.34.12/30 OSPF 10 2 D 10.1.34.9 Vlanif1003
192.168.20.0/24 Direct 0 0 D 192.168.20.254 Vlanif20
5、放行防火墙策略
- 此时解决了网络连通性问题,由于流量都经过防火墙,故需要在防火墙上放行业务网段访问互联网。
- 即只需要放行Trust–》Untrust区域,源地址为VLAN10、VLAN20即可。
- 由于流量经过虚墙,故需要在两台虚墙上配置放行策略。
# 配置VPN01安全策略
[FW3]switch vsys VPN01
<FW3-VPN01>sys
[FW3-VPN01]security-policy
[FW3-VPN01-policy-security]rule name VPN01_VLAN10_ToInternet
# 由于字符较长,此处只粘贴命令
source-zone trust
destination-zone untrust
source-address 192.168.10.0 24
action permit
# 至此,VPN01安全策略配置完毕
# 配置VPN02安全策略
[FW3]switch vsys VPN02
<FW3-VPN01>sys
[FW3-VPN01]security-policy
[FW3-VPN01-policy-security]rule name VPN02_VLAN20_ToInternet
source-zone trust
destination-zone untrust
source-address 192.168.20.0 24
action permit
# 至此,VPN02安全策略配置完毕
6、测试连通性
- VPN01实例PC3主机访问测试接口成功,并能在防火墙上看到会话信息。
- VPN02实例PC4主机访问测试接口成功,并能在防火墙上看到会话信息。
可靠性应用
HRP协议
HRP是承载在VGMP(Vrrp Group Management Protocol)报文上进行传输的,在Master和Backup防火墙设备之间备份关键配置命令和会话表状态信息,是双机热备协议。
HRP可同步防火墙之间的ARP信息、NAT/PAT信息,以及防火墙上配置的安全策略信息等,能够保证在主备中的任何一个防火墙的回包流量能够顺利接收。而且还能监测主备防火墙之间的运行状态。
配置HRP要求两台防火墙的型号需要一致
配置命令参考
- 只需要启动HRP协议,指定HRP的源端接口、目的端地址即可。
# 将心跳接口单独划入HRP安全区域
firewall zone hrp
add int g1/0/2
# 启用HRP协议,将配置HRP对端参数
hrp enable
hrp interface g1/0/2 remote [对端地址]
# 默认情况下单播报文的安全策略控制开关是开启的
# 即:firewall packet-filter basic-protocol enable
# 启用情况下需要放行HRP协议的安全策略
security-policy
rule name HRP
source-zone local hrp
destination-zone local hrp
service protocol tcp destination-port 18514
action permit
# 如果没有启用,可省略该操作
VRRP+HRP双机热备应用案例
1、主备双机热备
- 省略非防火墙设备的IP地址配置。
- 省略Internet、LSW5、LSW6配置,交换机只需要创建并放行VLAN10即可。
- 配置AR1、AR2的OSPF及缺省路由、NAT配置
# 配置AR1
[AR1]ip route-static 0.0.0.0 0 100.0.0.1
[AR1]ospf 1 router-id 1.1.1.1
[AR1-ospf-1]default-route-advertise
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]network 10.1.12.1 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]network 10.1.13.1 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]quit
[AR1-ospf-1]quit
# 由于防火墙上已经过滤了能够访问互联网的用户,此处就不需要再明细限制了。
[AR1]acl 2000
[AR1-acl-basic-2000]rule permit
[AR1-acl-basic-2000]int g0/0/2
[AR1-GigabitEthernet0/0/2]nat outbound 2000
# 配置AR2
[AR2]ip route-static 0.0.0.0 0 200.0.0.1
[AR2]ospf 1 router-id 2.2.2.2
[AR2-ospf-1]default-route-advertise
[AR2-ospf-1]area 0
[AR2-ospf-1-area-0.0.0.0]network 10.1.24.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]network 10.1.12.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]quit
[AR2-ospf-1]quit
[AR2]acl 2000
[AR2-acl-basic-2000]rule permit
[AR2-acl-basic-2000]int g0/0/2
[AR2-GigabitEthernet0/0/2]nat outbound 2000
- 配置防火墙地址、VRRP、OSPF
# 配置接口地址
[FW3]int g1/0/0
[FW3-GigabitEthernet1/0/0]ip add 10.1.13.3 24
[FW4-GigabitEthernet1/0/5]int g1/0/1
[FW4-GigabitEthernet1/0/1]ip add 10.1.12.3 24
[FW4-GigabitEthernet1/0/1]vlan 10
[FW3-vlan10]int vlan 10
[FW3-Vlanif10]ip add 192.168.10.2 24
[FW3-Vlanif10]vrrp vrid 10 virtual-ip 192.168.10.1 active
[FW3-Vlanif10]int g1/0/1
[FW3-GigabitEthernet1/0/1]portswitch
[FW3-GigabitEthernet1/0/1]port link access
[FW3-GigabitEthernet1/0/1]port default vlan 10
[FW3-GigabitEthernet1/0/1]int g1/0/5
[FW3-GigabitEthernet1/0/5]portswitch
[FW3-GigabitEthernet1/0/5]port link access
[FW3-GigabitEthernet1/0/5]port default vlan 10
# 接口划入安全域
[FW3]firewall zone untrust
[FW3-zone-untrust]add int g1/0/0
[FW3-zone-untrust]firewall zone trust
[FW3-zone-trust]add int g1/0/5
[FW3-zone-trust]add int vlan 10
# 心跳线单独划分一个区域进行管理
[FW3-zone-trust]firewall zone name hrp
[FW3-zone-hrp]add int g1/0/1
[FW3-zone-hrp]set priority 80
[FW3-zone-hrp]quit
# 配置OSPF进程
[FW3]ospf 1 router-id 3.3.3.3
[FW3-ospf-1]area 0
[FW3-ospf-1-area-0.0.0.0]network 10.1.13.3 0.0.0.0
[FW3-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255
# 配置接口地址
[FW4]int g1/0/0
[FW4-GigabitEthernet1/0/0]ip add 10.1.24.4 24
[FW4-GigabitEthernet1/0/5]int g1/0/1
[FW4-GigabitEthernet1/0/1]ip add 10.1.12.4 24
[FW4-GigabitEthernet1/0/1]vlan 10
[FW4-vlan10]int vlan 10
[FW4-Vlanif10]ip add 192.168.10.3 24
[FW4-Vlanif10]vrrp vrid 10 virtual-ip 192.168.10.1 standby
[FW4-GigabitEthernet1/0/1]int g1/0/5
[FW4-GigabitEthernet1/0/5]portswitch
[FW4-GigabitEthernet1/0/5]port link access
[FW4-GigabitEthernet1/0/5]port default vlan 10
# 接口划入安全域
[FW4]firewall zone untrust
[FW4-zone-untrust]add int g1/0/0
[FW4-zone-untrust]firewall zone trust
[FW4-zone-trust]add int g1/0/5
[FW4-zone-trust]add int vlan 10
# 心跳线单独划分一个区域进行管理
[FW4-zone-trust]firewall zone name hrp
[FW4-zone-hrp]add int g1/0/1
[FW4-zone-hrp]set priority 80
[FW4-zone-hrp]quit
# 配置OSPF进程
[FW3]ospf 1 router-id 4.4.4.4
[FW3-ospf-1]area 0
[FW3-ospf-1-area-0.0.0.0]network 10.1.24.4 0.0.0.0
[FW3-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255
- 配置防火墙HRP,及安全策略配置
- 防火墙undo firewall packet-filter basic-protocol enable可直接省略配置HRP安全策略,反之就需要在安全策略中添加HRP、OSPF的安全策略放行报文通过。
[FW3]security-policy
# HRP安全策略,放行本地与对端hrp
[FW3-policy-security]rule name HRP
[FW3-policy-security-rule-HRP]source-zone local hrp
[FW3-policy-security-rule-HRP]destination-zone local hrp
[FW3-policy-security-rule-HRP]service protocol tcp destination-port 18514
[FW3-policy-security-rule-HRP]action permit
# OSPF安全策略,OSPF协议号89
[FW3-policy-security-rule-HRP]rule name OSPF
[FW3-policy-security-rule-OSPF]source-zone local untrust
[FW3-policy-security-rule-OSPF]destination-zone local untrust
[FW3-policy-security-rule-OSPF]service protocol 89
[FW3-policy-security-rule-OSPF]action permit
# 放行客户端访问互联网
HRP_M[FW3-policy-security]rule name Trust-Internet
HRP_M[FW3-policy-security-rule-Trust-Internet]source-zone trust
HRP_M[FW3-policy-security-rule-Trust-Internet]destination-zone untrust
HRP_M[FW3-policy-security-rule-Trust-Internet]source-address 192.168.10.0 24
HRP_M[FW3-policy-security-rule-Trust-Internet]action permit
# 两台防火墙策略一致
# (FW3)配置HRP功能,当HRP启用之后,直接根据当前VRRP主备状态决定目前HRP的主备状态选举。
[FW3]hrp enable
HRP_S[FW3]hrp int g1/0/1 remote 10.1.34.4
# (FW4)配置HRP功能
[FW4]hrp enable
HRP_S[FW4]hrp int g1/0/1 remote 10.1.34.3
- 关于HRP的其它扩展命令
# 手动备份状态信息。
hrp sync connection-status
# 手动备份配置。
hrp sync config
# 配置除静态路由和策略路由外的命令自动备份。
hrp auto-sync config
# 开启主动抢占。
hrp preempt enable
# 配置抢占延时(默认60秒)。
hrp preempt delay 60
- 检测配置情况
# 检查VRRP主备情况
HRP_M[FW3]display vrrp brief
2024-01-31 08:12:00.090
Total:1 Master:1 Backup:0 Non-active:0
VRID State Interface Type Virtual IP
----------------------------------------------------------------
10 Master Vlanif10 Vgmp 192.168.10.1
# 检查HRP主备情况(Role-自己,Peer-对端)
HRP_M[FW3]display hrp state
2024-01-31 08:12:14.780
Role: active, peer: standby
# 检查心线情况
HRP_M[FW3]dis hrp interface
2024-01-31 08:11:27.230
GigabitEthernet1/0/1 : running
- 默认情况下通过主Master访问外网
故障模拟
- 由于目前HRP并末对链路进行检测,故当上行链路断开之后,并不会触发HRP或VRRP主备切换。
- 为了解决这个问题,可以在HRP上配置链路检测。
- 注意:为了实验效果更明显,先恢复下断开的链路再进行配置以下操作
# 检查上行链路是否故障,故障之后将进行HRP主备切换(含VRRP)
HRP_M[FW3]hrp track interface g1/0/0
# 根据HRP主备情况设置OSPF开销,有效解决下行链路故障之后,解决上行OSPF路由下一跳次优问题。
HRP_M[FW3]hrp adjust ospf-cost enable
# FW4也配置一下
HRP_M[FW4]hrp track interface g1/0/0
HRP_M[FW4]hrp adjust ospf-cost enable
- 再次断开链路,发现HRP、VRRP以及上行的OSPF路由都马上发生切换。
# HRP状态
HRP_S[FW3]dis hrp state
2024-01-31 09:13:04.230
Role: standby, peer: active (should be "active-standby")
# VRRP状态
HRP_S[FW3]dis vrrp brief
2024-01-31 09:13:22.500
Total:1 Master:0 Backup:1 Non-active:0
VRID State Interface Type Virtual IP
----------------------------------------------------------------
10 Backup Vlanif10 Vgmp 192.168.10.1
# OSPF路由,AR1访问内网时先到AR2,满足要求。
[AR1]dis ip routing-table protocol ospf
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.1.24.0/24 OSPF 10 2 D 10.1.12.2 GigabitEthernet0/0/1
192.168.10.0/24 OSPF 10 3 D 10.1.12.2 GigabitEthernet0/0/1
192.168.10.1/32 OSPF 10 3 D 10.1.12.2 GigabitEthernet0/0/1
2、负载分担双机热备
- 在原有配置网络基础下,防火墙对客户端则的VRRP进行修改就成为了负载分担。
- 防火墙通过VRRP虚拟出两个不同的虚拟网关,FW3成为PC1主用网关,FW4成为PC2主用网关。
- 当主用设备故障之后,能够切换至备用防火墙进行转发,结合HRP的同步能够实现主用网关设备故障后实现可靠性的传输。
- 防火墙的配置修改
# 需要先删除VRRP,再才能修改地址
HRP_M[FW3]int vlan 10
HRP_M[FW3-Vlanif10]undo vrrp vrid 10
HRP_M[FW3-Vlanif10]ip add 192.168.10.3 24
HRP_M[FW3-Vlanif10]vrrp vrid 10 virtual-ip 192.168.10.1 active
HRP_M[FW3-Vlanif10]vrrp vrid 11 virtual-ip 192.168.10.2 standby
HRP_S[FW4]int vlan 10
HRP_S[FW4-Vlanif10]undo vrrp vrid 10
HRP_S[FW4-Vlanif10]ip add 192.168.10.4 24
HRP_S[FW4-Vlanif10]vrrp vrid 10 virtual-ip 192.168.10.1 standby
HRP_S[FW4-Vlanif10]vrrp vrid 11 virtual-ip 192.168.10.2 active
- 最终VRRP状态
HRP_M<FW3>dis vrrp brief
2024-02-01 02:34:38.710
Total:2 Master:1 Backup:1 Non-active:0
VRID State Interface Type Virtual IP
----------------------------------------------------------------
10 Master Vlanif10 Vgmp 192.168.10.1
11 Backup Vlanif10 Vgmp 192.168.10.2
HRP_S<FW4>dis vrrp brief
2024-02-01 02:34:41.320
Total:2 Master:1 Backup:1 Non-active:0
VRID State Interface Type Virtual IP
----------------------------------------------------------------
10 Backup Vlanif10 Vgmp 192.168.10.1
11 Master Vlanif10 Vgmp 192.168.10.2
故障模拟
- 模拟AR1端口故障,PC1再次访问将切换至备用防火墙转发。
- 此时关于防火墙的VRRP状态信息及HRP主备情况
HRP_S<FW3>dis vrrp brief
2024-02-01 02:41:26.090
Total:2 Master:0 Backup:2 Non-active:0
VRID State Interface Type Virtual IP
----------------------------------------------------------------
10 Backup Vlanif10 Vgmp 192.168.10.1
11 Backup Vlanif10 Vgmp 192.168.10.2
HRP_M<FW4>dis vrrp brief
2024-02-01 02:41:27.740
Total:2 Master:2 Backup:0 Non-active:0
VRID State Interface Type Virtual IP
----------------------------------------------------------------
10 Master Vlanif10 Vgmp 192.168.10.1
11 Master Vlanif10 Vgmp 192.168.10.2
HRP_S<FW3>dis hrp state
2024-02-01 02:42:15.830
Role: standby, peer: active
HRP_M<FW4>dis hrp state
2024-02-01 02:42:33.190
Role: active, peer: standby
3、透明模式双机热备
于透明模式中,推荐防火墙以主备备份方式工作,不建议以负载分担方式。
因为防火墙A和防火墙B与交换机之间形成了二层环路,为了消除环路,必然有一台设备所在的链路需要被阻塞。也就是说,在同一时刻,内外部网络之间的流量只能通过防火墙A和防火墙B中的某一台转发。
如果防火墙A和防火墙B工作于负载分担方式,则防火墙A和防火墙B上的VLAN都被启用,都能够转发流量,此时就会出现环路风险。
- 配置防火墙,以FW3为例:
# 划分接口VLAN及安全区域
[FW3]vlan 1000
[FW3-vlan1000]firewall zone trust
[FW3-zone-trust]add int g1/0/1
[FW3-zone-trust]firewall zone untrust
[FW3-zone-untrust]add int g1/0/0
[FW3-zone-untrust]firewall zone name hrp
[FW3-zone-hrp]add int g1/0/2
[FW3-zone-hrp]set priority 80
[FW3-zone-hrp]quit
# 配置接口
[FW3]int g1/0/0
[FW3-GigabitEthernet1/0/0]portswitch
[FW3-GigabitEthernet1/0/0]port link access
[FW3-GigabitEthernet1/0/0]port default vlan 1000
[FW3-GigabitEthernet1/0/0]int g1/0/1
[FW3-GigabitEthernet1/0/1]portswitch
[FW3-GigabitEthernet1/0/1]port link access
[FW3-GigabitEthernet1/0/1]port default vlan 1000
[FW3-GigabitEthernet1/0/1]int g1/0/2
[FW3-GigabitEthernet1/0/2]ip add 10.1.34.3 24
[FW3-GigabitEthernet1/0/2]quit
# 放行OSPF、HRP协议单播报文
[FW3]undo firewall packet-filter basic-protocol enable
# 启用HRP
[FW3]hrp enable
# 检测下行链路是否正常
HRP_S[FW3]hrp track vlan 1000
# 检测上行链路是否正常
HRP_S[FW3]hrp track interface g1/0/0
# 建立HRP连接
HRP_S[FW3]hrp int g1/0/2 remote 10.1.34.4
# 负载分担组网下,DeviceA和DeviceB都转发流量,为了防止来回路径不一致,需要在两台设备上都配置会话快速备份功能。
HRP_S[FW3] hrp mirror session enable
- 注意:ENSP有个BUG,防火墙设备如果不是与VRRP联动,则无法手动设置为主备模式。
- 即无法使用命令手动设置设备主备:
hrp device active
、hrp device active
- 配置完成之后,检查HRP状态
HRP_M[FW3]dis hrp state
2024-02-01 03:08:52.140
Role: active, peer: active
HRP_S[FW4]dis hrp state
2024-02-01 03:09:13.680
Role: active, peer: active
- 前面提到,如果是负载分担的透明模式,可能存在环路风险。但由于我们这个环境是上联路由器,下联交换机,并不会出现环路可能,所以问题不大。关于上下行都是路由器、交换机的实验案例在防火墙手册中也能找到,此处主要记录特别的。
- 省略配置交换机与路由器的OSPF配置。
- 检查OSPF成功建立并交互路由之后,在防火墙上配置案例策略放行客户端访问互联网(8.8.8.8测试接口)
HRP_M[FW3]security-policy (+B)
HRP_M[FW3-policy-security]rule name PC_Internet (+B)
HRP_M[FW3-policy-security-rule-PC_Internet]source-zone trust (+B)
HRP_M[FW3-policy-security-rule-PC_Internet]destination-zone untrust (+B)
HRP_M[FW3-policy-security-rule-PC_Internet]source-address 192.168.10.0 24 (+B)
HRP_M[FW3-policy-security-rule-PC_Internet]source-address 192.168.20.0 24 (+B)
HRP_M[FW3-policy-security-rule-PC_Internet]action permit (+B)
# 有(+B)显示,表示该命令已经同步到备用防火墙上
- 检查配置结果,可以看到访问正常。
故障模拟
- 当AR1端接口故障后,由于LSW5与LSW6还有邻居关系,故LSW5可以通过LSW6访问互联网。
核心要点提取
虚墙
- 在防火墙中虚拟出一台新的防火墙,但需要分配本机防火墙上相应的资源给该虚拟防火墙。
- 虚拟防火墙的安全策略,以及其它相关操作需要进入虚墙中才能操作。
- 虚墙与VPN实例挂钩,虚墙路由表可以理解为VPN实例路由表。
双机热备
- 通过VRRP与HRP联动,VRRP主设备将在HRP启动后,成为HRP的主设备。
- HRP需要配置链路检测,以便出现上下行链路故障后无法快速切换主备造成数据丢包。
- HRP心跳线使用新安全区域主要为了区分不同链路同时为了方便安全策略的开通及管理。
负载分担双机热备
- 与双机热备不同的时存在两个不同的虚拟网关,下行客户端使用不同网关实现负载分担效果。
- 只需要在原有双机热备基础上,规划新的VRRP组虚拟新的虚拟网关即可。
透明模式双机热备
- 透明模式中的防火墙,只需要划分好相应的VLAN绑定于接口上即可。
- 防火墙之间仍然需要HRP心跳线,实现防火墙之间的配置及会话信息备份。
- 透明模式防火墙需要注意组网情况,根据组网情况决定使用负载分担或者主备工作方式。
- 如果防火墙组网出现环路可能,就推荐使用主备情况,根本原因是为了防止网络出现环路。