首先我们要知道虚拟系统是啥,干什么用的,解决什么问题的,说白话就是,我没钱,买不起两台墙,我买一台墙通过虚拟系统的方式逻辑变成两台墙,学过高级路由的都知道vpn,vpn是将路由器器逻辑分成多个,每个vpn下有自己的路由表,其实原理都是类似的,都是换汤不换药!
虚拟系统(Virtual System)是在一台物理设备上划分出的多台相互独立的逻辑设备。
您可以从逻辑上将一台FW设备划分为多个虚拟系统。每个虚拟系统相当于一台真实的设备,有自己的接口、地址集、用户/组、路由表项以及策略,并可通过虚拟系统管理员进行配置和管理。
虚拟系统具有以下特点:
- 每个虚拟系统由独立的管理员进行管理,使得多个虚拟系统的管理更加清晰简单,所以非常适合大规模的组网环境。
- 每个虚拟系统拥有独立的配置及路由表项,这使得虚拟系统下的局域网即使使用了相同的地址范围,仍然可以正常进行通信。
- 可以为每个虚拟系统分配固定的系统资源,保证不会因为一个虚拟系统的业务繁忙而影响其他虚拟系统。
- 虚拟系统之间的流量相互隔离,更加安全。在需要的时候,虚拟系统之间也可以进行安全互访。
- 虚拟系统实现了硬件资源的有效利用,节约了空间、能耗以及管理成本。
以华为ensp实验为例
fw3是企业边界,内网通过防火墙nat访问互联网,但内网中pc50和pc40模拟了两个不同的部分(不同的业务、不同的楼都可以),因为成本问题,买不起双墙,通过虚拟系统,将两个业务隔离开。
在初次接触虚拟系统的伙伴们要分清一个事情,就是公共墙、虚拟墙(若干)
如上图,在公共墙中G1/0/2是外网口划入un区域,G1/0/1 G1/0/6是dmz区域,但G1/0/5是虚拟系统b的接口,G1/0/4是虚拟系统a的接口,那么这里有一个虚接口的概念,就是公共墙的虚拟口连接着虚拟墙的虚拟口,如下图,物理是一个墙但逻辑被分成了两个墙,各配各的,相互隔离
cpp
#
sysname fw3
#
undo info-center enable
#
vsys enable \\开启虚拟系统
resource-class r1 \\设置资源类
resource-item-limit session reserved-number 1000 maximum 3000
resource-item-limit policy reserved-number 100
#
创建虚拟系统,分别加入对应的接口和资源类
vsys name vsys136a 1
assign interface GigabitEthernet1/0/4
assign resource-class r1
#
vsys name vsys136b 2
assign interface GigabitEthernet1/0/5
assign resource-class r1
#
将下联虚拟系统的接口绑定到vpn中(vpn就是虚拟系统)
interface GigabitEthernet1/0/1
undo shutdown
ip binding vpn-instance vsys136c
ip address 172.23.136.254 255.255.255.0
#
interface GigabitEthernet1/0/4
undo shutdown
ip binding vpn-instance vsys136a
ip address 172.22.136.254 255.255.255.0
#
下面就是普通的主墙接口
interface GigabitEthernet1/0/2
undo shutdown
ip address 5.5.136.254 255.255.255.0
#
interface GigabitEthernet1/0/5
undo shutdown
ip address 172.21.136.254 255.255.255.0
#
interface GigabitEthernet1/0/6
undo shutdown
ip address 172.17.136.254 255.255.255.0
#
firewall zone trust
set priority 85
add interface GigabitEthernet0/0/0
add interface Virtual-if0 \\把主墙的虚拟接口加入到信任区域中
#
firewall zone untrust
set priority 5
add interface GigabitEthernet1/0/2
#
ip route-static 0.0.0.0 0.0.0.0 5.5.136.1 \\去外网的路由
ip route-static 172.21.136.0 255.255.255.0 vpn-instance vsys136b \\到虚拟系统的vpn路由
ip route-static 172.22.136.0 255.255.255.0 vpn-instance vsys136a
#
写策略,虚拟墙的访问外网的流量最终都会从主墙出去
security-policy
rule name to_internet
source-zone trust
destination-zone untrust
action permit
#
写nat策略
nat-policy
rule name nat1
source-zone trust
egress-interface GigabitEthernet1/0/2
source-address 172.21.136.0 mask 255.255.255.0
source-address 172.22.136.0 mask 255.255.255.0
action source-nat easy-ip
#
虚拟墙a的配置
#
switch vsys vsys136a \\进入虚拟墙a
#
这个接口就是刚才主墙配置过的
interface GigabitEthernet1/0/4
undo shutdown
ip binding vpn-instance vsys136a
ip address 172.22.136.254 255.255.255.0
#
interface Virtual-if1
#
firewall zone trust
set priority 85
add interface GigabitEthernet1/0/4 \\把分墙的物理口接入到对应虚拟系统的信任区中,
#
firewall zone dmz
set priority 50
add interface Virtual-if1 \\虚拟墙的逻辑接口加入到dmz
#
security-policy
这里的策略是从虚拟墙的接口流量到主墙的虚拟接口,放来回策略,所以是信任到dmz的流量
rule name va-vb
source-zone trust
destination-zone dmz
source-address 172.22.136.0 mask 255.255.255.0
destination-address 172.21.136.0 mask 255.255.255.0
action permit
rule name vb-va
source-zone dmz
destination-zone trust
source-address 172.21.136.0 mask 255.255.255.0
destination-address 172.22.136.0 mask 255.255.255.0
action permit
这条是需要nat的流量
rule name t-dmz-nat
source-zone trust
destination-zone dmz
source-address 172.22.136.0 mask 255.255.255.0
action permit
#
ip route-static 0.0.0.0 0.0.0.0 public \\nat所需要的出口路由,指向了主墙
ip route-static 172.22.136.0 255.255.255.0 public \\到虚拟墙b的路由,指向了主墙
#
虚拟系统b与a类似
switch vsys vsys136b
#
interface GigabitEthernet1/0/5
undo shutdown
ip binding vpn-instance vsys136b
ip address 172.21.136.254 255.255.255.0
#
firewall zone trust
set priority 85
add interface GigabitEthernet1/0/5
#
firewall zone untrust
set priority 5
#
firewall zone dmz
set priority 50
add interface Virtual-if2
#
security-policy
rule name vb-va
source-zone trust
destination-zone dmz
source-address 172.21.136.0 mask 255.255.255.0
destination-address 172.22.136.0 mask 255.255.255.0
action permit
rule name va-vb
source-zone dmz
destination-zone trust
source-address 172.22.136.0 mask 255.255.255.0
destination-address 172.21.136.0 mask 255.255.255.0
action permit
rule name t-dmz-nat
source-zone trust
destination-zone dmz
source-address 172.21.136.0 mask 255.255.255.0
action permit
#
ip route-static 0.0.0.0 0.0.0.0 public
ip route-static 172.22.136.0 255.255.255.0 public
虚拟墙a用户访问外网
虚拟墙b用户访问外网
虚拟墙a用户访问虚拟墙b用户
总结:防火墙的虚拟系统给我的感觉就像是单臂路由的思路,每个虚拟墙有一个虚拟接口连接着主墙的虚拟接口,所有访问的流量是虚拟墙首先到达主墙,再到其他虚拟墙,就是hub&spoke的感觉,然后就是防火墙自己的内容,每个墙都需要配置自己的路由和策略,首先虚拟墙的方向由虚拟墙内的路由来控制,其次再匹配虚拟墙内的安全策略。