Hillstone-HCSP之路:防火墙虚拟化技术

发布时间 2023-06-29 10:06:36作者: f_carey

HCSP之路:防火墙虚拟化技术

1 虚拟路由器

  • VRouter的功能与路由器相同,并且拥有自己的路由表。系统有一个默认VRouter,即trust-vr,同时系统支持多VRouter(多VR)功能。

1.1 Vrouter上虚拟路由器配置

配置步骤:

  1. 开启vrouter功能
  2. 创建vrouter
  3. 将zone添加进vrouter
  4. 将接口添加进zone
# 开启防火墙VRouter功能
exec vrouter enable

# 进入vrouter配置模式
ip vrouter <vrouter-name>

# 将其他Vrouter中的路由条目引入到当前Vrouter
# 从其他Vrouter中引入的路由条目优先级低于Vrouter自身的路由
import vrouter vrouter-name {connected | static | rip | ospf | bgp}

1.2 多VR独立转发配置实例

image-20220621120348678

# 开启多VR功能并重启后,创建VR1
ip vrouter VR1

#  创建安全域(默认属于trust-vr)
zone zone1 
exit
zone zone2
exit
zone zone3
# 将安全域划分到VR1下
  vrouter VR1
exit
zone zone4
# 将安全域划分到VR1下
  vrouter VR1
exit
#  配置接口
interface ethernet0/1
  zone zone1
  ip address 10.1.1.1/24
exit
interface ethernet0/2
  zone zone2
  ip address 10.1.2.1/24
exit
interface ethernet0/3
  zone zone3
  ip address 10.1.1.1/24
exit
interface ethernet0/4
  zone zone4
  ip address 10.1.2.1/24
exit
policy-global
  rule from any to any service any permit 
exit

1.3 多VR跨VR转发配置

image-20220621140744182

# 开启多VR功能并重启后,创建VR1
ip vrouter "VR1"

#  创建安全域(默认属于trust-vr)
zone "zone1"
  vrouter "VR1"
exit
interface ethernet0/1
  zone  "zone1"
  ip address 1.1.1.1 255.255.255.0
exit
interface ethernet0/2
  zone  "zone2"
  ip address 10.1.1.1 255.255.255.0
exit
interface ethernet0/3
  zone  "zone2"
  ip address 10.1.2.1 255.255.255.0
exit
ip vrouter "trust-vr"
  ip route 1.1.1.0/24 vrouter "VR1"
exit
ip vrouter "VR1"
  ip route 0.0.0.0/0 vrouter "trust-vr"
exit
policy-global
  rule from any to any service any permit 
exit

2 虚拟交换机

  • 默认情况下,StoneOS有一个VSwitch,称作VSwitch1。
  • 用户每新建一个VSwitch,系统都会为VSwitch自动生成一个VSwitch接口(VSwitchIF)。通过把
    接口绑定到安全域,再把安全域绑定到VSwitch,用户可以把接口绑定到VSwitch。
  • 一个VSwitch就是一个二层转发域,每个VSwitch都有自己独立的MAC地址表

2.1 透明模式VLAN标记转换

image-20220621163622303

# 创建新vs,vs1默认创建
vswitch "vswitch2"
exit

# 创建二层安全域并加入vs
zone "l2-trust2" l2
  bind "vswitch2"
exit
zone "l2-untrust2" l2
  bind "vswitch2"
exit

# 创建子接口并将子接口加入安全域
interface ethernet0/1.10
  zone  "l2-trust"
exit
interface ethernet0/1.20
  zone  "l2-trust2"
exit
interface ethernet0/2.100
  zone  "l2-untrust"
exit
interface ethernet0/2.200
  zone  "l2-untrust2"
exit
policy-global
  rule from any to any service any permit 
exit

3 虚拟系统

3.1 VSYS简介

  • 虚拟系统(Virtual System),简称为VSYS,能够将一台物理防火墙在逻辑上划分成多个虚拟防火墙,每个虚拟防火墙系统都可以被看成是一台完全独立的防火墙设备,可以拥有独立的系统资源,且能够实现防火墙的大部分功能。每个虚拟防火墙系统之间相互独立,不允许直接相互通信。
  • StoneOSVSYS 具有以下特征:
    • 每个VSYS 拥有独立的管理员;
    • 每个VSYS 拥有独立的虚拟路由器、安全域、地址簿、服务簿等;
    • 每个VSYS 可以拥有独立的物理接口或者逻辑接口;
    • 每个VSYS 拥有独立的安全策略。
    • 直接通过root-vsys登入vsys-name\admin : vsys-name-admin(user:pwd)
    • 每个VSYS 的管理员登录时,必须在用户名中指定所属VSYS,格式为Vsys-name\admin : vsys-name-admin(user:pwd)
  • 根vsys和非根vsys
    • 系统默认有一个根VSYS(Root VSYS),根VSYS 不能被删除。
    • 只能在根VSYS 中创建或者删除非根VSYS。
    • 当删除一个非根VSYS 时,VSYS 中的所有对象均会被删除。
    • 当创建一个非根VSYS 时,系统自动创建与该VSYS 相对应的下列对象:
      • 一个RXW 权限的VSYS 管理员,名称为admin,密码为vsys_name-admin
      • 一个VRouter,名称为vsys_name-vr
    • 根VSYS 拥有默认VSwitch,即VSwitch1,创建非根VSYS 时,不会创建默认Vswitch
  • VSYS管理员
    • 每个VSYS 都拥有自己独立的管理员。根VSYS中的管理员称为根系统管理员,非根VSYS中的管理员称为非根系统管理员。
    • 非根系统管理员由根RXW 管理员登录后进入非根VSYS 进行创建。
    • 根系统管理员登录后,进入根VSYS,可以切换到非根VSYS 并对该非根VSYS 进行配置。
    • 非根系统管理员登录后,进入到该非根VSYS,不能进入根VSYS。
  • VSYS共享与专有对象
    • VSYS 中的VRouter、VSwitch、安全域和接口对象具有专有和共享属性。
    • 专有对象:专有对象专属于某个VSYS,不可以被其它VSYS 引用。根VSYS 和非根VSYS中均可包含专有对象。
    • 共享对象:共享对象可被多个VSYS 共享。共享对象只能属于根VSYS,并且只能在根VSYS中进行配置;非根VSYS 只能引用共享对象,不能对其进行配置。共享对象的名称必须全局唯一,任何一个VSYS 中的对象都不可以与同类共享对象重名。
    • 共享时先共享vrouter,然后是安全域

