Context技术白皮书 Copyright©2024新华三技术有限公司版权所有,保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。 目录 1概述1 1.1产生背景1 1.2技术优点1 2Context技术实现2 2.1Context的创建2 2.2Context资源分配2 2.2.1将Context进驻安全引擎2 2.2.2为Context分配软硬件资源3 2.3限制Context使用的资源4 2.4Context的启动6 2.4.1Context-OS6 2.4.2Context的数据同步7 2.4.3Context的进程隔离7 2.5Context访问和管理7 2.5.1登录通道7 2.5.2配置方式8 2.5.3配置文件8 2.5.4日志输出8 2.5.5用户管理8 2.6Context入方向报文限速9 2.7停止Context9 2.8删除Context9 3RBM+Context实现多虚“多”9 4典型组网应用10 4.1大中型企业网隔离典型组网应用10 4.2云计算数据中心网关典型组网应用11 4.3跨VPC互通典型组网应用12 4.4RBM+Context综合组网应用13 1概述 1.1产生背景 Context是一种虚拟化技术,可以使单个物理网络设备承载多个独立的逻辑分区,每个分区作为独立网络设备运行,拥有专属的配置、资源和策略。对于用户来说,每个Context就是一台独立的设备,方便管理和维护;对于管理者来说,可以将一台物理设备虚拟成多台逻辑设备供不同的分支机构使用,提高组网灵活性。 图1-1Context组网示意图 Internet Device LAN1 LAN2 Context3 Context2 Context1 Internet Device1Device2 Device3 LAN1 LAN3 LAN2 LAN3 Context技术的常见应用场景包括: 数据中心:数据中心可以在单个网络设备上独立管理不同企业、部门的业务,确保对共享网络资源的灵活控制。 云服务提供商:云服务提供商可以在同一物理设备上为多个客户提供量身定制的安全服务,同时确保租户隔离。 企业网:企业可以在不增加资金投入的前提下,为新增的业务需求分配独立的网络环境,确保新增业务快速上线。 本文档主要探讨Context技术的实现原理和典型应用。 1.2技术优点 Context具有以下优点: 资源优化:同一物理设备上创建的所有Context共用物理设备的物理接口、CPU、内存、磁盘资源,管理员可以根据需要为Context分配资源,或者将一个Context的资源收回分配给其它Context,使这些资源能得到最大利用。 可扩展性:随着组织的发展,Context能够在无需对物理设施进行大规模改造的情况下,轻松实现网络的扩展。这种灵活性使组织能够快速适应不断变化的业务需求,同时节省时间和成本,提高整体的运营效率。 租户隔离:每个Context拥有自己专属的软硬件资源,独立运行、独立转发、独立提供业务。创建、启动、重启、删除一个Context,不会影响其它Context的运行。 增强管理:多台Context集成在一台物理设备上,配置界面统一,可由一人维护,也可为每个 Context分派管理员,免去维护多台物理设备的烦恼,还可以节省机房空间。 节约成本:通过最小化硬件要求和优化资源分配,Context显著降低了硬件设备和运营支出。 2Context技术实现 2.1Context的创建 创建Context相当于构造了一台新的设备。 设备支持Context功能后,整台物理设备就是一个Context,称为缺省Context。当用户登录物理设备时,实际登录的就是缺省Context。用户在物理设备上的配置实质就是对缺省Context的配置。缺省Context的名称为Admin,编号为1。缺省Context不需要创建,不能删除。缺省Context拥 有对整台物理设备的所有权限,它可以使用和管理设备所有的硬件资源。缺省Context下可以创建/ 删除非缺省Context。 与缺省Context相对应的是非缺省Context,也称为用户Context。用户Context由缺省Context管理员创建,用户Context下不可再创建/删除用户Context。用户Context只能使用缺省Context分配给自己的资源,并在指定的资源限制内处理业务。 创建完成的用户Context状态为inactive,此状态下的Context并没有启动。Context的创建相当于组建了一台具有硬件基础的虚拟设备。 如无特殊说明,下文中的Context均指用户Context。 2.2Context资源分配 2.2.1将Context进驻安全引擎 本功能仅适用于配备安全业务板的设备。 安全引擎是设备中专门用于处理安全业务的硬件单元,每一个安全引擎对应安全业务板上的一个 CPU。如果一个安全业务板有多个CPU,则此安全业务板存在多个安全引擎。 用户Context创建后,不具有安全业务板的使用权。为了让业务有实际的运行环境,必须将用户Context部署到一个或多个安全引擎上(即进驻安全引擎),以此获得安全业务板的使用权。Context进驻安全引擎,需要通过安全引擎组来实现。安全引擎组是一个用于组织和管理多个安全 引擎的逻辑概念,由管理员手工创建。新创建的安全引擎组初始状态下不包含任何安全引擎,因此, 要使Context能在组内的安全引擎上运行,必须先将相关安全引擎加入该组。Context只能进驻一个安全引擎组,一个安全引擎组可以被多个Context共享。即安全引擎组和Context是一对多的关系。 在数据层面,安全引擎组内的所有安全引擎将同时负责安全业务处理和报文转发;而在管理层面,系统会自动选举一个安全引擎为主引擎,其余的则作为从安全引擎运行。当主安全引擎发生故障时,系统会自动选取一个从安全引擎升级为新的主安全引擎来接替其工作。 当新的安全引擎加入安全引擎组后,组内已部署的Context会自动扩展到新增引擎,无须额外配置。这种设计确保系统运行高效,同时在故障时能快速恢复,保障业务持续性。 2.2.2为Context分配软硬件资源 对于系统资源,各Context间可通过命令行分配协调,来达到资源最有效的利用。缺省Context上可以给用户Context分配的资源包括接口、VLAN、VXLAN、CPU资源、磁盘空间和内存空间。缺省情况下,设备上所有资源均属于缺省Context。管理员可以根据需要在各Context间进行资源 的灵活分配。 1.分配接口 设备上的所有接口都属于缺省Context,不属于任何用户Context。管理员必须给用户Context分配接口,它才能和网络中的其它设备通信。建议在Context启动前将接口资源配置好,以减少资源分配带来的系统震荡。 为了提高设备接口的利用率,在给Context分配接口时,可以选择: 独占方式分配:使用该方式分配的接口仅归该Context所有、使用。用户登录该Context后,能查看到该接口,并执行接口支持的所有命令。 共享方式分配:表示将一个接口分配给多个Context使用,这些Context共享这个物理接口,但是在各个Context内会创建一个同名的虚接口,这些虚接口具有不同的MAC地址和IP地址。设备从共享的物理接口接收报文后交给对应的虚拟接口处理;出方向,虚拟接口处理完报文后,会交给共享的物理接口发送。使用该方式,可以提高设备接口的利用率。通过共享方式分配的接口: 在缺省Context内仍然存在该接口,该接口可执行接口支持的所有命令; 在用户Context内,会新建一个同名接口,用户登录这些Context后,能查看到该接口,但只能执行description以及网络/安全相关的命令。 逻辑接口(如子接口、聚合接口等)仅支持共享方式分配,物理接口支持独占和共享两种方式分配。如果接口已经被共享分配,则不能再独占分配。需将共享分配配置取消后,才能独占分配。 为使用户Context之间可以互通,必须在缺省Context中将接口以共享方式分配给用户Context。 2.分配VLAN 创建Context时,可选择是否和其它Context共享VLAN: 如果选择和其它Context共享VLAN,需要在缺省Context内创建并配置VLAN,再分配给用户Context。共享VLAN由多个Context共同所有。在共享VLAN方式的用户Context中,不 支持将以太网接口切换为二层模式。也不支持以独占方式将二层以太网接口分配给共享VLAN 方式的用户Context。 如果选择不和其它Context共享VLAN,则在登录该Context后,创建VLAN。Context各自使用和管理VLAN,互不干扰。 VLAN1为系统缺省VLAN,用户不能手工创建和删除。由缺省Context独有,不能分配给用户 Context。 3.分配VXLAN 管理员可以根据需要为每个Context分配其专属的VXLAN。为Context分配的VXLAN仅归该 Context所有,其他Context不能对其进行使用、配置。 4.分配CPU资源 缺省情况下,所有Context会共享设备上的CPU资源。CPU资源具有可抢占性,如果某个Context分配了较少的CPU资源,当有突发的任务需要CPU处理,而其他Context任务较少时,该Context可抢占使用空闲的CPU;当其他Context同时也有大量任务需要CPU处理时,系统将按照CPU权重值为每个Context分配处理时间。 通过调整Context的CPU权重,可以使指定的Context获得更多的CPU资源,保证关键业务的运行。例如:在三个Context中,将处理关键业务的Context的CPU权重设置为2,其余两个Context的CPU权重设置为1,则当CPU处理能力不足时,将为关键业务Context提供2倍于其它Context的处理时间。 5.分配内存空间 缺省情况下,所有Context会共享设备上的内存空间。为了防止一个Context过多的占用内存,而导致其他Context无法正常运行业务,可以限制Context对内存的使用。 建议在Context正常启动后再为Context分配内存空间上限,如果Context仅创建未启动,可能会由于内存不足,造成Context无法正常启动。在Context启动后,配置的内存上限值还不应过小,以免Context内业务申请不到内存后引起功能不正常。 6.分配磁盘空间 缺省情况下,所有Context会共享设备上的磁盘空间。创建Context后,会在磁盘介质中创建对应的Context目录,存放该Context的配置文件、日志文件等掉电不丢失的数据。所有的Context共享设备的磁盘空间。为了防止一个Context过多的占用磁盘空间,而导致其他Context无法保存配置文件、系统日志等,可以限制Context对磁盘空间的使用。 建议在Context正常启动后再为Context分配磁盘空间上限。如果Context仅创建但未启动,那么磁盘使用值为0,此时如果配置磁盘空间上限的值小于Context启动后正常实际使用的值,可能导致Context不能正常启动。 2.3限制Context使用的资源 在多Context环境下,为确保系统资源的合理分配和使用,防止个别Context占用过多资源导致其他Context无法正常运行,需要从多个方面进行资源使用限制,包括Context的出方向吞吐量、安全