您的位置:首页 > 其它

HCNP Routing&Switching之IS-IS邻居建立、LSDB同步、拓扑计算和路由形成

2021-09-14 02:40 776 查看

  前文我们了解了IS-IS的报文结构和类型相关话题,回顾请参考https://www.geek-share.com/detail/2842464020.html;今天我们来聊一聊IS-IS建立邻居、同步LSDB数据库和拓扑计算及路由形成相关话题;

  IS-IS动态路由协议的工作流程和OSPF工作流程大致一样;都是先发送Hello包,通过hello包建立邻居,在邻居建立完成以后,同步LSDB数据库、计算拓扑和路由;细微的差别在于IS-IS整个建立邻居的过程没有OSPF那么复杂,相对来说IS-IS更为简单,所以IS-IS建立邻居时,速度要比OSPF快很多;其次在同步LSDB数据时,对于IS-IS来说,它没有什么特殊区域,所以IS-IS中同步数据库就发送CSNP、PSNP和LSP这三种包就能把LSDB数据库同步完成;没有OSPF里有123457类LSA复杂;由于采用拓扑与网络分离的算法,路由收敛速度较快;

  IS-IS邻居建立过程

  点到点环境邻居建立过程

sys
sys R1
int g0/0/0
ip add 12.0.0.1 24

isis 1
net 20.0000.0000.0001.00
is-le level-1
int g0/0/0
isis en 1
isis circuit-type p2p
View Code   R2的配置

sys
sys R2
int g0/0/0
ip add 12.0.0.2 24
isis 1
net 20.0000.0000.0002.00
is-le level-1
int g0/0/0
isis en 1
isis circuit-type p2p
View Code

  在R1或R2上抓包,看看对应hello包类型以及对应hello包发送的目标mac地址是多少?

sys
sys R1
int g0/0/0
ip add 172.16.11.1 24
int lo 1
ip add 1.1.1.1 32

isis 1
net 11.0000.0000.0001.00
is-le level-1

int g0/0/0
isis en 1
int lo 1
isis en 1
View Code   R2的配置

sys
sys R2
int g0/0/0
ip add 172.16.11.2 24
int lo 1
ip add 2.2.2.2 32

isis 1
net 11.0000.0000.0002.00
is-le level-1

int g0/0/0
isis en 1
int lo 1
isis en 1
View Code

  R3的配置

sys
sys R3
int g0/0/0
ip add 172.16.11.3 24
int lo 1
ip add 3.3.3.3 32

isis 1
net 11.0000.0000.0003.00
is-le level-1

int g0/0/0
isis en 1
int lo 1
isis en 1
View Code

  在R1或R2或R3上抓包,看看对应LSDB同步过程

 

  提示:我们在R1的g0/0/0接口抓包,首先看到各路由器先各自发送自己的更新LSP包,随后R3发送了一条CSNP包(从这里可以知道对应dis是R3的g0/0/0口),随后再是由R2发送PSNP包向R3请求R1和R3上的链路状态;随后R3发送相应链路状态的LSP包给R2;对应R3发送R1的LSP包里可以看到对应ip地址为1.1.1.1;对应R3发送R3的LSP包里可以看到对应ip地址为3.3.3.3;通过上述过程R2就把R1和R3的LSDB同步到自己的LSDB数据库中,后续就根据同步后的LSDB计算拓扑和路由;

  验证:在R2上查看lsdb数据,看看对应是否同步了R1和R3上的链路状态信息?

  提示:可以看到对应R2的LSDB中同步了R1和R3的相关LSP;

  验证:在R3上查看g0/0/0是否是DIS?

  提示:可以看到在对应R3的g0/0/0口就是对应L1类型的DIS(伪节点);从上面的实验可以看到,CSNP都是由DIS发出;其他非DIS都是向DIS发送LSP更新和PSNP请求,然后由DIS在向其他非DIS发送LSP更新;即LSDB数据库同步都是和DIS进行同步,所以对于不同类型的路由器,对应建立LSDB数据库也有所不同;原因是DIS分L1类型DIS和L2类型DIS;

  验证:在R1上抓包看看对应CSNP包是否是每10秒发送一次?

  提示:可以看到对应PSNP包默认会每10秒由DIS发送一次;

  IS-IS LSP比较规则

  提示:在路由器收到一条LSP更新以后,首先它会对比和自己LSDB中对应LSP的序列号,如果收到的序列号大,此时路由器会将对应LSP更新到自己的LSDB数据库,然后再向其他邻居发送LSP更新;如果收到的LSP序列号小,此时收到LSP包的路由器会把自己对应LSP发送给对方;如果收到的LSP序列号和自己LSDB中对应LSP序列号一样,此时路由器会对比LSP中Remaining Lifetime字段的大小,还是遵循上述原则,如果收到的LSP中Remaining Lifetime字段比自己LSDB中Remaining Lifetime字段要大,此时路由器会把对应LSP更新到自己的lsdb中,然后再向其他邻居发送LSP更新;如果收到LSP包中Remaining Lifetime字段要比自己LSDB中对应LSP中Remaining Lifetime的值要小,此时收到LSP更新的路由器会将自己lsdb中对应LSP发送给对方;如果Remaining Lifetime相同,此时路由器会对比对应LSP中checksum字段的值;还是遵循上述规则,如果比自己大就更新到自己LSDB数据库中,如果比自己小,就把自己的LSP发送给对方,如果LSP的序列号,Remaining Lifetime,checksum都和自己LSDB中对应LSP一样,此时路由器会丢弃该LSP,它会认为两个LSP一模一样,没有必要更新;

  IS-IS拓扑计算与路由的形成

  提示:IS-IS拓扑计算和路由的形成过程和ospf一样,都是先通过hello包建立邻居,然后同步LSDB数据库,最后计算拓扑和路由;在IS-IS中邻居关系建立主要通过Hello包交互并协商各种参数,包括链路类型(L1或者L2),hold time,网络类型,支持协议,区域号,系统ID, PDU长度接口ip等;在同步LSDB数据库时,与ospf不同,ISIS交互链路状态的基本载体不是LSA,而是LSP;交互过程没有OSPF协议那样经历多个阶段,主要是通过CSNP和PSNP两种报文来同步,请求和确认链路状态信息(承载链路状态信息摘要);而链路状态信息的详细拓扑和路由信息由LSP报文传递;路由计算和OSPF一样,都是通过LSDB数据库中的内容结合SPF算法进行计算;当ISIS算法分离了拓扑结构和ip网段,加快了网络收敛速度;

  IS-IS路由算法

  提示:IS-IS在本区域内路由器第一次启动的时候执行的是Full-SPF算法;后续收到LSP更新,如果是部分拓扑的变化执行的是iSPF(Incremental SPF,增强SPF算法)计算;如果只是路由信息变化,执行的就是PRC(Partial Route Calculate,部分路由计算算法)计算,PRC用来处理网络拓扑不变而路由信息发生改变的情况,而ISPF用来处理网络拓扑结构(最短路径树的结构)发生改变的情况;由于采用拓扑与网络分离的算法,路由收敛速度较快;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: