所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级

ME60 V800R010C10SPC500 特性描述 - 广域网接入 01

本文档是ME60 V800R010C10SPC500 特性描述 - 广域网接入
评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
OSPFv3 Flush溯源

OSPFv3 Flush溯源

产生原因

当OSPFv3 LSA被全网删除(Flush)而导致网络不稳定时,需要尽快定位到问题源头,以便隔离问题源。但是,目前OSPFv3协议本身没有溯源能力,无法快速定位上述问题。当上述问题出现时,通常采用分片隔离的方式,逐步逼近问题节点,问题定位过程复杂,耗时长,对用户网络业务也有影响。为了解决上述问题,OSPFv3新增一种私有协议,即溯源协议,该协议支持洪泛Flush源信息,当出现上述问题时,可以在任何一台设备上快速查询到网络中的Flush源信息,即快速定位故障源。

相关概念

溯源协议

溯源协议是一种私有协议,它提供了一种Flush溯源机制,用于解决网络中定位某条OSPFv3 LSA被哪台设备Flush的问题。它的特点如下:
  • 采用新的UDP端口,溯源协议报文采用UDP协议报文承载,协议报文中携带被当前设备Flush的OSPFv3 LSA信息,并沿OSPFv3邻居拓扑逐跳洪泛。
  • 溯源协议依赖于现有OSPFv3协议,依赖OSPFv3邻居进行洪泛。但是该协议不依赖于现有OSPFv3报文传输通道,独立建立新的UPD通道承载报文。因此该协议可以方便的增量部署,对于没有打开相关UDP端口的老设备,不产生任何影响。
  • 该协议的协议报文洪泛到网络中的其他设备后,在网络中登录任何一台支持本特性的设备后,都可以查看到Flush LSA的设备信息,方便维护人员快速确定网络中的故障节点,并对故障节点进行隔离。

Flush

OSPFv3 LSA被全网删除。

PS-Hello

OSPFv3 Flush溯源能力协商报文,用于在OSPFv3邻居上进行溯源能力的协商。

PS-LSA

当设备Flush OSPFv3 LSA时,设备会生成PS-LSA,PS-LSA中携带发起Flush的节点相关信息和OSPFv3 LSA的概要信息。

PS-LSU报文

OSPFv3 Flush溯源协议报文,用于携带PS-LSA。

PS-LSU ACK报文

OSPF Flush溯源协议报文ACK,用于增强溯源协议报文可靠性。

OSPFv3 Flush溯源协议端口

用于收发OSPFv3 Flush溯源协议报文的UDP端口号,默认端口为50133,支持用户配置。

实现原理

OSPFv3 Flush溯源的实现过程可以简单描述为:
  1. 溯源能力协商

    当OSPFv3邻居建立后,需要通过溯源能力协商报文PS-Hello协商两端设备的溯源能力。

  2. PS-LSA生成及洪泛

    当设备Flush OSPFv3 LSA时,设备会生成PS-LSA,PS-LSA中携带发起Flush的节点相关信息和OSPFv3 LSA的概要信息,将PS-LSA打包到PS-LSU报文中,并洪泛给具有溯源能力的邻居,其目的是让网络中其他设备尽快找到问题源头,以便隔离问题源。

说明:
被Flush的LSA只能是Router-LSA、Network-LSA、Inter-Area-Router-LSA。当设备Flush Router-LSA、Network-LSA、Inter-Area-Router-LSA时,才会产生PS-LSA。

溯源能力协商

溯源协议使用UDP传输协议承载该私有协议报文,并侦听UDP端口,用于接收溯源协议报文。当新设备和其他厂商设备或老设备等没有溯源能力的设备互通时,需要避免发送溯源报文给相关设备,以免被识别为攻击行为。因此需要在设备间针对溯源能力进行协商,溯源报文只发送给有溯源能力的设备,同时具有溯源能力的设备还需要帮助没有溯源能力的设备发送溯源信息,这个也需要根据协商获得的溯源能力来识别。

