bgb邻居关系建立模型_IS-IS的基本原理-邻居建立和LSP更新

序号接续前文,并非笔误

欢迎留言交流

090aa290023eae7f74ab0daeb5f4bab8.png

2.2 IS-IS邻居关系的建立

IS-IS是一种链路状态路由协议,每一台路由器都会生成一个LSP,它包含了该路由器所有使能IS-IS协议接口的链路状态信息。通过跟相邻设备建立IS-IS邻接关系,互相更新本地设备的LSDB,可以使得LSDB与整个IS-IS网络的其他设备的LSDB实现同步。然后根据LSDB运用SPF算法计算出IS-IS路由。如果此IS-IS路由是到目的地址的最优路由,则此路由会下发到IP路由表中,并指导报文的转发。两台运行IS-IS的路由器在交互协议报文实现路由功能之前必须首先建立邻居关系。

2.2.1广播链路上的邻居建立

Level-1和Level-2邻居关系建立的过程完全相同。

8d3f6ce8c355a5e72fe7632c9bcc7056.png

RouterA广播发送Level-2 LAN IIH,此报文中无邻居标识。

RouterB收到此报文后,将自己和RouterA的邻居状态标识为Initial。然后,RouterB再向RouterA回复Level-2 LAN IIH,此报文中标识RouterA为RouterB的邻居。

RouterA收到此报文后,将自己与RouterB的邻居状态标识为Up。然后RouterA再向RouterB发送一个标识RouterB为RouterA邻居的Level-2 LAN IIH。

RouterB收到此报文后,将自己与RouterA的邻居状态标识为Up。这样,两个路由器成功建立了邻居关系。

因为是广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔,再进行DIS的选举。Hello报文中包含Priority字段,Priority值最大的将被选举为该广播网的DIS。若优先级相同,接口MAC地址较大的被选举为DIS。

7c094aa2d60705450f6eab6c028637fa.png
1225a9fcb8b701a59ddb361e25a3a50b.png
26ff2a2941c64957b5a9de72194abecf.png

2.2.2 P2P链路邻居关系的建立

在P2P链路上,邻居关系的建立不同于广播链路。分为两次握手机制和三次握手机制。过三次发送P2P的IS-IS Hello PDU最终建立起邻居关系,类似广播邻居关系的建立。

两次握手机制存在明显的缺陷。当路由器间存在两条及以上的链路时,如果某条链路上到达对端的单向状态为Down,而另一条链路同方向的状态为Up,路由器之间还是能建立起邻接关系。SPF在计算时会使用状态为UP的链路上的参数,这就导致没有检测到故障的路由器在转发报文时仍然试图通过状态为Down的链路。三次握手机制解决了上述不可靠点到点链路中存在的问题。这种方式下,路由器只有在知道邻居路由器也接收到它的报文时,才宣布邻居路由器处于Up状态,从而建立邻居关系。

2.2.3 IS-IS邻居建立的原则

只有同一层次的相邻路由器才有可能成为邻居。

对于Level-1路由器来说,区域号必须一致。

链路两端IS-IS接口的网络类型必须一致。

链路两端IS-IS接口的地址必须处于同一网段。

isis peer-ip-ignore的解释

当链路两端IS-IS接口的地址不在同一网段时,如果配置接口对接收的Hello报文不作IP地址检查,也可以建立邻居关系。P2P链路就可以这样配,广播链路模拟P2P链路之后也可以这样配。

因为IS-IS是直接运行在数据链路层上的协议,并且最早设计是给CLNP使用的,IS-IS邻居关系的形成与IP地址无关。但在实际的实现中,由于只在IP上运行IS-IS,所以是要检查对方的IP地址的。如果接口配置了从IP,那么只要双方有某个IP(主IP或者从IP)在同一网段,就能建立邻居,不一定要主IP相同。

2.2.4 IS-IS LSP

IS-IS路由域内的所有路由器都会产生LSP,以下事件会触发一个新的LSP:

  • 邻居Up或Down
  • IS-IS相关接口Up或Down
  • 引入的IP路由发生变化
  • 区域间的IP路由发生变化
  • 接口被赋了新的metric值
  • 周期性更新

