IS-IS 路由协议详解(三)

DIS 和 DR 的区别

下面表格讲述的是 IS-IS 协议的 DIS 和 OSPF 协议的 DR 的区别

类型 DIS DR
参与选举 DIS所有的优先级都参与选举 优先级为 0 不参与选举
选举等待时间 两个 Hello 包时间 40S
备份 无备份 备份设备有 BDR
邻接关系 所有设备都是邻接关系 只有DR 和 BDR 与其他设备建立邻接关系
抢占性 会抢占 不会抢占
作用 周期性发送 CSNP 报文,保证数据库同步 主要为了减少 LSA 泛洪


IS-IS 路由协议详解(三)

IS-IS 的网络类型

IS-IS 的网络类型分为两种:点到点链路广播链路


点到点链路

点到点链路的邻接关系建立分为 两次握手三次握手


两次握手:对端路由器发送 Hello 单方向的 UP 建立邻居,容易存在单通道的风险


三次握手:类似于广播邻居的建立,唯一不同的是广播网络邻居里面携带的是 MAC 而点到带你里面携带的是 SYS ID


修改握手类型

类型 命令 备注
2-way isis ppp-negotiation 2-way 3-way 可以兼容 2-way
3-way isis ppp-negotiation 3-way(默认) 后面加上 Only 就不会兼容 2-way 了

广播链路

IS-IS 的广播链路邻居建立和 OSPF 的邻居建立基本相似,只不过 OSPF 邻居建立收到的是对端的 RID ,IS-IS 的邻居建立收到的是邻居的 MAC

因为是广播网络,需要创建 DIS 所以在邻居建立完成,路由器会等待两个 Hello 报文间隔再进行 DIS 的选举

  • 只有在广播网络中才会有 DIS (伪节点)


  • DIS 支持抢占,因为 DIS 和所有的设备之间都是建立邻接关系,谁当 DIS 都可以


  • 如果没有 DIS IS-IS 的数据库有可能同步,只是 LSDB 数据库的同步需要 DIS 的保证


  • DIS 的 Hello 报文是三分之一秒发送一次(确认 DIS 的)


  • DIS 十秒钟发送 CSNP 报文,对该网段的 LSDB 表进行更新(保证数据库的同步)


  • 在广播网络中 IS-IS 需要在路由器中选举一个路由器作为 DIS


  • level-1 / level-2 的 DIS 是分别选举的


  • DIS 负责生成伪节点的链路状态协议单元 LSP,用来描述网络存在的哪些设备


  • 在 IS-IS 的 LSDB 数据库中 DIS 会生成两条 LSP


  • LSDB 表项中的 LSP 有 01-00 就是 DIS 产生的

    01 为 IS-IS 的链路信息,相当于 OSPF 的二类 LSA

    00 为 IS-IS 的链路信息,相当于 OSPF 的一类 LSA


DIS 的作用

  • 在广播网络中作为一种确认机制


  • 保证数据库的同步


DIS 的选举规则

  • 首先比较优先级越大越优,默认为 64(范围是 0~127)


  • 如果优先级相同比较 MAC 地址


  • 优先级为 0 的设备也具有选择权



IS-IS 路由协议详解(三)

IS-IS 的 LSDB 更新过程


广播网络

广播网络 DIS 的 LSDB 更新


***

没有收到过***:DIS 收到 LSP ,会在数据库中对应相应的记录 ,如果没有则加入 数据库 ,并组播新的数据库内容

收到过***:若收到的 LSP 的***大于本地的*** ,就替换为新报文 ,并组播 发送数据库内容

​ 若收到的 LSP 的***小于本地的*** ,就从入端口发送本地的 LSP


剩余时间

若***相同则比较剩余时间,若收到的 LSP 的剩余时间小于本地的 LSP 的剩余时间 ,就替换为新报文 ,并广播数据库内容

若收到的 LSP 的剩余时间大于本地的 LSP 的剩余时间 ,就从入端口发送本地的 LSP


checksum(校验值)

若两个***和剩余时间都相等,则比较 checksum 若收到的 LSP 的 checksum 大于本地的 LSP 的 checksum ,则替换为新报文 ,并组播发生数据库内容

若收到的 LSP 的 checksum 小于本地的 LSP 的 checksum ,就从入端口发送本地的 LSP

若两个***、剩余时间、checksum 都相等,则不转发该报文


点到点网络

点到点网络的 LSDB 更新


***

若收到 LSP 的***比自己本地的 LSP ***大 ,则将这个新的 LSP 放进自己的 LSDB 数据库 ,在通过一个 PSNP 确认自己收到此条 LSP --------最后会将此条 LSP 发送给除发送该 LSP 的其他邻居

若收到 LSP 的***比自己本地的 LSP ***小 ,则直接给对端发送本地的 LSP ,并等待一个对方给自己发送 PSNP 报文确认


剩余时间

若收到的 LSP 的***与本地的 LSP 的***相同 ,则比较剩余时间 ,若收到的 LSP 的剩余时间小于本地的 LSP 的剩余时间 ,则将该 LSP 存入到 LSDB 并发送PSNP 确认收到过 LSP--------然后会将此条 LSP 发送给除发送该 LSP 的其他邻居

若收到的 LSP 的剩余时间大于本地的 LSP 的剩余时间 ,则直接给对方发送本地的 LSP ,然后等待对端发送一个 PSNP 确认


checksum(校验值)

若两个***和剩余时间都相等,则比较 checksum 若收到的 LSP 的 checksum 大于本地的 LSP 的 checksum ,则将该 LSP 存入到 LSDB 并发送 PSNP 确认收到此报文--------然后会将此条 LSP 发送给除发送该 LSP 的其他邻居

若收到的 LSP 的 checksum 小于本地的 LSP 的 checksum ,则直接给对端发送本地的 LSP ,然后等待对端发送一个 PSNP 确认

若两个***、剩余时间、checksum 都相等,则不转发该报文



作者:jerry