溯源协议依赖于现有OSPFv3协议,因此溯源协议的协商也依赖于OSPFv3邻居进行。当OSPF邻居建立后,向邻居发起溯源能力协商。溯源能力协商流程如图7-15所示:

图7-15 溯源能力协商
表7-9 溯源能力协商

是否有溯源能力

溯源能力协商流程

DeviceA和DeviceB都有溯源能力

  1. DeviceA发送PS-Hello报文宣告有溯源能力。
  2. DeviceB收到DeviceA发送的PS-Hello报文,置位DeviceA的溯源能力,并向DeviceA发送ACK报文,同时携带本设备的溯源能力。
  3. DeviceA收到DeviceB的ACK报文,置位DeviceB的溯源能力,不再重传PS-Hello报文。

DeviceA有溯源能力,DeviceB没有溯源能力

  1. DeviceA发送PS-Hello报文宣告有溯源能力。
  2. 在10秒后,DeviceA没有收到ACK报文,则重传PS-Hello报文。最多重传两次。重传两次DeviceA都收不到ACK报文,记录邻居DeviceB不支持溯源能力。

DeviceA和DeviceB都有溯源能力,DeviceB去使能溯源能力

  1. DeviceB去使能溯源能力,发送PS-Hello报文宣告没有溯源能力。
  2. DeviceA收到DeviceB发送的PS-Hello报文,没有溯源能力;DeviceA给DeviceB回复ACK报文,携带本端溯源能力。
  3. DeviceB收到DeviceA发送的ACK报文,DeviceB认为协商成功,不再发送能力协商报文,关闭UDP端口。

DeviceA没有溯源能力,DeviceB去使能溯源能力

  1. DeviceB去使能溯源能力,发送PS-Hello报文宣告没有溯源能力。
  2. 在10秒后,DeviceB没有收到ACK报文,则重传PS-Hello报文。最多重传两次。重传两次后,DeviceB认为协商结束,关闭UDP端口。

PS-LSA生成及洪泛

PS-LSA:当OSPFv3的LSA被Flush时,可以通过PS-LSA描述发起Flush的节点相关信息。
  • 当主动Flush一条LSA时,需要生成PS-LSA,并向全部邻居洪泛。

  • 设备收到不支持溯源能力的邻居的Flush LSA时,需要生成PS-LSA,并向全部邻居洪泛;收到多个不支持溯源能力邻居Flush的同一条LSA(LSID、Seq全相同),只生成一个PS-LSA。

  • Router-LSA、Network-LSA、Inter-Area-Router-LSA被Flush时,需要同时生成PS-LSA,并打包到PS-LSU中,洪泛给具有溯源能力的邻居。

图7-16 PS-LSA的生成规则

PS-LSA的生成规则

  • 节点DeviceA Flush Router-LSA、Network-LSA、Inter-Area-Router-LSA时,生成对应的PS-LSA,并添加到全部有溯源能力的邻居的发送队列中,PS-LSA中的Flush Router为节点DeviceA的Router ID,Neighbor Router为0。
  • 节点DeviceA收到节点DeviceB(节点DeviceB没有溯源能力)发来的Flush LSA后,生成对应的PS-LSA,并添加到全部有溯源能力的邻居的发送队列中,PS-LSA中的Flush Router为节点DeviceA的Router ID,Neighbor Router是节点DeviceB的Router ID。
  • 节点DeviceA收到节点DeviceB和节点DeviceC发来的同一条LSA的Flush LSA,节点DeviceB发来的LSA先到,生成对应的PS-LSA,并添加到全部有溯源能力的邻居的发送队列中,PS-LSA中的Flush Router为节点DeviceA的Router ID,Neighbor Router为节点DeviceB的Router ID。节点DeviceC发来的Flush LSA不生成PS-LSA。

