• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

03-虚拟化技术配置指导

02-Context配置

本章节下载  (212.09 KB)

docurl=/cn/Service/Document_Software/Document_Center/IP_Security/YYAQWG_V7/H3C_SecPath_L5000/Configure/Operation_Manual/H3C_CG(V7)(R8110_R8107_R8112_R8102)-6W103/03/201805/1078274_30005_0.htm

02-Context配置


1 Context

1.1  Context简介

通过虚拟化技术将一台物理防火墙划分成多台逻辑防火墙,每台逻辑防火墙就称为一个Context。每个Context拥有自己专属的软硬件资源,独立运行。

对于用户来说,每个Context就是一台独立的防火墙,方便管理和维护;对于管理者来说,可以将一台物理设备虚拟成多台逻辑设备供不同的分支机构使用,可以保护现有投资,提高组网灵活性。

1.1.1  Context的应用

图1-1所示,LAN 1、LAN 2和LAN 3是三个不同的局域网,它们通过同一台防火墙Firewall连接到外网。通过虚拟化技术,能让一台防火墙当三台防火墙使用。具体做法是,在Firewall上创建三个Context(Context 1、Context 2、Context 3),分别负责LAN 1、LAN 2、LAN 3的安全接入。LAN 1、LAN 2、LAN 3的网络管理员可以(也只能)分别登录到自己的防火墙进行配置、保存、重启等操作,不会影响其它网络的使用,其效果等同于LAN 1、LAN 2和LAN 3分别通过各自的防火墙Firewall 1、Firewall 2、Firewall 3接入Internet。

图1-1 Context组网示意图

 

1.1.2  缺省Context和非缺省Context

·     设备支持Context功能后,整台物理设备就是一个Context,称为缺省Context,如图1-1中的Firewall。当用户登录物理设备时,实际登录的就是缺省Context。用户在物理设备上的配置实质就是对缺省Context的配置。缺省Context的名称为Admin,编号为1。缺省Context不需要创建,不能删除。

·     与缺省Context相对应的是非缺省Context,如图1-1中的Context 1、Context 2、Context 3。非缺省Context是管理员在设备上通过命令行创建的,可分配给不同的接入网络使用。

·     缺省Context拥有对整台物理设备的所有权限,它可以使用和管理设备所有的资源。缺省Context下可以创建/删除非缺省Context,给非缺省Context分配CPU资源/磁盘/内存空间、接口,没有分配的CPU资源/磁盘/内存空间、接口由缺省Context使用和管理。

·     非缺省Context下不可再创建/删除非缺省Context,它只能使用缺省Context分配给自己的资源,并在缺省Context指定的资源限制范围内工作,不能抢占其他Context或者系统剩余的资源。

1.2  Context配置任务简介

表1-1 Context配置任务简介

配置任务

说明

详细配置

创建Context

必选

1.3 

为Context分配资源

为Context分配CPU/磁盘/内存资源

必选

1.4.1 

为Context分配接口

必选

1.4.2 

限制Context会话并发数

可选

1.4.3 

限制Context会话新建速率

可选

1.4.4 

启动Context

必选

1.5 

访问和管理Context

必选

1.6 

 

1.3  创建Context

创建Context相当于构造了一台新的防火墙。

表1-2 创建Context

操作

命令

说明

进入系统视图

system-view

-

创建Context,并进入Context视图

context context-name [ id context-id ]

缺省情况下,设备上存在缺省Context,名称为Admin,编号为1

配置Context的描述信息

description text

缺省情况下,缺省Context描述信息为DefaultContext。非缺省Context没有配置描述信息

 

1.4  为Context分配资源

1.4.1  为Context分配CPU/磁盘/内存资源

Context进驻安全引擎组后,才能使用安全引擎组中安全引擎上的资源,包括CPU、磁盘和内存。如果多个Context进驻同一个安全引擎,这些Context会共享该安全引擎的CPU/磁盘/内存资源,为了防止一个Context过多的占用CPU/磁盘/内存,而导致其它Context无法运行,需要限制Context对CPU/磁盘/内存资源的使用。

(1)     CPU权重

