「Huawei Firewall」- 虚拟系统

解决方案

原理简述

特性特征

为了实现每个虚拟系统的业务都能够做到正确转发、独立管理、相互隔离,FW 主要实现了几个方面的虚拟化:
1)资源虚拟化:每个虚拟系统都有独享的资源,包括接口、VLAN、策略和会话等。根系统管理员分配给每个虚拟系统,由各个虚拟系统自行管理和使用;
2)配置虚拟化:每个虚拟系统都拥有独立的虚拟系统管理员和配置界面,每个虚拟系统管理员只能管理自己所属的虚拟系统;
3)安全功能虚拟化:每个虚拟系统都可以配置独立的安全策略及其他安全功能,只有属于该虚拟系统的报文才会受到这些配置的影响;
4)路由虚拟化:每个虚拟系统都拥有各自的路由表,相互独立隔离。目前仅支持静态路由的虚拟化;

通过以上几个方面的虚拟化,当创建虚拟系统之后,每个虚拟系统的管理员都像在使用一台独占的设备;

应用场景

大中型企业的网络隔离

通过防火墙的虚拟系统将网络隔离为研发部门、财经部门和行政部门。各部门之间可以根据权限互相访问,不同部门的管理员权限区分明确;

云计算中心的安全网关

通过配置虚拟系统,可让部署在云计算中心出口的 FW 具备云计算网关的能力,对不同租户流量进行隔离的同时提供安全防护能力;

概念术语

Public vs. VSYS

防火墙上存在两种类型的虚拟系统:

根系统(Public)
缺省即存在的一个特殊虚拟系统。缺省时,管理员对防火墙进行配置等同于对根系统进行配置;
在虚拟系统这个特性中,根系统的作用是管理其他虚拟系统,并为虚拟系统间的通信提供服务;

虚拟系统(VSYS):虚拟系统是在防火墙上划分出来的、独立运行的逻辑设备;

Virtual Interface(虚拟接口)

虚拟接口是创建虚拟系统时设备自动为其创建的一个逻辑接口,作为虚拟系统自身与其他虚拟系统之间通信的接口;
虚拟系统之间通过虚拟接口实现互访,并且虚拟接口必须配置 IP-ADDR 并加入 Security Zone 才能正常工作;

虚拟接口名的格式为“Virtual-if+接口号”:
1)根系统的虚拟接口名为 Virtual-if0;
2)其他虚拟系统的 Virtual-if 接口号从 1 开始,根据系统中接口号占用情况自动分配;

如图所示,各个虚拟系统以及根系统的虚拟接口之间默认通过一条“虚拟链路”连接。如果将虚拟系统、根系统都视为独立的设备,将虚拟接口视为设备之间通信的接口,通过将虚拟接口加入安全区域并按照配置一般设备间互访的思路配置路由和策略,就能实现虚拟系统和根系统的互访、虚拟系统之间的互访;

访问:VSYS ==> 根系统

虚拟系统与根系统互访有两种场景:虚拟系统访问根系统、根系统访问虚拟系统。
这两种场景下,报文转发的流程略有不同。这里以虚拟系统访问根系统为例。

在 VSYS-A 下 10.3.0.0/24 网段的用户通过根系统的 GE1/0/1 访问 Internet 服务器 3.3.3.3;

因为虚拟系统和根系统都需要按照防火墙转发流程对报文进行处理,所以虚拟系统和根系统中要分别完成策略、路由等配置;

访问:VSYS <==> 虚拟系统

FW 的虚拟系统之间默认是互相隔离的,不同虚拟系统下的主机不能通信。如果两个虚拟系统下主机有通信的需求,就需要配置策略和路由,使不同虚拟系统能够互访;

VSYS-A 下 10.3.0.0/24 网段的用户访问 VSYS-B 下服务器 3.3.3.3;

该场景是 VSYS-A 向 VSYS-B 发起访问。报文先进入 VSYS-A,VSYS-A 按照防火墙转发流程对报文进行处理。然后报文进入 VSYS-B,VSYS-B 再次按照防火墙转发流程对报文进行处理;

因为两个虚拟系统都需要按照防火墙转发流程对报文进行处理,所以两个虚拟系统中要分别完成策略、路由等配置;

配置案例

补充说明:
1)该部分笔记仅记录关键配置命令;

第一步、开启虚拟系统

vsys enable

第二步、创建虚拟系统

resource-class r1
  resource-item-limit session reserved-number 10

vsysy name DEPT_A
  assign interface GEx/x/x
  assign resource-class r0
display ip vpn-instance # 虚拟系统会自动创建对应的 VRF-Inst
display ip interface brief # 查看防火墙 Virtual-if<n>

第三步、配置虚拟系统

# ----------------------------------------------------------------------------- # 进入 DEPT_A 

switch vsys DEPT_A # 切换到虚拟防火墙
security-policy ... # 进行防火墙的安全配置;
ip route-static 0.0.0.0 0.0.0.0 public # 下一跳为根墙(不需要 Next-Hop 地址)
...

# ----------------------------------------------------------------------------- # 进入 public 

security-policy ... # 进行防火墙的安全配置;
ip route-static 0.0.0.0 0.0.0.0 10.0.4.254
...

# NAT 配置
nnat-policy
 rule name pat
  source-zone trust
  destination-zone untrust
  action source-nat easy-ip

# 配置回包路由
# 但是不配置似乎也能通,是因为防火墙利用 Session Table 进行回包查找吗?

第四步、访问测试

[PC1] ping 10.0.5.1

DEPT_A to DEPT_C/Server1

如果不希望通过根墙:

...
ip route-static vpn-instance DEPT_A 10.0.3.0 255.255.255.0 vpn-instance DEPT_C
ip route-static vpn-instance DEPT_C 10.0.1.0 255.255.255.0 vpn-instance DEPT_A
...

security-policy
   ... # 进行防火墙的安全配置;