一、为什么要判断LSA的新旧
关于OSPF网络中,LSA消息的新旧判断问题,在一定程度上是OSPF网络的核心。这是因为OSPF路由器时根据LSA报文来学习整个网络的拓扑信息,从而计算路由。因此,当网络拓扑发生变化时,感知到该变化的路由器必须向网络内其他路由器通告LSA信息,以达到网络内路由器对整体网络架构的认识上的一致。
在OSPF中,使用链路状态类型(Link-state Type)、链路状态ID(Link-state ID)和通告路由器(Advertised Router)来唯一表示一条LSA消息。当一个路由器在收到一条LSA消息后,如果他本地的LSDB中已经有该LSA消息,那么他就必须将收到的LSA消息与本地的LSA消息进行比较,选择保留更新的LSA消息。
因此,运行OSPF的路由器要在此时判断LSA消息的新旧。
二、判断标准
OSPF使用链路状态序列号、老化时间与校验和来进行决策,如下:
- 拥有更高链路状态序列号的LSA实例被认为最新
- 拥有更大校验和的LSA实例被认为最新
- 如果收到的LSA老化时间被设定为Max-Age(默认为1h),则该实例被认为最新
- 当本地LSA和新收到的LSA老化时间超过Max-Age-Diff(默认为15m)时,这两个LSA被认为是不同的实例,且老化时间越小的LSA被认为最新
- 如果上述4条无法判断,那么认为这两条LSA是相同的LSA实例
上述5条判断原则,按照从上到下的规则进行匹配,当匹配到某一条规则后,就不再继续进行匹配。
三、难点说明
- 之所以链路状态序列号作为LSA新旧判断的第一标准,因为每次路由器在刷新LSA的时候都会给序列号加1,因此,链路状态序列号越高,代表LSA消息越新。
- OSPF报文中的校验和并不是简单用来判断报文有没有出错的,该值的计算不仅仅需要LSA报文的信息,还需要上一次计算出的校验和,并且每次计算的校验和,都会比之前的校验和更大,因此校验和被认为是OSPF LSA消息新旧的第二个标准。
- 关于判断标准的第三点,这是因为如果一个路由器希望从网络中删除一条自己之前产生的LSA,那么就会生成老化时间为Max-Age的LSA实例。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)