当CPU无法满足所有Context的处理需求时,系统将按照CPU权重值为每个Context分配处理时间。通过调整Context的权重,可以使指定的Context获得更多的CPU资源,保证关键业务的运行。例如:在三个Context中,将处理关键业务的Context的CPU权重设置为2,其余两个Context的CPU权重设置为1,则当CPU处理能力不足时,将为关键业务Context提供2倍于其它Context的处理时间。

(2)     磁盘空间上限

执行limit-resource disk命令前,请使用display context resource命令查看Context当前实际已经使用的磁盘空间大小。配置值应大于Context当前实际已经使用的磁盘空间大小,否则,会导致Context申请新的磁盘空间失败,从而无法进行文件夹创建、文件拷贝和保存等操作。

请在Context启动后,配置磁盘上限。因为,Context创建后,如果没有启动,磁盘使用值为0,此时如果配置磁盘上限,请尽量不要配置过小的上限,否则,可能导致Context启动不了。

(3)     内存空间上限

执行limit-resource memory命令前,请使用display context resource命令查看Context当前实际已经使用的内存空间大小。配置值应大于Context当前实际已经使用的内存空间大小,否则,会导致Context申请内存失败引起功能异常。

请在Context启动后,再配置内存上限,并且配置的上限值不应过小,以免Context内业务申请不到内存后引起功能不正常。

表1-3 为Context分配CPU/磁盘/内存资源

操作

命令

说明

进入系统视图

system-view

-

进入Context视图

context context-name

-

指定Context的CPU权重

limit-resource cpu weight weight-value

缺省情况下,Context的CPU权重为10

配置Context可使用的磁盘空间上限

limit-resource disk slot slot-number cpu cpu-number ratio limit-ratio

缺省情况下,进驻到同一安全引擎的所有Context共享该安全引擎的所有磁盘空间,每个Context可使用的磁盘空间上限为该安全引擎的空闲磁盘空间值

如果设备上有多块磁盘,该命令对所有磁盘生效

配置Context可使用的内存空间上限

limit-resource memory slot slot-number cpu cpu-number ratio limit-ratio

缺省情况下,进驻到同一安全引擎的所有Context共享该安全引擎的所有内存空间,每个Context可使用的内存空间上限为该安全引擎的空闲内存空间值

 

1.4.2  为Context分配接口

设备上的所有接口都属于缺省Context,不属于任何非缺省Context。请给非缺省Context分配接口,它才能和网络中的其它设备通信。

为了提高防火墙接口的利用率,在给Context分配接口时,可以选择:

·     独占方式分配(不带share参数)。使用该方式分配的接口仅归该Context所有、使用。用户登录该Context后,能查看到该接口,并执行接口支持的所有命令。

·     共享方式分配(带share参数):表示将一个接口分配给多个Context使用,这些Context共享这个物理接口,但是在各个Context内会创建一个同名的虚接口,这些虚接口具有不同的MAC地址和IP地址。设备从共享的物理接口接收报文后交给对应的虚拟接口处理;出方向,虚拟接口处理完报文后,会交给共享的物理接口发送。使用该方式,可以提高防火墙接口的利用率。通过共享方式分配的接口:

¡     在缺省Context内仍然存在该接口,该接口可执行接口支持的所有命令;

¡     在非缺省Context内,会新建一个同名接口,用户登录这些Context后,能查看到该接口,但只能执行shutdowndescription以及网络/安全相关的命令。

表1-4 为Context分配接口

操作

命令

说明

进入系统视图

system-view

-

进入Context视图

context context-name

-

为Context分配接口

allocate interface { interface-type interface-number }&<1-24> [ share ]

二者选其一

缺省情况下,设备上的所有接口都属于缺省Context,不属于任何非缺省Context

allocate interface interface-type interface-number1 to interface-type interface-number2 [ share ]

 

1.4.3  限制Context会话并发数

如果一个Context建立了太多会话表会导致其他Context的会话由于内存不够而无法建立,为了防止这种情况,需要限制Context建立会话表的数量。

需要注意的是:

·     Context会话并发数限制对本机流量不生效,例如:FTP、Telnet、SSH、HTTP和HTTP类型的七层负载均衡等业务。

·     一个Context的最大会话数,是在进驻的每个安全引擎内独立计算的,即Context进驻的每个安全引擎都有相同的最大会话数,多个报文分散在不同引擎处理时,实际建立的会话数会大于限制的值。

表1-5 为Context限制会话并发数