3.2 VSYS实现

# 开启vsys功能,重启生效
exec feature-trial vsys enable

# 创建两个非根vsys
vsys vsys-a
exit
vsys vsys-b
exit

# 配置接口、路由、SNAT规则
interface ethernet0/1
  zone untrust
  ip address 1.1.1.2/24
exit
ip vrouter trust-vr
  ip route 0.0.0.0/0 1.1.1.1
  snatrule from any to any eif ethernet0/1 trans-to eif-ip mode dynamicport
exit

# 配置Root VSYS 的trust-vr为共享VR
ip vrouter trust-vr
  vsys-shared
exit

# 配置Root VSYS 的untrust zone 为共享安全域
zone untrust
  vsys-shared
exit

# 分配接口到vsys-a和vsys-b
interface ethernet0/2
  export-to vsys-a
exit
interface ethernet0/3
  export-to vsys-b
exit

# Vsys-a配置:
enter-vsys vsys-a
  interface ethernet0/0
    zone vsys-a-trust
    ip address 192.168.1.1/24
    exit

  policy-global
    Rule from any to any from-zone vsys-a-trust to-zone untrust permit
  exit

  ip vrouter vsys-a-vr
    ip route 0.0.0.0/0 vrouter trust-vr
  exit
exit-vsys

# Vsys-b配置:
enter-vsys vsys-b
  interface ethernet0/1
    zone vsys-b-trust
    ip address 192.168.2.1/24
  exit

  policy-global
    Rule from any to any from-zone vsys-b-trust to-zone untrust permit
  exit
  ip vrouter vsys-b-vr
    ip route 0.0.0.0/0 vrouter trust-vr
  exit
exit-vsys

3.3 simple-switch

解决非根VSYS间互访问题

image-20220621221305020

# 创建vsys
vsys "vsys-1"
exit
vsys "vsys-2"
exit
# 全局开启vsys switch转发模式
vsys-switch-mode 
# 创建simple-vswitch
vswitch "vswitch2" simple-switch
# 为simple-vswitch下创建安全域,因为vport需要使用
zone "l2-newzone"  l2
  bind "vswitch2"
exit
interface vport1
  zone "l2-newzone"
exit
interface vport2
  zone "l2-newzone"
exit

# 划分接口至vsys-1、vsys-2
interface ethernet0/1
  vsys "vsys-1"
exit
interface ethernet0/2
  vsys "vsys-2"
exit
interface vwanif1   
  vsys "vsys-1"
exit
interface vwanif2
  vsys "vsys-2"
exit
# 划归root-vsys
interface vwanif3
  zone  "trust"
  ip address 12.1.1.100 255.255.255.0
  manage http
  manage ping
exit

ip vrouter “trust-vr” 
  snatrule id 1 from "Any" to "Any" service "Any" eif vwanif3 trans-to eif-ip mode dynamicport
exit

# Vsys-1配置:
interface vwanif1
  zone  "untrust-a"
  ip address 12.1.1.1 255.255.255.0
  manage ping
  manage http
exit
interface ethernet0/1
  zone  "trust-a"
  ip address 10.1.1.1 255.255.255.0
  manage ping
exit
ip vrouter "vsys-1-vr"
  ip route 10.2.2.0/24 12.1.1.2
exit

rule from trust-a to untrust-a service any permit

# Vsys-2配置:
interface vwanif1
  zone  "untrust-b"
  ip address 12.1.1.2 255.255.255.0
  manage ping
  manage http
exit
interface ethernet0/1
  zone  "trust-b"
  ip address 10.2.2.1 255.255.255.0
  manage ping
exit
ip vrouter "vsys-2-vr"
ip route 10.1.1.0/24 12.1.1.1
exit

rule from trust-b to untrust-b service any permit
rule from untrust-b to trust-b service any permit