02-Context配置
本章节下载 (212.09 KB)
通过虚拟化技术将一台物理防火墙划分成多台逻辑防火墙,每台逻辑防火墙就称为一个Context。每个Context拥有自己专属的软硬件资源,独立运行。
对于用户来说,每个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组网示意图
· 设备支持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-1 Context配置任务简介
配置任务 |
说明 |
详细配置 |
|
创建Context |
必选 |
||
为Context分配资源 |
为Context分配CPU/磁盘/内存资源 |
必选 |
|
为Context分配接口 |
必选 |
||
限制Context会话并发数 |
可选 |
||
限制Context会话新建速率 |
可选 |
||
启动Context |
必选 |
||
访问和管理Context |
必选 |
创建Context相当于构造了一台新的防火墙。
表1-2 创建Context
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Context,并进入Context视图 |
context context-name [ id context-id ] |
缺省情况下,设备上存在缺省Context,名称为Admin,编号为1 |
配置Context的描述信息 |
description text |
缺省情况下,缺省Context描述信息为DefaultContext。非缺省Context没有配置描述信息 |
Context进驻安全引擎组后,才能使用安全引擎组中安全引擎上的资源,包括CPU、磁盘和内存。如果多个Context进驻同一个安全引擎,这些Context会共享该安全引擎的CPU/磁盘/内存资源,为了防止一个Context过多的占用CPU/磁盘/内存,而导致其它Context无法运行,需要限制Context对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可使用的内存空间上限为该安全引擎的空闲内存空间值 |
设备上的所有接口都属于缺省Context,不属于任何非缺省Context。请给非缺省Context分配接口,它才能和网络中的其它设备通信。
为了提高防火墙接口的利用率,在给Context分配接口时,可以选择:
· 独占方式分配(不带share参数)。使用该方式分配的接口仅归该Context所有、使用。用户登录该Context后,能查看到该接口,并执行接口支持的所有命令。
· 共享方式分配(带share参数):表示将一个接口分配给多个Context使用,这些Context共享这个物理接口,但是在各个Context内会创建一个同名的虚接口,这些虚接口具有不同的MAC地址和IP地址。设备从共享的物理接口接收报文后交给对应的虚拟接口处理;出方向,虚拟接口处理完报文后,会交给共享的物理接口发送。使用该方式,可以提高防火墙接口的利用率。通过共享方式分配的接口:
¡ 在缺省Context内仍然存在该接口,该接口可执行接口支持的所有命令;
¡ 在非缺省Context内,会新建一个同名接口,用户登录这些Context后,能查看到该接口,但只能执行shutdown、description以及网络/安全相关的命令。
表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 ] |
如果一个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允许的单播会话并发数 |
如果一个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允许的会话新建速率 |
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 context、display system internal context configuration-status、display system internal context running-status命令查看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登录。
在完成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 ] |
· 一个Context只能绑定一个引擎组;一个引擎组可以和多个Context绑定。
· 一个引擎插卡只能加入一个引擎组;一个引擎组中可以加入多个引擎插卡。
· 如果将非缺省引擎组中的最后一个引擎插卡移出,系统会自动删除该非缺省引擎组。
· 如果将引擎插卡从一个引擎组移入其它引擎组,系统会自动重启该引擎插卡,导致该引擎插卡上的业务中断。请先规划引擎组,再配置
· 共享VLAN必须是设备上存在的VLAN。请先创建VLAN,再指定共享VLAN。
· VLAN 1不能被共享。
· 端口的缺省VLAN不能被共享。
(1) 有些接口可以创建子接口,这样的接口我们称为父接口。分配父接口与子接口时:
· 不能将子接口独占分配给Context。
· 如果子接口已经被分配,则不能再分配其父接口。
· 如果父接口已经被分配,则不能再分配其子接口。
(2) 分配聚合接口与成员接口时:
· 聚合接口只能共享分配给Context。
· 不能将成员接口共享分配给Context。
(3) 如果接口已经被共享分配,则不能再独占分配。需将共享分配配置取消后,才能独占分配。
(4) 当设备运行在IRF模式时,禁止将IRF物理端口分配给自定义Context。
(5) 当三层物理子接口与聚合子接口作为冗余口的成员端口时,禁止把其主接口共享给自定义Context。
将设备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。
图1-2 Context典型配置组网图
(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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!