操作

命令

说明

进入系统视图

system-view

-

进入Context视图

context context-name

-

设置Context的单播会话并发数限制

capability session maximum max-number

缺省情况下,不限制该Context允许的单播会话并发数

 

1.4.4  限制Context会话新建速率

如果一个Context的会话新建速率过快会导致其他Context由于CPU处理能力不够而无法建立会话,为了防止这种情况,需要限制Context的会话新建速率。

需要注意的是:

·     Context会话新建速率限制对本机流量不生效,例如:FTP、Telnet、SSH、HTTP和HTTP类型的七层负载均衡等业务。

·     一个Context的会话新建速率,是在进驻的每个安全引擎内独立计算的,即Context进驻的每个安全引擎都有相同的会话新建速率,多个报文分散在不同引擎处理时,实际的会话新建速率会大于限制的值。

表1-6 为Context限制会话新建速率

操作

命令

说明

进入系统视图

system-view

-

进入Context视图

context context-name

-

设置Context的会话新建速率限制

capability session rate max-value

缺省情况下,不限制该Context允许的会话新建速率

 

1.5  启动Context

Context创建后需要执行context start命令,才能完成新Context的初始化,相当于上电启动。启动后,用户可以登录到该Context执行配置。

正常程序启动Context时,设备会先做一些检查(比如Context的主、备进程能否正常启动),满足条件后,才启动Context,该命令会保证主备的Context状态一致,如果某成员设备或安全引擎上的Context启动失败,则会导致所有该Context进程启动失败。正常程序启动的Context能更好的保证Context的业务正常运行,所以,通常情况下,使用context start命令启动Context即可。force参数用于以下场景:在IRF环境,如果主备倒换或者配置恢复过程中出现内存不足,会导致部分Context虽然可以处理业务,但因为它们的主、备进程状态不一致,这些Context一直停留在updating或者inactive状态。当内存资源恢复后,执行context start force命令,设备会在不中断业务的情况下,尽可能修复不正常的Context进程,让这些Context恢复到正常状态。

表1-7 启动Context

操作

命令

说明

进入系统视图

system-view

-

进入Context视图

context context-name

-

启动Context

context start [ force ]

-

 

提示

在使用context start force前,用户可以通过display contextdisplay system internal context configuration-statusdisplay system internal context running-status命令查看Context的运行情况。

 

1.6  访问和管理Context

只要用户和防火墙之间路由可达,就能使用switchto context命令,通过防火墙和Context的内部连接,登录Context。

表1-8 登录Context

操作

命令

说明

进入系统视图

system-view

-

登录Context

switchto context context-name

必选

 

用户登录Context后,可以在Context的用户视图执行quit命令来退出登录。此时,命令视图将从当前Context的用户视图返回到缺省Context的系统视图。

除了上述方式,用户还可以通过Context上的接口,使用该Context的IP地址进行Telnet/SSH登录。

1.7  Context显示和维护

在完成Context相关配置后,在任意视图下执行display命令,可以显示配置后Context的运行情况,通过查看显示信息,来验证配置的效果。

在用户视图下,用户可以执行reset命令清除不在位的安全引擎的数据信息。

表1-9 Context显示和维护

操作

命令

显示安全引擎组的信息

display blade-controller-team [ blade-controller-team-name | id blade-controller-team-id ]

显示Context的相关信息

display context [ name context-name ]

显示Context的接口列表

display context [ name context-name ] interface

显示Context对CPU/磁盘/内存资源的使用情况

display context [ name context-name ] resource [ cpu | disk | memory ] [ slot slot-number cpu cpu-number ]

 

1.8  注意事项

1.8.1  引擎组相关注意事项

·     一个Context只能绑定一个引擎组;一个引擎组可以和多个Context绑定。

·     一个引擎插卡只能加入一个引擎组;一个引擎组中可以加入多个引擎插卡。

·     如果将非缺省引擎组中的最后一个引擎插卡移出,系统会自动删除该非缺省引擎组。

·     如果将引擎插卡从一个引擎组移入其它引擎组,系统会自动重启该引擎插卡,导致该引擎插卡上的业务中断。请先规划引擎组,再配置

1.8.2  分配VLAN时的注意事项

·     共享VLAN必须是设备上存在的VLAN。请先创建VLAN,再指定共享VLAN。

