GIR技术白皮书
Copyright © 2022 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
在IP网络走向云端和虚拟化的今天,设备组网走向了多样化与复杂化,也加速了上层应用协议的产生,越来越多的上层应用给承载着路由协议等基础数据转发业务的网络设备带来巨大的挑战,这些设备的可靠性以及可用性也变得越来越重要。
当前,对设备进行升级调试等维护时,网络业务将无法维持,需要将设备进行隔离。但传统的隔离方式存在种种缺陷,如路由协议的GR或NSR等方式,需要各个业务模块自行配置,配置步骤繁多;“一刀切”式的主备倒换等方式,会将设备上的所有业务流量都进行隔离,在仅需要隔离部分业务的场景下缺乏灵活性。传统隔离方式在不断增长的网络中为新业务的快速部署和实施造成了一定困难。
在上述情形下,亟需一种配置简单、对各类网络服务影响最低以及能够灵活选择隔离操作的新方式来隔离设备,于是GIR应运而生。通过GIR(Graceful Insertion and Removal,平滑插入和移除)技术,在需要对设备进行维护时,用户只需配置一条命令就可以将设备从网络中隔离出来,且能够通过custom-profile自定义各业务模块采取的操作。在存在冗余路径的网络中,在设备隔离前,支持GIR的业务模块会提前引导流量切换至冗余路径,以防止业务中断,降低对网络的影响;当设备完成升级等维护操作后,用户可以通过GIR回切功能,将设备重新投入使用,恢复正常的业务处理。
相比传统的隔离方式,通过GIR进行设备隔离具有如下优点:
· 隔离和恢复设备操作简单、步骤自动化
用户仅需配置一条命令即可实现将设备隔离或将设备重新加入网络。用户在执行GIR正切或回切的命令后,GIR会自动在相关的业务模块中下发隔离或恢复的命令,免去了各个业务模块单独配置的繁琐操作。
· 灵活性高
GIR可以利用custom-profile,自由选择需要隔离的业务模块以及业务模块需要执行的动作。
在本文中,设备从普通模式切换到维护模式,称为正切;从维护模式切换到普通模式,称为回切。
GIR将设备的运行模式分为如下两种:
· 普通模式:设备执行GIR模式切换功能前的状态,该模式下设备正常运行,流量可以正常转发和处理。
· 维护模式:设备执行GIR模式切换功能后的状态,该模式下设备无法正常转发流量,流量被切到其他设备,用户可以对本设备进行维护或升级操作。
GIR通过模式切换命令,可以一键下发各个协议的隔离命令给对应的业务模块,各业务模块将流量切换至冗余路径,然后设备进入维护模式。设备在完成维护或升级操作后,用户同样可以通过模式切换命令,使设备退出维护模式。设备回到普通模式前,GIR向各业务模块下发取消隔离的命令,令各业务模块恢复正常工作,维护后的设备会重新加入到有效转发路径当中。
目前,GIR支持的业务模块有:BGP、ISIS、OSPF、OSPFv3、VRRP、M-LAG(通过对LACP协议下发聚合流量隔离命令实现M-LAG接口的流量隔离)和S-Trunk。
在实际应用中,设备支持的GIR模式切换类型和方式如表2-1所示:
表2-1 GIR模式切换类型和方式
模式切换类型 |
模式切换方式 |
从普通模式正切到维护模式 |
· isolate方式,设备缺省使用此方式 · shutdown方式 · custom-profile方式 isolate方式和shutdown方式均会为业务模块下发需要执行的固定动作,custom-profile方式由用户自定义要为业务模块下发的命令 |
从维护模式回切到普通模式 |
· 未指定回切方式时会根据记录的正切的方式,使用与正切对应的方式回切回普通模式。如果正切时采用的是custom-profile方式,则采用isolate正切对应的反向操作回切。用户可以手动执行命令进行回切,也可以设置延时自动回切功能,设备在指定时间后,会自动回切到普通模式 · custom-profile方式 |
三种模式切换方式的基本原理如下:
· isolate方式:正切时,通过将路由协议的路由度量值调大等方式,对指定的业务模块进行隔离;回切时,通过恢复路由协议的路由度量值等方式,取消对业务模块的隔离。
· shutdown方式:正切时,通过断开路由协议邻居关系,以及关闭设备上除管理口外的所有物理接口,以阻断网络中走向隔离设备的流量,达到隔离的目的;回切时,通过恢复路由协议进程,并将设备上的物理接口恢复UP状态,取消对业务模块的隔离。
· custom-profile方式:由用户在GIR提供的custom-profile中自定义对指定的业务模块进行隔离以及恢复的配置。在执行GIR模式切换时,采用custom-profile方式的设备会应用对应custom-profile中写入的动作。
通过isolate方式进入维护模式时,设备中各业务模块的运行机制如表2-2所示。
表2-2 isolate方式正切运行机制表
协议类型 |
运行机制 |
BGP |
向对等体撤销所有本设备发布的路由(除了本地引入的直连路由) |
IS-IS |
将发布的LSP报文中过载标志位置位,并将IS-IS接口的链路开销值调整为最大值 |
OSPF/OSPFv3 |
调大发布路由的链路度量值: · 发布的Type-1 LSA中,链路类型取值为3时链路度量值不变,链路类型取值为1、2、4时将链路度量值均调整为最大值65535 · 发布的Type-3 LSA中,链路度量值调大为16711680 · 发布的外部LSA中,链路度量值调大为16711680 |
VRRP |
设备在所有VRRP备份组中的优先级被设置为0 |
M-LAG |
利用LACP协议的聚合流量隔离功能,使设备上所有M-LAG接口的成员端口都处在非选中状态 |
S-Trunk |
将设备上所有S-Trunk组成员接口链路状态置为Down(GIR) |
通过shutdown方式进入维护模式时,设备中各业务模块的运行机制如表2-3所示。
表2-3 shutdown方式正切运行机制表
协议类型 |
运行机制 |
BGP |
断开所有BGP会话,并关闭除管理口外所有的物理接口 |
IS-IS |
断开所有邻居关系,并关闭除管理口外所有的物理接口 |
OSPF/OSPFv3 |
断开所有邻居关系,并关闭除管理口外所有的物理接口 |
VRRP |
关闭除管理口外所有的物理接口 |
M-LAG |
关闭除管理口外所有的物理接口 |
S-Trunk |
关闭除管理口外所有的物理接口 |
通过shutdown方式进入维护模式时,即使GIR支持的所有业务模块均未运行,设备也会关闭除了管理口外所有的物理接口。
通过custom-profile方式进入维护模式前,用户需要进入custom-profile视图自定义配置设备进入维护模式时隔离的协议和关闭的接口等。正切时使用的custom-profile称为正切profile,该profile按顺序记录了进入维护模式前系统需要下发的所有命令。
用户通常可以在正切profile中写入如下内容,以实现对业务模块隔离的自定义配置:
· 与isolate方式相同的隔离命令。与isolate方式不同的是,custom-profile方式要下发隔离命令的业务模块,可以是isolate方式的全集或子集。
· 与shutdown方式相同的隔离命令。与shutdown方式不同的是,custom-profile方式要下发隔离命令的业务模块,可以是shutdown方式的全集或子集。
· 同时下发与isolate方式和shutdown方式相同的隔离命令。例如,对需要重点保障的业务模块下发与isolate方式相同的隔离命令,对其他业务模块下发与shutdown方式相同的隔离命令来节省系统资源。
通过isolate方式返回普通模式时,设备中各业务模块的运行机制如表2-4所示。
表2-4 isolate方式回切运行机制表
协议类型 |
运行机制 |
BGP |
重新发送正切时撤销的所有路由 |
IS-IS |
清除LSP报文中的过载标志位,并恢复接口的链路开销值 |
OSPF/OSPFv3 |
恢复发布路由的链路度量值 |
VRRP |
设备在所有VRRP备份组中的优先级恢复为原值 |
M-LAG |
所有M-LAG接口恢复选中状态 |
S-Trunk |
所有S-Trunk组成员接口链路状态恢复UP |
通过shutdown方式返回普通模式时,设备中各业务模块的运行机制如表2-5所示。
表2-5 shutdown方式回切运行机制表
协议类型 |
运行机制 |
BGP |
恢复BGP进程,允许重新建立BGP会话,并将除管理口外所有的物理接口取消关闭 |
IS-IS |
恢复IS-IS进程,允许重新建立邻居关系,并将除管理口外所有的物理接口取消关闭 |
OSPF/OSPFv3 |
恢复OSPF进程,允许重新建立邻居关系,并将除管理口外所有的物理接口取消关闭 |
VRRP |
将除管理口外所有的物理接口取消关闭 |
M-LAG |
将除管理口外所有的物理接口取消关闭 |
S-Trunk |
将除管理口外所有的物理接口取消关闭 |
通过shutdown方式返回普通模式时,即使GIR支持的所有业务模块均未运行,设备也会将除管理口外所有的物理接口取消关闭。
通过custom-profile方式返回普通模式时,设备会采用用户在回切profile中配置的命令回切。回切时使用的custom-profile称为回切profile,该profile按顺序记录了进入普通模式前系统需要下发的所有命令。
用户通常可以在回切profile中写入如下内容,以实现对业务模块取消隔离的自定义配置:
· 与isolate方式相同的取消隔离命令。与isolate方式不同的是,custom-profile方式要下发取消隔离命令的业务模块,可以是isolate方式的全集或子集。
· 与shutdown方式相同的取消隔离命令。与shutdown方式不同的是,custom-profile方式要下发取消隔离命令的业务模块,可以是shutdown方式的全集或子集。
· 同时下发与isolate方式和shutdown方式相同的取消隔离命令。
在设备进行维护时,可以通过GIR快照实现配置的校验。GIR快照是保存了各业务模块状态信息的数据文件,用户可以在系统正常运行的任何时间手动创建快照,以记录设备各个时间点的状态。除此之外,设备在模式切换前后,会自动生成快照:
· 将设备从普通模式切换到维护模式时,设备会先记录进入维护模式前的GIR快照,再将设备进行流量隔离。生成的快照名称为“before_maintenmaince”。
· 将设备从维护模式切回普通模式时,设备先进行协议恢复,再记录退出维护模式后的GIR快照。生成的快照名称为“after_maintenance”。
GIR提供了display gir snapshot compare命令来显示快照比较信息,用户可以通过该命令确认模式切换前后设备的配置差异。
· GIR依赖网络中已有的冗余路径或备份路径实现流量的平滑切换,如果网络中不存在冗余路径或备份路径,则使用GIR对业务模块进行隔离时仍会造成流量的丢失。
· 如果模式切换过程中有业务模块命令下发失败,设备会显示失败提示信息或生成日志,退出模式切换并回到原有模式,但已下发的命令不回滚。
· 当以isolate方式正切时,协议运行会占用更多的系统资源,但是可以更快回切到普通模式,且在模式切换时不会造成流量丢失;以shutdown方式正切时,协议运行占用的系统资源较少,但回切到普通模式的速度相对较慢,且通过关闭接口的方式直接切断转发路径可能会造成流量丢失。请根据具体情况灵活选择GIR使用的隔离方式。
· 在M-LAG应用场景下,设备进行回切时,需要确保M-LAG接口未处于“M-LAG MAD DOWN”状态,否则无法恢复流量从本端M-LAG接口转发。
在存在冗余路径的网络中,GIR通过影响网络设备流量路径的选择,使用isolate方式将需要维护的设备进行隔离。如图3-1所示,Leaf 1和Leaf 2、Leaf 3和Leaf 4分别组成M-LAG系统,为用户虚拟机VM 1和VM 2提供接入服务,Spine 1和Spine 2提供数据汇聚服务,通过Border设备接入外部网络。Spine层和Leaf层之间、Spine层和Border设备之间均使用路由协议指导数据转发,Border设备到Spine层之间的路径形成负载分担,Spine层设备到同一用户虚拟机所属的M-LAG系统之间的路径形成负载分担。在此组网中,Spine层和Leaf层的设备在处理上下行流量时均存在多条路径。在对其中一条路径上的Spine设备或Leaf设备进行维护时,应用GIR,可以引导流量全部走向另一路径上的Spine设备或Leaf设备。
例如,同时维护Spine 1和Leaf 1的过程如下:
(1) 在Spine 1上配置GIR功能,GIR下发隔离操作。Spine 1将会撤销发布的路由或者调大发布路由的度量值。此时Spine 1进入维护模式,使得Spine层的上下行流量全部迁移至Spine 2。
(2) 在Leaf 1上配置GIR功能,GIR下发隔离操作。Leaf 1将会撤销发布的路由或者调大发布路由的度量值,使得Spine层的下行流量全部迁移至Leaf 2。
(3) Leaf 1上的M-LAG接口均处于非选中状态。VM在通过聚合接口发送流量时将所有流量发送给拥有选中接口的Leaf 2。此时设备进入维护模式,上下行流量均不再通过Leaf 1。
(4) 网络管理员开始对Spine 1和Leaf 1进行维护。
(5) Spine 1和Leaf 1完成维护后,用户配置GIR回切,使流量重新通过Spine 1和Leaf 1。
图3-1 GIR典型组网应用图