02-Context配置
本章节下载: 02-Context配置 (305.93 KB)
设备各款型对于本节所描述的特性支持情况有所不同,详细差异信息如下:
型号 |
特性 |
描述 |
F1000-E-G2/F1000-A-G2/F1000-S-G2/F1000-C-G2 |
Context |
支持 |
F100-E-G2/F100-A-G2/F100-M-G2/F100-S-G2/F100-C-G2 |
· F100-E-G2/F100-A-G2:支持 · F100-M-G2/F100-S-G2/F100-C-G2:不支持 |
|
F1000-C-EI/F100-E-EI/F100-A-EI/F100-C-EI/F100-A-SI |
· F1000-C-EI/F100-E-EI/F100-A-EI/F100-A-SI:支持 · F100-C-EI:不支持 |
|
F100-C-HI/F100-S-HI/F100-A-HI/F1000-C-HI |
· F100-A-HI/F1000-C-HI:支持 · F100-C-HI/F100-S-HI:不支持 |
|
F1000-C8180/F1000-C8170/F1000-C8160/F1000-C8150/F1000-C8130/F1000-C8120 |
· F1000-C8180/F1000-C8170/F1000-C8160:支持 · F1000-C8150/F1000-C8130/F1000-C8120:不支持 |
|
F100-C80-WiNet/F100-C60-WiNet |
不支持 |
通过虚拟化技术将一台物理防火墙划分成多台逻辑防火墙,每台逻辑防火墙就称为一个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资源/磁盘/内存空间、接口、VLAN,没有分配的CPU资源/磁盘/内存空间、接口、VLAN由缺省Context使用和管理。
· 非缺省Context下不可再创建/删除非缺省Context,它只能使用缺省Context分配给自己的资源,并在缺省Context指定的资源限制范围内工作,不能抢占其他Context或者系统剩余的资源。
· 非缺省Context下不支持共享口的报文捕获功能,关于报文捕获功能的详细描述请参见“网络管理和监控配置指导”中的“报文捕获配置”。
非缺省Context中的DPI业务功能使用缺省Context中的应用层检测引擎对报文进行匹配,当创建、删除、关闭和重启非缺省Context时,缺省Context中的应用层检测引擎会重新激活,激活期间设备上的所有Context均不能对报文进行DPI业务处理。
· 对于共享VLAN,请先在缺省Context内创建VLAN,再通过allocate vlan命令将指定VLAN分配给指定的Context使用。
· VLAN 1不能被共享。
· 端口的缺省VLAN不能被共享。
· 已经创建了VLAN接口的VLAN不能被共享。
(1) 有些接口可以创建子接口,这样的接口我们称为父接口。分配父接口与子接口时:
· 不能将子接口独占分配给Context。
· 如果子接口已经被分配,则不能再分配其父接口。
· 如果父接口已经被分配,则不能再分配其子接口。
(2) 分配聚合接口与成员接口时:
· 聚合接口只能共享分配给Context。
· 不能将成员接口共享分配给Context。
(3) 如果接口已经被共享分配,则不能再独占分配。需将共享分配配置取消后,才能独占分配。
(4) 不允许独占分配逻辑接口。
(5) 禁止将IRF物理端口分配给自定义Context。
(6) 当三层物理子接口与聚合子接口作为冗余口的成员端口时,禁止把其主接口共享给自定义Context。
表1-1 Context配置任务简介
配置任务 |
说明 |
详细配置 |
|
创建Context |
必选 |
||
为Context分配资源 |
为Context分配CPU/磁盘/内存资源 |
必选 |
|
为Context分配接口 |
必选 |
||
为Context分配VLAN |
可选 |
||
限制Context的吞吐量 |
可选 |
||
限制Context对象策略规则总数 |
可选 |
||
限制Context安全策略规则总数 |
可选 |
||
限制Context会话并发数 |
可选 |
||
限制Context会话新建速率 |
可选 |
||
限制Context的SSL VPN登录用户数 |
可选 |
||
启动Context |
必选 |
||
访问和管理Context |
必选 |
创建Context相当于构造了一台新的防火墙。
创建Context时,通过vlan-unshared参数可选择是否和其它Context共享VLAN:
· 如果选择和其它Context共享VLAN,需要在缺省Context内创建并配置VLAN,再分配给非缺省Context。共享VLAN由多个Context共同所有。VLAN 1为系统缺省VLAN,由缺省Context独有,不能分配给非缺省Context。
· 如果选择不和其它Context共享VLAN,请登录该Context,并使用vlan命令创建VLAN 2~VLAN 4094。VLAN 1为缺省VLAN,用户不能手工创建和删除。Context各自使用和管理VLAN,互不干扰。
表1-2 创建Context
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Context,并进入Context视图 |
context context-name [ id context-id ] [ vlan-unshared ] |
缺省情况下,设备上存在缺省Context,名称为Admin,编号为1 |
配置Context的描述信息 |
description text |
缺省情况下,缺省Context描述信息为DefaultContext。非缺省Context没有配置描述信息 |
如果设备上创建了多个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可使用的内存空间上限 |
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以及网络/安全相关的命令。
· 当三层子接口作为冗余口的成员端口时,禁止把其主接口共享给自定义Context。
· 不允许独占分配逻辑接口
表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时,如果不选择vlan-unshared参数,则表示和其它Context共享VLAN。对于共享VLAN,请先在缺省Context内创建VLAN,再通过allocate vlan命令将指定VLAN分配给指定的Context使用。
表1-5 为Context分配VLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入Context视图 |
context context-name |
- |
为Context分配VLAN |
allocate vlan vlan-id&<1-24> |
二者选其一 缺省情况下,没有为Context分配VLAN |
allocate vlan vlan-id1 to vlan-id2 |
为了防止一个Context的报文过多而导致其它Context的报文被丢弃,需要限制Context的吞吐量当启用吞吐量限制时,系统优先处理协议报文,对于超过限制值的业务报文会被丢弃。
表1-6 限制Context的吞吐量
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入Context视图 |
context context-name |
- |
设置Context的吞吐量限制 |
capability throughput { kbps | pps } value |
缺省情况下,各Context不做吞吐量限制,按实际能力转发 |
一个Context内可以配置多个对象策略,一个对象策略内包含多个规则。如果不加限制,会出现大量规则占用过多的内存的情况,影响Context的其它功能正常运行,或者影响到其它Context。所以,请根据需要为Context设置对象策略规则总数限制。当规则总数达到限制值时,后续不能新增规则。关于对象策略的详细描述请参见“安全配置指导”中的“对象策略”。
表1-7 限制Context对象策略规则总数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入Context视图 |
context context-name |
- |
设置Context的对象策略规则总数限制 |
capability object-policy-rule maximum max-value |
缺省情况下,不限制Context的规则总数 |
一个Context内可以配置多个安全策略,一个安全策略内包含多个规则。如果不加限制,会出现大量规则占用过多的内存的情况,影响Context的其它功能正常运行。所以,请根据需要为Context设置安全策略规则总数限制。当规则总数达到限制值时,后续不能新增规则。关于安全策略的详细描述请参见“安全配置指导”中的“安全策略”。
表1-8 限制Context安全策略规则总数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入Context视图 |
context context-name |
- |
设置Context的安全策略规则总数限制 |
capability security-policy-rule maximum max-value |
缺省情况下,不限制Context的规则总数 |
如果一个Context建立了太多会话表会导致其他Context的会话由于内存不够而无法建立,为了防止这种情况,需要限制Context建立会话表的数量。
需要注意的是:Context会话并发数限制对本机流量不生效,例如:FTP、Telnet、SSH、HTTP和HTTP类型的七层负载均衡等业务。
表1-9 为Context限制会话并发数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入Context视图 |
context context-name |
- |
设置Context的单播会话并发数限制 |
capability session maximum max-number |
缺省情况下,不限制该Context允许的单播会话并发数 |
如果一个Context的会话新建速率过快会导致其他Context由于CPU处理能力不够而无法建立会话,为了防止这种情况,需要限制Context的会话新建速率。
需要注意的是: Context会话新建速率限制对本机流量不生效,例如:FTP、Telnet、SSH、HTTP和HTTP类型的七层负载均衡等业务。
表1-10 为Context限制会话新建速率
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入Context视图 |
context context-name |
- |
设置Context的会话新建速率限制 |
capability session rate max-value |
缺省情况下,不限制该Context允许的会话新建速率 |
目前SSL VPN的用户数目由设备License控制,设备全部用户总数不能超过License控制,如果一个Context的用户总数到达了License限制,则会出现其他Context用户无法上线的问题,因此需要限制Context的上线用户数,同时设备全部用户总数仍受License控制。
表1-11 为Context限制SSL VPN登录用户数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入Context视图 |
context context-name |
- |
设置Context的SSL VPN登录用户数限制 |
capability sslvpn-user maximum max-number |
缺省情况下,未对Context的SSL VPN登录用户总数进行限制,由设备上SSL VPN Licence使用情况决定 |
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命令,设备会在不中断业务的情况下,尽可能修复不正常的Conext进程,让这些Context恢复到正常状态。
在使用context start force前,用户可以通过display context、display system internal context configuration-status、display system internal context id contex-id running-status命令查看Context的运行情况。
表1-12 启动Context
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入Context视图 |
context context-name |
- |
启动Context |
context start [ force ] |
- |
只要用户和防火墙之间路由可达,就能使用switchto context命令,通过防火墙和Context的内部连接,登录Context。
表1-13 登录Context
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
登录Context |
switchto context context-name |
必选 |
用户登录Context后,可以在Context的用户视图执行quit命令来退出登录。此时,命令视图将从当前Context的用户视图返回到缺省Context的系统视图。
除了上述方式,用户还可以通过Context上的接口,使用该Context的IP地址进行Telnet/SSH登录。
在完成Context相关配置后,在任意视图下执行display命令,可以显示配置后Context的运行情况,通过查看显示信息,来验证配置的效果。
在用户视图下,用户可以执行reset命令清除相关数据信息。
表1-14 Context显示和维护
操作 |
命令 |
显示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的VLAN列表 |
display context [ name context-name ] vlan |
将设备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的磁盘使用上限为60%。
[Sysname-context-2-cnt1] limit-resource disk slot 1 cpu 0 ratio 60
# 配置Context cnt1的内存使用上限为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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!