开篇直接聊点实在的。搞防火墙虚拟系统这个实验,是我近几个月在调网络隔离方案时反复打磨过的内容。标题里点名的“华为”,指的是华为USG系列防火墙的虚拟系统(Virtual System)特性,这是园区网、政企分支做多租户隔离、业务分权管理时非常好用的功能。简单说,你可以把一台物理防火墙,逻辑上切成几个互相独立、互不干扰的虚拟设备来用,每个虚拟设备拥有独立的路由表、会话表、安全策略和管理员权限。对于刚接触防火墙的网工朋友,这个功能确实需要花点时间才能吃透,但一旦掌握,在设备预算有限、又必须做严格安全隔离的场景下,能解决大问题。
这轮实验我是在eNSP模拟器上完成的,设备选型用的USG6000V,整个拓扑和配置思路完全能在真机上平移。如果你正准备考华为数通安全方向,或者工作中接到类似“把一台防火墙分成多个逻辑隔离墙”的需求,这篇文章可以直接作为操作参考。我会从设计思路、环境搭建、资源划分、接口绑定、路由策略、安全策略到管理员权限,一步步讲清楚,同时把我在实验中踩过的坑和排查方法一并放进来。
1. 先搞清楚虚拟系统的定位与设计逻辑
1.1 一台防火墙怎么当多台用
虚拟系统的官方叫法叫 Virtual System,很多老网工也叫它 VSYS。它的核心思想很简单:把物理防火墙的硬件资源(CPU、内存、会话表、接口)抽象成多个逻辑资源池,每个虚拟系统就像一个独立的防火墙实例。
举个例子方便理解。假设一家公司有研发部、财务部、行政部三个部门,安全要求差异很大,财务部需要严格管控,研发部相对开放。传统做法是买三台防火墙串联或并联隔离,成本高、运维复杂。这时候只要一台USG防火墙,划分三个虚拟系统,各自绑定不同的物理接口,配置独立的安全策略,效果基本等同于三台物理设备。关键是,虚拟系统之间默认进出流量是隔离的,就算一个虚拟系统被攻破,也不会横向影响到另一个。
这里要注意,虚拟系统之间的隔离不是靠ACL模拟出来的,而是设备底层数据平面天然隔离。每个虚拟系统有自己独立的接口视图、路由表、会话表、NAT策略、安全策略,连系统资源(比如会话数上限)都能单独限制。这一点比单纯用VRF强很多,VRF只是路由隔离,防火墙策略和会话还是共用的。
1.2 虚拟系统与VRF、VLAN隔离的本质区别
很多朋友会在群里问:既然交换机上VRF和VLAN也能隔离,为什么还要用防火墙虚拟系统?我的理解是,两者的隔离层次不一样。
VLAN隔离侧重于二层广播域隔离,VRF侧重于三层路由路径隔离,但它们都没有隔离防火墙本身的安全会话和策略体系。比如两个VRF共用同一台防火墙,防火墙的会话表是共享的,安全策略也混在一起,管理员权限更难做精细拆分。虚拟系统则是把防火墙“切开”,连会话表本身都独立了,对业务来说相当于每租户一台专属防火墙。
另外一个很重要的点,虚拟系统管理员可以独立下发配置,不影响其他虚拟系统,这一点多租户场景特别有用。
1.3 什么场景下该用虚拟系统
不能说虚拟系统是万能药,它适合的场景主要集中在下面几类:
- 多租户机房或托管业务,需要为每个租户提供独立的防火墙策略和管理边界。
- 企业内不同安全域之间需要强隔离,比如办公网、生产网、财务专网。
- 分支机构或子公司共用一个出口,但各自需要独立的上网策略和NAT转换。
- 测试环境与生产环境共用一台设备,通过虚拟系统隔离风险。
如果场景只是简单地把服务器区分开,没有强安全边界需求,那用防火墙划zone就足够了,不必上虚拟系统。虚拟系统会增加配置复杂度和排障难度,这一点要提前想清楚。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 实验环境准备与eNSP部署要点
2.1 设备选型与拓扑设计
这次实验用的是eNSP模拟器里自带USG6000V防火墙,版本V500R005C10,用Cloud连接外部网络或者直接用PC模拟客户机也可以。拓扑大致如下:
- USG6000V防火墙一台(根系统模式启动,默认就有Admin VS)。
- 交换机两台(或直接用防火墙接口接PC)。
- PC三台,分别模拟三个不同部门的终端。
- 防火墙接口划分:GigabitEthernet1/0/0接外网区,GigabitEthernet1/0/1、1/0/2、1/0/3分别接三个虚拟系统的业务接口。
实际规划时,我给每个虚拟系统分配了独立的接口:VS1绑定1/0/1,VS2绑定1/0/2,VS3绑定1/0/3。根系统保留1/0/0作为上行出口管理,同时可以创建虚拟接口给虚拟系统做互联网关。
2.2 eNSP上启动防火墙最容易踩的三个坑
eNSP模拟器里的USG6000V比路由器交换机的坑多一些,建议先排掉这几个点再开始配虚拟系统:
第一,eNSP启动防火墙时经常报“启动失败”,尤其是第一次用的时候。这个问题多半是VirtualBox的虚拟网卡没有正确安装,或者eNSP的版本兼容性问题。解决方法是检查VirtualBox版本是否适配,把杀毒软件临时关掉,然后以管理员身份运行eNSP。
第二,防火墙镜像文件导入时,设备面板上会显示“启动失败”的红色字样。这种情况大概率是USG6000V的镜像文件没有放在正确路径,eNSP默认从安装目录的devices目录加载镜像,建议重新指定镜像路径并重置设备。
第三,启动后WEB登录页面打不开。虽然这次主要是CLI配置虚拟系统,但很多人习惯用WEB辅助核查。登录不了时先在CLI下确认接口地址配置无误,再检查防火墙是否开启了https服务,命令是 web-manager enable。
2.3 实验目标先拆解清楚
开始配虚拟系统前,先明确实验要验证什么。我自己规划了四个验证目标:
- 第一,验证根系统(Admin VS)能成功创建多个虚拟系统,并给虚拟系统分配接口和资源。
- 第二,验证虚拟系统内能独立配置接口IP、路由和安全策略。
- 第三,验证虚拟系统之间的三层流量是默认隔离的,且能在根系统控制下按需打通。
- 第四,验证不同虚拟系统的管理员相互独立,权限边界清晰。
有了这四项目标,就能明白配置不是做完就完,而是要逐项验证。
3. 虚拟系统的创建与资源划分实操
3.1 开启虚拟系统能力与License说明
华为USG防火墙虚拟系统功能不是所有款型默认都能用,部分型号需要加载License才能启用。eNSP模拟器里默认支持,方便很多。真机上先通过 display license 查看虚拟系统授权情况。
CLI下启用虚拟系统功能很简单:
bash复制system-view
virtual-system enable
这条命令执行后设备会提示需要重启才生效。这里要注意,模拟器里直接重启问题不大,真机上如果正在承载业务,就得找维护窗口做操作了。虚拟系统开启后,默认只有Admin VS(根系统)存在,所有接口、路由、策略都在Admin VS里,需要手动创建新的虚拟系统。
3.2 通过命令行创建虚拟系统并绑定接口
在根系统视图下创建虚拟系统,命令如下:
bash复制system-view
virtual-system vsys1
description R&D_Virtual_Firewall
assign interface GigabitEthernet1/0/1
assign interface GigabitEthernet1/0/2
这里 vsys1 是我给研发虚拟系统取的名字,description 加上备注方便管理,assign interface 把物理接口分配给虚拟系统。需要注意的是,接口一旦被分配给某个虚拟系统,根系统和其他虚拟系统就不能再直接使用该接口。如果提示接口已被占用,先检查是否已经在其他虚拟系统里。
同样方式再创建 vsys2 和 vsys3:
bash复制virtual-system vsys2
description Finance_Virtual_Firewall
assign interface GigabitEthernet1/0/3
assign interface GigabitEthernet1/0/4
到这里,接口分配就完成了。
3.3 资源分配参数怎么定
虚拟系统创建后,默认资源是共享物理设备的。如果不做任何限制,一个虚拟系统的流量或会话暴增可能影响其他虚拟系统的稳定性,所以实际项目中资源限制很有必要。
华为USG防火墙支持限制CPU、内存、会话数等资源。配置如下:
bash复制virtual-system vsys1
resource cpu 30
resource memory 20
resource session 10000
resource cpu 30 表示vsys1最多占用30%的CPU,resource session 10000 是最大并发会话数。数值怎么定,建议结合业务量估算。常规办公场景一个用户并发的会话大概几十条,如果vsys1承载200个用户,10000会话基本够用。生产环境建议留出20%-30%的余量。
查看资源使用情况:
bash复制display virtual-system resource usage
这里我想提个经验:CPU限制别给太低,给虚拟系统之间留点调度余地,否则遇到瞬时流量高峰,丢包和延迟会很明显。
4. 虚拟系统内的接口、路由与安全策略配置
4.1 进入虚拟系统配置接口IP
虚拟系统创建并绑定接口后,接口本身是在虚拟系统视图下配置的。先通过 switch virtual-system 命令切换到指定虚拟系统:
bash复制switch virtual-system vsys1
切换后,命令行提示符会变成 [~HUAWEI-vsys1] 类似的格式,此时配置的就是vsys1自己的接口。
给接口配置IP地址:
bash复制system-view
interface GigabitEthernet1/0/1
ip address 192.168.10.1 255.255.255.0
在vsys1里,1/0/1 是业务接口,1/0/2 可以作为上行接口。如果虚拟系统需要通过物理防火墙出外网,通常把 1/0/2 划到untrust区域,并配置相应的NAT策略。
同样为vsys2和vsys3配置各自的接口IP,这样三个虚拟系统各自拥有独立的网段和出口。
4.2 默认路由与跨虚拟系统通信设计
虚拟系统内默认没有路由表条目,需要单独配置默认路由。以vsys1为例:
bash复制ip route-static 0.0.0.0 0.0.0.0 10.0.0.254
这里的网关地址是虚拟系统上行接口的下一跳。但要注意,虚拟系统之间如果想互通,不能简单指一条默认路由就完事,因为虚拟系统的路由表相互隔离,根系统需要承担“中转”角色。
我实验时做一个需求:让vsys1的终端能访问vsys2的某台服务器,但反过来不行。这种跨系统互访一般有两种实现思路:
- 思路A:在根系统(Admin VS)里创建虚拟接口,让各虚拟系统通过根系统转发。这种方式配置灵活,但需要在根系统写跨域策略。
- 思路B:将两个虚拟系统的接口划入同一个虚拟局域网,通过安全策略控制。这种方式更适合同一物理二层域内的互访。
实际项目中我更推荐思路A,因为虚拟系统设计的初衷就是逻辑隔离,绕过根系统做二层互通容易破坏隔离边界,也不利于审计。
4.3 黑白名单与安全策略配置
虚拟系统的安全策略是独立的,在各自虚拟系统内配置 security-policy 即可。虚拟系统里同样有安全区域(zone)的概念,接口需要先加入对应区域,策略才能生效。
以vsys1为例,把 1/0/1 划入trust区域,1/0/2 划入untrust区域:
bash复制firewall zone trust
add interface GigabitEthernet1/0/1
firewall zone untrust
add interface GigabitEthernet1/0/2
然后创建策略,比如只允许研发网段访问外网:
bash复制security-policy
rule name vs1_to_untrust
source-zone trust
destination-zone untrust
source-address 192.168.10.0 24
action permit
这里特别说明一下黑白名单的问题。很多人一听“白名单”就觉得是整个防火墙的全局设置,但在虚拟系统架构里,黑白名单应该按虚拟系统分开规划。比如vsys2财务系统可以采用白名单模式,只允许指定的源IP访问财务系统;vsys3办公网则采用黑名单模式,默认放行但阻断特定风险IP。
配置黑名单常用方式:
bash复制firewall blacklist ip 10.1.1.100
这条命令在对应虚拟系统视图下配置,只影响该虚拟系统。如果在根系统配置,可能影响所有虚拟系统,操作时要格外谨慎。
5. 虚拟系统的管理员隔离与分权配置
5.1 创建独立的虚拟系统管理员
多租户场景里,虚拟系统的管理员权限拆分很关键。华为USG防火墙支持在根系统创建管理员时,指定该管理员只管理某个虚拟系统。命令如下:
在Admin VS下:
bash复制administrator name vsadmin1
level 2
virtual-system vsys1
这样vsadmin1登录后,只能看到和管理vsys1的配置,无法触碰其他虚拟系统。相比把所有配置都放在一个管理员账号里,这么做更符合最小权限原则。
需要注意,管理员绑定虚拟系统后,用SSH、WEB或Console登录都会自动进入对应虚拟系统视图,如果未来想收回权限,在根系统删除或修改管理员绑定关系即可。
5.2 验证隔离效果的方法
配置完管理员,最好实际登录验证一下。我在模拟器里创建一个vsadmin2账号绑定vsys2,然后分别用两个账号登录,发现vsys2账号看不到vsys1的任何接口、路由和安全策略,资源占用也相互独立。这就验证了管理员权限隔离是有效的。
同时用PC分别访问三个虚拟系统的业务接口,能看到各自的NAT和策略独立生效。比如vsys1里允许访问的目标,在vsys2里可能被阻断,因为两个虚拟系统不会共用一条安全策略。
这里有一个容易被忽略的细节:虚拟系统的配置是独立的,但会话表也是独立的。也就是说,即使两个虚拟系统存在相同的内网IP段,防火墙也不会混淆会话,因为它们分别走不同的虚拟系统表项。这个特性在实际项目中处理地址重叠时非常有用——比如两个分公司各自使用192.168.1.0/24网段,在传统防火墙上一旦汇聚就冲突,但虚拟系统可以完美共存。
6. 常见问题排查与避坑指南
6.1 虚拟系统之间流量不通,怎么排查
实验中最常见的问题是,vsys1终端访问vsys2服务器不通。我的排查顺序是:
- 第一步,检查虚拟系统路由表。分别进入vsys1和vsys2,用
display ip routing-table查看是否有去往对端网段的路由条目。 - 第二步,检查安全策略。在根系统和其他虚拟系统检查是否存在拒绝流量的策略。
- 第三步,检查接口是否划入正确的安全区域。很多朋友只配了IP没划zone,导致策略匹配异常。
- 第四步,查看会话表。用
display firewall session table看来回流量是否建立会话。如果只有去的没有回的,基本是回程路由或策略问题。
6.2 虚拟系统资源耗尽
资源耗尽通常表现为某个虚拟系统下业务全部卡顿或断连。排查命令:
bash复制display virtual-system resource usage
如果某个虚拟系统的会话数接近上限,有两种处理方式:一是调高虚拟系统的session资源上限,二是检查该虚拟系统内是否存在异常大流量。我遇到过一种情况,某个虚拟系统下面挂了一个有网络环路的环境,导致会话表瞬间被占满,最后通过控制广播域和限速解决。
6.3 配置不生效或莫名被覆盖
虚拟系统配置不生效很多时候是因为没有切换到正确的虚拟系统。比如你在根系统视图下发了一条安全策略,但实际想让vsys3生效,策略自然匹配不上。这个只能说习惯问题,我自己也踩过几次,配置前一定先 display current-configuration virtual-system vsys3 确认当前视图。
另外一点强烈建议:虚拟系统配置较多时,根系统做一个配置备份。eNSP里直接 save 即可,真机上可以用 display configuration 定期导出保存。如果出问题,恢复配置比重新敲一遍快得多。
6.4 模拟器与真机差异
最后说说模拟器边界。eNSP的USG6000V在虚拟系统功能和大部分命令行上,与真机高度接近,但性能和License机制有差异。比如模拟器里虚拟系统的数量上限明显低于高端真机型号,接口速率和并发会话性能也不代表真机水平。所以做实验验证逻辑可以,规划设计还是要以真机官方规格和License为准。
7. 实验后的个人经验总结
这次实验做下来,我对虚拟系统的认识更深了一层。它不是简单的“多个防火墙配置”集合,而更像一套从资源到策略、再到管理员权限的立体隔离方案。真正用的时候,优先确定好虚拟系统划分粒度和资源配额,这是地基。地基没打好,后面路由策略配得再漂亮也容易乱。
还有一个小技巧想分享给大家:给虚拟系统命名和加description时,尽量用有业务含义的名称,比如vsys_finance而不是vsys1。我一开始图省事用数字命名,后来虚拟系统多了,每次查询都得对着接口表确认半天,非常影响效率。改回业务命名后,排查问题的速度快了很多。
如果你正好在学华为防火墙或者准备相关认证,虚拟系统这个特性建议多花时间练习。它融合了路由、策略、NAT、资源管理好几个知识点,练一遍等于把防火墙核心功能都过了一遍。等项目里真正遇到多租户隔离需求时,你已经能心里有数地给出方案了。