收到邻居新的LSP的处理过程

  1. 将接收的新的LSP合入到自己的LSDB数据库中,并标记为flooding。
  2. 发送新的LSP到除了收到该LSP的接口之外的接口。
  3. 邻居再扩散到其他邻居。

2.2.5 广播链路中新加入路由器与DIS同步LSDB数据库的过程

6a912b3c2ad278fbfcd518b6829548a0.png
  1. 新加入的路由器RouterC首先发送Hello报文,与该广播域中的路由器建立邻居关系。
  2. 建立邻居关系之后,RouterC等待LSP刷新定时器超时,然后将自己的LSP发往组播地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。这样网络上所有的邻居都将收到该LSP。
  3. 该网段中的DIS会把收到RouterC的LSP加入到LSDB中,并等待CSNP报文定时器超时并发送CSNP报文,进行该网络内的LSDB同步。
  4. RouterC收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP。
  5. DIS收到该PSNP报文请求后向RouterC发送对应的LSP进行LSDB的同步。

在上述过程中DIS的LSDB更新过程如下:

  1. DIS接收到LSP,在数据库中搜索对应的记录。若没有该LSP,则将其加入数据库,并广播新数据库内容。
  2. 若收到的LSP序列号大于本地LSP的序列号,就替换为新报文,并广播新数据库内容;若收到的LSP序列号小本地LSP的序列号,就向入端接口发送本地LSP报文。
  3. 若收到的LSP和本地LSP的序列号相等,则比较Remaining Lifetime。若收到的LSP报文的Remaining Lifetime为0,则将本地的报文替换为新报文,并广播新数据库内容;若收到的LSP报文的Remaining Lifetime不为0而本地LSP报文的Remaining Lifetime为0,就向入端接口发送本地LSP报文。
  4. 若收到的LSP和本地LSP的序列号相同且Remaining Lifetime都不为0,则比较Checksum。若收到的LSP的Checksum大于本地LSP的Checksum,就替换为新报文,并广播新数据库内容;若收到的LSP的Checksum小于本地LSP的Checksum,就向入端接口发送本地LSP报文。
  5. 若两个序列号、Remaining Lifetime和Checksum都相等,则不转发该报文。

2.2.6 P2P链路上LSDB数据库的同步过程

6847b772c46e8c3ec54b511ecd3cb1f3.png
  1. RouterA先与RouterB建立邻居关系。
  2. 建立邻居关系之后,RouterA与RouterB会先发送CSNP给对端设备。如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。
  3. 假定RouterB向RouterA索取相应的LSP。RouterA发送RouterB请求的LSP的同时启动LSP重传定时器,并等待RouterB发送的PSNP作为收到LSP的确认。
  4. 如果在接口LSP重传定时器超时后,RouterA还没有收到RouterB发送的PSNP报文作为应答,则重新发送该LSP直至收到PSNP报文。

在P2P链路中设备的LSDB更新过程如下:

  1. 若收到的LSP比本地的序列号更小,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认;若收到的LSP比本地的序列号更大,则将这个新的LSP存入自己的LSDB,再通过一个PSNP报文来确认收到此LSP,最后再将这个新LSP发送给除了发送该LSP的邻居以外的邻居。(要序列号大的)
  2. 若收到的LSP序列号和本地相同,则比较Remaining Lifetime,若收到的LSP报文的Remaining Lifetime为0,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LSP,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到的LSP报文的Remaining Lifetime不为0而本地LSP报文的Remaining Lifetime为0,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认。(要Remaining Lifetime=0的)
  3. 若收到的LSP和本地LSP的序列号相同且Remaining Lifetime都不为0,则比较Checksum,若收到LSP的Checksum大于本地LSP的Checksum,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LSP,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到LSP的Checksum小于本地LSP的Checksum,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认。(要Checksum大的)
  4. 若收到的LSP和本地LSP的序列号、Remaining Lifetime和Checksum都相同,则不转发该报文。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值