从中间系统到中间系统协议,IGP,DV协议,直接运行在二层,使用SPF算法进行路由计算。
近年来云计算数据中心崛起,数据中心网络日益复杂,而OSPF的区域划分很不自由,并且OSPF是基于IP来进行信息传递的,而数据中心并不是完全TCP/IP的网络环境,所以OSPF使用受到很大限制。
主要用于运营商的大规模路由网络。
基本术语:
骨干区域
非骨干区域
非骨干区域与骨干区域通过Level-1-2路由器相连
Level-1路由器
部署在非主干区域,负责区域内的路由,与同一区域内同级别和Level-1-2路由器形成邻接关系,只负责维护Level-1的LSDB,包含本区域的路由信息,到区域外的报文转发给最近的Level-1-2路由器。
Level-2路由器
部署在骨干区域,负责区域间的路由,可以与同一或不同区域的Level-2路由器或者其它区域的Level-1-2的路由器形成邻接关系,维护一个Level-2的LSDB,包含区域间的路由信息。
Level-1-2路由器
同时部署在骨干区域和非骨干区域,Level-1必须通过Level-1-2路由器才能连接至其他区域。同时维护两个LSDB。
支持广播链路和点到点,不支持P2MP,对于NBMA网络,如ATM,需对其配置子接口。
在广播网络中,IS-IS需要在所有路由器中选举一个路由器组作为DIS,负责创建和更新PSN(伪节点),并负责生成PSN的LSP用来描述这个网络上的网络设备。
Level-1和Level-2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级。
DIS优先级大的会被选中,如果有多台,MAC地址较大的会被选中,0级也会参与选举。
不同级别DIS可以是一台路由器也可以是不同的路由器,不存在备份DIS。
当有符合DIS条件的新路由器加入时,会被选举为新的DIS。
PSN是用来模拟广播网络的一个虚拟节点,并非真实的路由器,在IS-IS中用DIS的System ID和一个字节的Circuit ID标识。
Hello PDU
用于建立和维持邻接关系,又称IIH(IS-to-IS Hello PDUs)默认10秒发送一次,PSN和DIS默认3.3秒,3倍Hello时间没收到就判定邻接Down。
LSP
链路状态报文LSP用于交换链路状态信息。LSDB中的LSP寿命是1200s,每隔900s刷新一次。
SNP
描述全部和部分路由数据库中的LSP来同步至LSDB从而维护LSDB的完整与同步,序列号报文可分为CSNP全序列号报文和PSNP部分序列号报文
CSNP包括LSDB中所有LSP的摘要信息,在广播网络中由DIS定期发送,点到点链路上,CSNP只在第一次建立邻接关系时发送。
PSNP只列举最近收到的一个或多个LSP的序号,它能够一次对多个LSP进行请求和确认。
IS-IS需按照如下规则建立关系:
只有同一层次的路由器才有可能建立邻接
对于Level-1路由器来说,区域号必须一致
链路两端IS-IS接口的网络类型必须一致,且接口地址必须处于同一网段。
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。这样,两个路由器成功建立了邻接关系。
这里与Level-2为例,Level-1与此一样。因为是广播网络,需要选举DIS,所以在邻接关系建立后,路由器会等待两个Hello报文间隔,再进行DIS的选举。
三次握手机制:通过三次发送P2PIIH最终建立邻接关系,类似广播邻接关系的建立。
所有路由器都会产生LSP,以下是会触发一个新LSP的事件:
邻接Up或Down
IS-IS相关接口Up或Down
引入的路由发生变化
区域间的路由发生变化
接口被赋予新的开销值
周期性更新
收到邻接新的LSP处理过程:
合入自己的LSDB中,并标记为flooding;
发送新LSP到除收到该LSP的接口之外的接口;
邻接再扩散到其它邻接
LSP报文的“泛洪”(flooding)是指当一个路由器向相邻路由器通告自己的LSP后,相邻路由器再将同样的LSP报文传送到除发送该LSP的路由器外的其它邻接,并这样逐级将LSP传送到整个层次内所有路由器的一种方式。
每个LSP都有一个标识自己的4字节序列号,在路由器启动时所发送的第一个LSP报文中的序列号为1,之后新的LSP序列号在前一个LSP序列号上+1,序列号越大,LSP越新。如果序列号到头,路由器就停止运行1260S,不过基本上不可能,即便是每秒钟产生一个LSP,也要等到136年之后才能从1到OxFFFFFFFF
由于L1路由器无法学习到其他区域的条目,只能通过最近的L1/L2路由器下发的默认路由离开本区域。所以有时候会出现次优路径。
可以尝试着在L1/L2路由器上泄露一部分L2的条目到L1路由器上,来防止这种情况的发生。
通过TLV形式携带认证信息,认证TLV的类型为10。
根据报文的种类,认证可以分为以下三类:
接口认证:是指使接口以指定方式和密码对Level-1和Level-2的Hello报文进行认证。
有以下两种设置:
发送带认证TLV的认证报文,本地对收到的报文也进行认证检查。
发送带认证TLV的认证报文,但是本地对收到的报文不进行认证检查。
区域认证:是指运行IS-IS的区域以指定方式和密码对Level-1的SNP和LSP报文进行认证。
路由域认证:是指运行IS-IS的路由域以指定方式和密码对Level-2的SNP和LSP报文进行认证。
对于区域和路由域认证,可以设置为SNP和LSP分开认证。
本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都进行认证检查。
本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文携带认证TLV,但不对收到的SNP报文进行检查。
本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文不携带认证TLV,也不对收到的SNP报文进行认证检查。
本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都不进行认证检查。
根据报文的认证方式,可以分为以下三类:
明文认证:一种简单的认证方式,将配置的密码直接加入报文中,这种认证方式安全性不够。
MD5认证:通过将配置的密码进行MD5算法之后再加入报文中,这样提高了密码的安全性。
Keychain认证:通过配置随时间变化的密码链表来进一步提升网络的安全性
OSPF使用LSA通告描述网络结构,即有向图。路由器会将LSDB转换成一张带权的有向图,各个路由器得到的有向图完全相同。
各个路由器根据有向图使用SPF算法计算出一棵以自己为根的最短路径树。
当部分拓扑结构(最短路径树的结构)发生变化时,采用增强SPF算法(ISPF),只需将变化了的少量拓扑进行修正。
当拓扑不变而路由信息发生变化时,用部分路由计算算法(PRC),只需根据原有的拓扑生成新的路由信息。
原文:https://www.cnblogs.com/tmjblog/p/12640042.html