PS-LSU报文的发送规则

  • 当建立邻居时,初始化邻居的PS-LSU报文序列号,当发送PS-LSU报文时,需要携带邻居上的PS-LSU报文序列号。PS-LSU报文重传时,序列号不变。当收到相同序列号的PS-LSU ACK报文时,邻居上的PS-LSU序列号加1。
  • 邻居管理PS-LSA的发送队列,当PS-LSA的发送队列由空变为不空时,启动定时器,定时器超时后,将队列中的PS-LSA打包到PS-LSU报文中,并发送给邻居同时启动定时器,等待PS-LSU ACK报文。
  • PS-LSU ACK定时器超时后,重新发送PS-LSU。
  • 当设备收到PS-LSU ACK报文,且序列号和邻居中记录的序列号相同时,清除邻居队列中的PS-LSA,并不会立刻发送下一个PS-LSU报文,需要等到定时器超时后再发送下一个PS-LSU报文。
    • 如果PS-LSU ACK报文中携带的序列号比邻居保存的序列号小,则忽略。
    • 如果PS-LSU ACK报文中携带的序列号比邻居保存的序列号大,则丢弃PS-LSU ACK报文。
说明:
PS-LSU报文的发送在各邻居上独立管理,互不影响。

PS-LSU报文的接收规则

  • 当设备收到邻居发送的PS-LSU报文时,在邻居上记录PS-LSU报文携带的序列号,并向邻居回复PS-LSU ACK报文。
  • 当设备收到PS-LSU报文携带的序列号和邻居上记录的PS-LSU序列号相同时,丢弃该PS-LSU报文。
  • 在PS-LSU报文解析后,其中的PS-LSA需要安装到数据库中,在安装时,需要比较PS-LSA的新旧。
    • 如果收到的PS-LSA比较新,需要向其他邻居洪泛;
    • 如果收到的PS-LSA和本地相同,不用处理;
    • 如果收到的PS-LSA比较旧,需要将当前的PS-LSA洪泛给邻居。
  • 当设备收到邻居发送的PS-LSU报文时,如果邻居状态是不支持溯源能力,需要修改邻居状态为支持溯源能力。

溯源安全

溯源协议使用UDP报文,需要打开私有端口收发协议报文,因此需要考虑该端口的安全性问题。

溯源协议也会带来更多的主机收发压力和带宽压力,为了避免溯源协议影响原有协议正常工作,需要对溯源协议的报文收发做一定的控制,减少溯源报文流量,避免对原有协议的影响。

溯源安全措施包括:

表7-10 溯源安全措施

溯源安全措施

原理描述

认证

溯源协议包含在已有的OSPFv3协议中,可以继承已有OSPFv3协议的配置参数,使用和OSPFv3协议相同的方式对协议报文进行加密认证。

GTSM

GTSM是一种安全协议,通过配置IP报文发送时的TTL值以及接收时认为合法的TTL值,对报文进行检测。

溯源协议报文中要求全部报文只能洪泛1跳,因此可以默认使用GTSM对报文进行检查。
  • 当发送报文时,报文中的TTL设置为255。
  • 当接收报文时,如果报文中的TTL不是254,就丢弃报文。

Cpu-car

接口板可以对上送CPU处理的报文进行检测,控制上送流量,避免大量报文上送CPU,导致主控板超载。溯源协议需要向产品申请独立的CAR通道,设置较小CAR值。

典型场景

网络中的所有节点都支持溯源协议

假设网络中的全部节点都支持溯源协议,节点DeviceA是故障源。该场景下,故障源一定能精确查找到。如图7-17所示:

图7-17 网络中的所有节点都支持溯源协议场景

当DeviceA Flush OSPFv3 LSA时,会同时产生PS-LSA,PS-LSA中携带DeviceA的节点信息和DeviceA Flush的OSPFv3 LSA的概要信息,并逐跳洪泛PS-LSA到整个网络。当网络出现故障时,维护人员登录网络中的任何一台设备都可以根据溯源协议看到当前节点DeviceA正在发起大量Flush,是故障源。维护人员可以立刻采取措施,将节点DeviceA从网路中隔离出去,快速恢复网络。

网络中有不支持溯源协议的节点,但支持溯源协议的节点不被隔离

假设网络中节点DeviceC不支持溯源协议,其他节点都支持溯源协议,节点A是故障源。该场景下,PS-LSA能够洪泛到整个网络,故障源能够精确查找到。如图7-18所示:

图7-18 网络中有不支持溯源协议的节点,但支持溯源协议的节点不被隔离场景

当DeviceA Flush OSPFv3 LSA时,会同时产生PS-LSA,PS-LSA中携带DeviceA的节点信息和DeviceA Flush的OSPFv3 LSA的概要信息,并逐跳洪泛PS-LSA到整个网络。但是节点DeviceC不支持溯源协议,当DeviceB和DeviceE在与DeviceC进行溯源能力协商时,DeviceB和DeviceE发现DeviceC不支持溯源能力。因此当DeviceB收到DeviceA发来的PS-LSA时,不会再发给DeviceC了,只会发给DeviceD。DeviceA Flush LSA发给DeviceB,然后通过DeviceC发送到DeviceE时,DeviceE发现DeviceC不支持溯源协议,DeviceE帮助DeviceC生成PS-LSA,该PS-LSA中携带发布源(节点DeviceE)信息、Flush源(节点DeviceC)信息、被Flush的OSPFv3 LSA信息,并向整个网络进行洪泛。

当网络出现故障时,维护人员登录网络中的DeviceC以外的任何一台设备都会发现当前网络中有两个故障源,一个故障源是DeviceA发布的,宣称自己发起了大量的Flush,另一个故障源是DeviceE发布的,宣称DeviceC可能发起了大量Flush,并且DeviceA和DeviceC都Flush了相同的LSA。在这个情况下认为DeviceA宣称DeviceA Flush的优先级比DeviceE宣称DeviceC Flush更高,因此DeviceA为当前的故障源,采取措施隔离节点DeviceA。隔离后,网路恢复正常。

网络中有不支持溯源协议的节点,但支持溯源协议的节点被隔离

假设网络中节点DeviceC和DeviceD不支持溯源协议,其他节点都支持溯源协议,节点A是故障源。该场景下,PS-LSA不能够洪泛到整个网络,故障源只能在一定范围内查找,不能精确找到。如图7-19所示:

图7-19 网络中有不支持溯源协议的节点,但支持溯源协议的节点被隔离场景

当DeviceA Flush OSPFv3 LSA时,会同时产生PS-LSA,PS-LSA中携带DeviceA的节点信息和DeviceA Flush的OSPFv3 LSA的概要信息,并逐跳洪泛PS-LSA到整个网络。但是节点DeviceC和DeviceD不支持溯源能力,DeviceA发送的PS-LSA到DeviceB就终结了,无法继续洪泛到网络的其他节点。

当节点DeviceE和DeviceF在与DeviceC和DeviceD进行溯源能力协商时,DeviceE和DeviceF发现DeviceC和DeviceD不支持溯源能力。因此当DeviceE和DeviceF收到DeviceC和DeviceD发来的PS-LSA时,DeviceE和DeviceF会帮助DeviceC和DeviceD生成PS-LSA,并洪泛到剩余网络中。

当网络出现故障时:
  • 如果维护人员登录DeviceA和DeviceB,可以立刻发现DeviceA上存在故障,并采取措施隔离DeviceA;隔离后发现网络已经恢复。
  • 如果维护人员登录DeviceE、DeviceF、DeviceG和DeviceH节点中的任何一个,发现DeviceE和DeviceF同时针对同一个OSPFv3协议报文宣称DeviceC和DeviceD是可能故障源。
  • 如果维护人员登录DeviceC和DeviceD,发现DeviceC和DeviceD并没有主动发起Flush,DeviceC和DeviceD发给DeviceE和DeviceF的Flush报文是来自于DeviceB。
  • 如果维护人员登录DeviceB,发现DeviceA是故障源,采取措施隔离DeviceA后,网络故障恢复。
翻译
下载文档
更新时间:2019-01-04

文档编号:EDOC1100059511

浏览量:1257

下载量:20

平均得分:
本文档适用于这些产品
相关版本
相关文档
Share
上一页 下一页