·     VLAN 1不能被共享。

·     端口的缺省VLAN不能被共享。

1.8.3  分配接口时的注意事项

(1)     有些接口可以创建子接口,这样的接口我们称为父接口。分配父接口与子接口时:

·     不能将子接口独占分配给Context。

·     如果子接口已经被分配,则不能再分配其父接口。

·     如果父接口已经被分配,则不能再分配其子接口。

(2)     分配聚合接口与成员接口时:

·     聚合接口只能共享分配给Context。

·     不能将成员接口共享分配给Context。

(3)     如果接口已经被共享分配,则不能再独占分配。需将共享分配配置取消后,才能独占分配。

(4)     当设备运行在IRF模式时,禁止将IRF物理端口分配给自定义Context。

(5)     当三层物理子接口与聚合子接口作为冗余口的成员端口时,禁止把其主接口共享给自定义Context。

1.9  Context典型配置举例

1. 组网需求

将设备Firewall虚拟成三台独立的防火墙:Context cnt1、Context cnt2、Context cnt3,并分给三个不同的用户网络用作接入防火墙。

·     LAN 1的用户多,业务需求复杂,因此需要给Context cnt1提供较大的磁盘/内存空间使用上限,以便保存配置文件、启动文件和系统信息等;Context cnt2使用系统缺省的磁盘空间;LAN 3人员规模小,上网流量比较少,对接入防火墙的配置及性能要求较低,因此对Context cnt3提供较低的CPU权重。

·     GigabitEthernet1/0/1和GigabitEthernet1/0/11分配给Context cnt1、GigabitEthernet1/0/2和GigabitEthernet1/0/12分配给Context cnt2、GigabitEthernet1/0/3和GigabitEthernet1/0/13分配给Context cnt3。

2. 组网图

图1-2 Context典型配置组网图

 

3. 配置步骤

(1)     配置Context cnt1

# 创建Context cnt1,设置描述信息。

[Sysname] context cnt1

[Sysname-context-2-cnt1] description context-1

# 配置Context cnt1在1号槽位CPU号为0的安全引擎上的磁盘使用上限为60%。

[Sysname-context-2-cnt1] limit-resource disk slot 1 cpu 0 ratio 60

# 配置Context cnt1在1号槽位cpu号为0的安全引擎上的内存使用上限为60%。

[Sysname-context-2-cnt1] limit-resource memory slot 1 cpu 0 ratio 60

# 配置Context cnt1的CPU权重为8。

[Sysname-context-2-cnt1] limit-resource cpu weight 8

# 启动Context cnt1。

[Sysname-context-2-cnt1] context start

It will take some time to start the context...

Context started successfully.

# 将接口GigabitEthernet1/0/1和GigabitEthernet1/0/11分配给Context cnt1。

[Sysname-context-2-cnt1] allocate interface gigabitethernet 1/0/1 gigabitethernet 1/0/11

[Sysname-context-2-cnt1] quit

(2)     配置Context cnt2

# 创建Context cnt2,设置描述信息

[Sysname] context cnt2

[Sysname-context-3-cnt2] description context-2

# 启动Context cnt2。

[Sysname-context-3-cnt2] context start

It will take some time to start the context...

Context started successfully.

# 将接口GigabitEthernet1/0/2和GigabitEthernet1/0/12分配给Context cnt2。

[Sysname-context-3-cnt2] allocate interface gigabitethernet 1/0/2 gigabitethernet 1/0/12

[Sysname-context-3-cnt2] quit

(3)     配置Context cnt3

# 创建Context cnt3,设置描述信息

[Sysname] context cnt3

[Sysname-context-4-cnt3] description context-3

#配置Context cnt3的CPU权重为2。

[Sysname-context-4-cnt3] limit-resource cpu weight 2

# 启动Context cnt3。

[Sysname-context-4-cnt3] context start

It will take some time to start the context...

Context started successfully.

# 将接口GigabitEthernet1/0/3和GigabitEthernet1/0/13分配给Context cnt3。

[Sysname-context-4-cnt3] allocate interface gigabitethernet 1/0/3 gigabitethernet 1/0/13

[Sysname-context-4-cnt3] quit

完成上述配置后,可使用switchto context命令登录到指定的Context,进行业务相关的配置。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们