You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

760 lines
39 KiB

<h1><center>BGP边界网关协议</center></h1>
> 作者:行癫
------
<h3>第一节IS-IS原理与配置</h3>
<h4>IS-IS的基本概念</h4>
<h5>1.IS-IS概述</h5>
IS-IS是ISO定义的OSI协议栈中的CLNSConnectionLess Network Service无连接网络服务的一部分
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211093601896.png" alt="image-20220211093601896" style="zoom: 50%;" />
IS-IS是一种链路状态路由协议IS-IS与OSPF在许多方面非常相似例如运行IS-IS协议的直连设备之间通过发送Hello报文发现彼此然后建立邻接关系并交互链路状态信息
**CLNS由以下三个部分组成**
CLNP类似于TCP/IP中的IP协议 CLNP无连接网络协议
IS-IS类似于TCP/IP中的OSPF
ES-IS类似于TCP/IP中的ARPICMP等
ESEnd System终端系统类似于IP网络环境中的主机
ES-ISEnd System to Intermediate System终端系统到中间系统
<h5>2.NSAP</h5>
NSAPNetwork Service Access Point网络服务访问点是OSI协议栈中用于定位资源的地址主要用于提供网络层和上层应用之间的接口。NSAP包括IDP及DSP
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211094233141.png" alt="image-20220211094233141" style="zoom:80%;" />
IDPInitial Domian Part相当于IP地址中的主网络号。它是由ISO规定并由AFIAuthority and Format Identifier与IDIInitial Domain Identifier两部分组成。AFI表示地址分配机构和地址格式IDI用来标识域
DSPDomian Specific Part相当于IP地址中的子网号和主机地址。它由High Order DSP、System ID和SEL三个部分组成。High Order DSP用来分割区域System ID用来区分主机SELNSAP Selector用来指示服务类型
<h5>3.NET</h5>
NETNetwork Entity Title网络实体名称是OSI协议栈中设备的网络层信息主要用于路由计算由区域地址Area ID和System ID组成可以看作是特殊的NSAPSEL为00的NSAP
NET的长度与NSAP的相同最长为20Byte最短为8Byte
在IP网络中运行IS-IS时只需配置NET根据NET地址设备可以获取到Area ID以及System ID
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211094712423.png" alt="image-20220211094712423" style="zoom:80%;" />
Area ID由IDP和DSP中的High Order DSP组成既能够标识路由域也能够标识路由域中的区域。因此它们一起被称为区域地址相当于OSPF中的区域编号;一般情况下一个路由器只需要配置一个区域地址且同一区域中所有节点的区域地址都要相同。为了支持区域的平滑合并、分割及转换缺省情况下一个IS-IS进程下最多可配置3个区域地址
System ID用来在区域内唯一标识主机或路由器。在设备的实现中它的长度固定为6Byte
**NET的配置举例**
每台运行IS-IS的网络设备至少需拥有一个NET当然一台设备也可以同时配置多个NET但是这些NET的System ID必须相同
在华为的网络设备上System ID的长度总是固定的6Byte。在一个IS-IS路由域中设备的System ID必须唯一为了便于管理一般根据Router ID配置System ID
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211094903545.png" alt="image-20220211094903545" style="zoom:80%;" />
<h5>4.IS-IS和OSPF区域划分的区别</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211095208221.png" alt="image-20220211095208221" style="zoom:50%;" />
**IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构**
Level-1路由器部署在非骨干区域
Level-2路由器和Level-1-2路由器部署在骨干区域
每一个非骨干区域都通过Level-1-2路由器与骨干区域相连
如图所示整个骨干区域不仅包括Area49.0002中的所有路由器还包括其它区域的Level2和Level-1-2路由器
**注意:**
在学习OSPF过程中我们已经体会到了多区域、层次化网络设计的好处。对于链路状态路由协议而言运行了该协议的设备会向网络中通告链路状态信息同时也收集网络中所泛洪的链路状态信息后加以存储并最终以这些信息为基础进行计算从而得到路由信息。如果不采用多区域部署的方式那么随着网络的规模逐渐增大网络中泛洪的链路状态信息势必会越来越多所有设备都将承受更重的负担路由计算机收敛将逐渐变得更加缓慢这也使得网络的扩展性变差
**以上拓扑结构图可以体现IS-IS与OSPF的不同点**
在IS-IS中每个路由器都只属于一个区域而在OSPF中一个路由器的不同接口可以属于不同的区域
在IS-IS中单个区域没有骨干与非骨干区域的概念而在OSPF中Area0被定义为骨干区域
在IS-IS中Level-1和Level-2级别的路由都采用SPF算法分别生成最短路径树SPTShortest Path Tree而在OSPF中只有在同一个区域内才使用SPF算法区域之间的路由需要通过骨干区域来转发
<h5>5.IS-IS路由器的分类</h5>
**Level-1路由器**
Level-1路由器例如图中的R1是一种IS-IS区域内部路由器它只与属于同一区域的Level-1和Level-1-2路由器形成邻接关系这种邻接关系称为Level-1邻接关系。Level-1路由器无法与Level-2路由器建立邻接关系
Level-1路由器只负责维护Level-1的链路状态数据库LSDB该LSDB只包含本区域的路由信息。值得一提的是Level-1路由器必须通过Level-1-2路由器接入IS-IS骨干区域从而访问其他区域
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211095933096.png" alt="image-20220211095933096" style="zoom:50%;" />
**Level-2路由器**
Level-2路由器例如图中的R4、R5、R6、R7是IS-IS骨干路由器它可以与同一或者不同区域的Level-2路由器或者Level-1-2路由器形成邻接关系。Level-2路由器维护一个Level-2的LSDB该LSDB包含整个IS-IS域的所有路由信息
所有Level-2级别即形成Level-2邻接关系的路由器组成路由域的骨干网负责在不同区域间通信。路由域中Level-2级别的路由器必须是物理连续的以保证骨干网的连续性
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211100042200.png" alt="image-20220211100042200" style="zoom:50%;" />
**Level-1-2路由器**
Level-1-2路由器与OSPF中的ABR非常相似它也是IS-IS骨干网络的组成部分
Level-1-2路由器维护两个LSDBLevel-1的LSDB用于区域内路由Level-2的LSDB用于区域间路由
同时属于Level-1和Level-2的路由器称为Level-1-2路由器例如图中的R2和R3它可以与同一区域的Level-1和Level-1-2路由器形成Level-1邻接关系也可以与其他区域的Level-2和Level-1-2路由器形成Level-2的邻接关系。
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211100207249.png" alt="image-20220211100207249" style="zoom:50%;" />
注意:
在华为路由器上配置IS-IS时缺省时路由器全局Level为Level-1-2当然可以通过命令修改该设备的类型
<h5>6.IS-IS支持的网络类型</h5>
IS-IS会自动根据接口的数据链路层封装决定该接口的缺省网络类型 IS-IS支持两种类型的网络
广播Broadcast 如Ethernet
点到点P2P 如PPP、 HDLC等
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211100443150.png" alt="image-20220211100443150" style="zoom:50%;" />
<h5>7.IS-IS开销值</h5>
IS-IS使用Cost开销作为路由度量值Cost值越小则路径越优。IS-IS链路的Cost与设备的接口有关与OSPF类似每一个激活了IS-IS的接口都会维护接口Cost。然而与OSPF不同的是IS-IS接口的Cost在缺省情况下并不与接口带宽相关在实际部署时IS-IS也支持根据带宽调整Cost值无论接口带宽多大缺省时Cost为10
一条IS-IS路径的Cost等于本路由器到达目标网段沿途的所有链路的Cost总和
IS-IS有三种方式来确定接口的开销按照优先级由高到低分别是
接口开销:为单个接口设置开销
全局开销:为所有接口设置开销
自动计算开销:根据接口带宽自动计算开销
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211100625663.png" alt="image-20220211100625663" style="zoom:50%;" />
**narrow类型下使用的TLV**
128号TLVIP Internal Reachability TLV用来携带路由域内的IS-IS路由信息
130号TLVIP External Reachability TLV用来携带路由域外的IS-IS路由信息
2号TLV(IS Neighbors TLV):用来携带邻居信息
**wide类型下使用的TLV**
135号TLV(Extended IP Reachability TLV)用来替换原有的IP reachability TLV携带IS-IS路由信息它扩展了路由开销值的范围并可以携带sub TLV
22号TLVIS Extended Neighbors TLV用来携带邻居信息
<h5>8.IS-IS报文格式</h5>
IS-IS报文是直接封装在数据链路层的帧结构中的
PDUProtocol Data Unit协议数据单元可以分为两个部分报文头IS-IS Header和变长字段部分Variable Length Fields
其中IS-IS Header又可分为通用头部PDU Common Header和专用头部PDU Specific Header。对于所有PDU来说通用报头都是相同的但专用报头根据PDU类型不同而有所差别
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211101005940.png" alt="image-20220211101005940" style="zoom:80%;" />
**IS-IS通用头部详解**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211101025171.png" alt="image-20220211101025171" style="zoom:50%;" />
Intradomain Routing Protocol Discriminator域内路由选择协议鉴别符固定为0x83
Length IndicatorIS-IS头部的长度包括通用头部和专用头部以Byte为单位
Version/Protocol ID Extension版本/协议标识扩展固定为0x01
System ID LengthNSAP地址或NET中System ID区域的长度。值为0时表示System ID区域的长度为6Byte
RReserved保留固定为0
Version固定为0x01
Max.Areas支持的最大区域个数。设置为1254的整数表示该IS-IS进程实际所允许的最大区域地址数设置为0表示该IS-IS进程最大只支持3个区域地址数
**IS-IS报文类型概述**
IS-IS的PDU有4种类型IIH(IS-IS Hello)LSP Link State PDU链路状态报文CSNPComplete Sequence Number PDU全序列号报文PSNPPartial Sequence Number PDU部分序列号报文
IIH用于建立和维持邻接关系 广播网络中的Level-1 IS-IS路由器使用Level-1 LAN IIH 广播网络中的Level-2 IS-IS路由器使用Level-2 LAN IIH 点到点网络中则使用P2P IIH
LSP用于交换链路状态信息。LSP分为两种Level-1 LSP、Level-2 LSP
SNP通过描述全部或部分链路数据库中的LSP来同步各LSDB从而维护LSDB的完整与同步。SNP包括CSNP和PSNP进一步又可分为Level-1 CSNP、 Level-2 CSNP、 Level-1 PSNP和Level-2 PSNP
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211101321605.png" alt="image-20220211101321605" style="zoom:50%;" />
<h5>9.IS-IS常见的TLV</h5>
TLV的含义是类型TYPE长度LENGTHVALUE。实际上是一个数据结构这个结构包含了这三个字段
使用TLV结构构建报文的好处是灵活性和扩展性好。采用TLV使得报文的整体结构固定增加新特性只需要增加新TLV即可不需要改变整个报文的整体结构
| **TLV** **Type** | **名称** | **PDU**类型 |
| ---------------- | ------------------------------------------------------------ | --------------- |
| 1 | Area Addresses 区域地址 | IIH、 LSP |
| 2 | IS NeighborsLSP 中间系统邻接 | LSP |
| 4 | Partition Designated Level2 IS 区域分段指定L2中间系统 | L2 LSP |
| 6 | IS NeighborsMAC Address 中间系统邻接 | LAN IIH |
| 7 | IS NeighborsSNPA Address 中间系统邻接 | LAN IIH |
| 8 | Padding 填充 | IIH |
| 9 | LSP Entries LSP条目 | SNP |
| 10 | Authentication Information 验证信息 | IIH、 LSP、 SNP |
| 128 | IP Internal Reachability Information IP内部可达性信息 | LSP |
| 129 | Protocols Supported 支持的协议 | IIH、 LSP |
| 130 | IP External Reachability Information IP外部可达性信息 | LSP |
| 131 | Inter-Domain Routing Protocol Information 域间路由选择协议信息 | L2 LSP |
| 132 | IP Interface Address IP接口地址 | IIH、 LSP |
<h4>IS-IS工作原理</h4>
<h5>1.邻接关系建立</h5>
**IS-IS按如下原则建立邻接关系**
只有同一层次的相邻路由器才有可能成为邻接
对于Level-1路由器来说Area ID必须一致
链路两端IS-IS接口的网络类型必须一致
链路两端IS-IS接口的地址必须处于同一网段默认情况下
由于IS-IS是直接运行在数据链路层上的协议并且最早设计是给CLNP使用的IS-IS邻接关系的形成与IP地址无关。但在实际的部署中在IP网络上运行IS-IS时需要检查对方的IP地址的。如果接口配置了从IP那么只要双方有某个IP主IP或者从IP在同一网段就能建立邻接不一定要主IP相同
**注意:**
通过将以太网接口模拟成点到点接口,可以建立点到点链路邻接关系
当链路两端IS-IS接口的地址不在同一网段时如果配置接口对接收的Hello报文不作IP地址检查也可以建立邻接关系
一般情况下一个接口只需配置一个主IP地址但在有些特殊情况下需要配置从IP地址。比如一台路由器通过一个接口连接了一个物理网络但该物理网络的计算机分别属于2个不同的网络为了使路由器与物理网络中的所有计算机通信就需要在该接口上配置一个主IP地址和一个从IP地址。路由器的每个三层接口可以配置多个IP地址其中一个为主IP地址其余为从IP地址每个三层接口最多可配置31个从IP地址
**IIH**
IIH报文用于建立和维持邻接关系广播网络中的Level-1 IS-IS路由器使用Level-1 LAN IIH广播网络中的Level-2 IS-IS路由器使用Level-2 LAN IIH点到点网络中则使用P2P IIH
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211101919913.png" alt="image-20220211101919913" style="zoom:50%;" />
Reserved/Circuit Type表示路由器的类型01表示L110表示L211表示L1/L2
Source ID 发出Hello报文的路由器的System ID
Holding Time 保持时间。在此时间内如果没有收到邻接发来的Hello报文则中止已建立的邻接关系
Priority 选举DIS的优先级取值范围为0127。数值越大优先级越高。该字段只在广播网中的Hello消息(LAN IIH消息)携带点到点网络的Hello消息(P2P IIH消息)没有此字段也没有此字段之前的R保留位
LAN ID 包括DIS的System ID和伪节点ID。该字段只在广播网中的Hello消息(LAN IIH消息)携带点到点网络的Hello消息(P2P IIH消息)没有此字段
Local Circuit ID 本地链路ID。该字段只在点到点网络的Hello消息(P2P IIH消息)携带广播网中的Hello消息(LAN IIH消息)没有此字段
**广播网络中的邻接关系建立过程**
两台运行IS-IS的路由器在交互协议报文实现路由功能之前必须首先建立邻接关系。在不同类型的网络上IS-IS的邻接建立方式并不相同。在广播网络中使用三次握手建立邻接关系
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211102223215.png" alt="image-20220211102223215" style="zoom:50%;" />
**R1及R2通过千兆以太接口互联这两台直连的Level-1路由器建立邻接关系的过程如下**
在Down状态下R1组播发送Level-1 LAN IIH此报文中邻接列表为空
R2收到此报文后将邻接状态标识为Initial。然后R2再向R1回复Level-1 LAN IIH 此报文中标识R1为R2的邻接
R1收到此报文后将自己与R2的邻接状态标识为Up。然后R1再向R2发送一个标识R2为R1邻接的Level-1 LAN IIH
R2收到此报文后将自己与R1的邻接状态标识为Up。这样两个路由器成功建立了邻接关系
广播网络中需要选举DIS在邻接关系建立后路由器会等待两个Hello报文间隔再进行DIS的选举
**注意:**
Level-1 IIH和Level-2 IIH发送的组播地址分别为01-80-C2-00-00-14、01-80-C2-00-00-15
Down邻接关系的初始状态
Initial收到IIH但是报文中的邻接列表未包含路由器自身的System ID
UP收到IIS且邻接列表中包含路由器自身的System ID
**DIS与伪节点**
在广播网络中IS-IS需要在所有的路由器中选举一个路由器作为DISDesignated Intermediate System
DIS用来创建和更新伪节点Pseudonodes并负责生成伪节点的LSP用来描述这个网络上有哪些网络设备。伪节点是用来模拟广播网络的一个虚拟节点并非真实的路由器。在IS-IS中伪节点用DIS的System ID和Circuit ID非0值标识
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211102549292.png" alt="image-20220211102549292" style="zoom:50%;" />
**IS-IS中的DIS与OSPF中的DR**
Level-1和Level-2的DIS是分别选举的用户可以为不同级别的DIS选举设置不同的优先级
**DIS的选举规则如下**
DIS优先级数值最大的被选为DIS
如果优先级数值最大的路由器有多台则其中MAC地址最大的路由器会成为DIS
DIS发送Hello PDU的时间间隔是普通路由器的1/3这样可以确保DIS出现故障时能够被更快速地被发现
IS-IS中DIS与OSPF协议中DRDesignated Router的区别
在IS-IS广播网中优先级为0的路由器也参与DIS的选举而在OSPF中优先级为0的路由器则不参与DR的选举
在IS-IS广播网中当有新的路由器加入并符合成为DIS的条件时这个路由器会被选中成为新的DIS原有的伪节点被删除。此更改会引起一组新的LSP泛洪。而在OSPF中当一台新路由器加入后即使它的DR优先级值最大也不会立即成为该网段中的DR
在IS-IS广播网中同一网段上的同一级别的路由器之间都会形成邻接关系包括所有的非DIS路由器之间也会形成邻接关系。而在OSPF中路由器只与DR和BDR建立邻接关系
**点到点网络中的邻接关系建立过程**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211103015551.png" alt="image-20220211103015551" style="zoom: 50%;" />
点到点网络中邻接关系的建立使用两次握手方式只要路由器收到对端发来的Hello报文就单方面宣布邻接为Up状态建立邻接关系
两次握手机制存在明显的缺陷华为设备在点到点网络中使用IS-IS时默认使用三次握手建立邻接关系。此方式通过三次发送P2P IIH最终建立起邻接关系
<h5>2.链路状态数据库同步</h5>
**LSP**
IS-IS链路状态报文LSP用于交换链路状态信息。LSP分为两种Level1 LSP和Level2 LSP。Level1 LSP由Level-1路由器传送Level2 LSP由Level-2路由器传送Level-1-2路由器则可传送以上两种LSP
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211103254063.png" alt="image-20220211103254063" style="zoom:50%;" />
Remaining Lifetime : LSP的生存时间以秒为单位
LSP ID:由三部分组成System ID、伪节点ID和LSP分片后的编号
Sequence Number: LSP的序列号。在路由器启动时所发送的第一个LSP报文中的序列号为1以后当需要生成新的LSP时新LSP的序列号在前一个LSP序列号的基础上加1。更高的序列号意味着更新的LS
Checksum LSP的校验和
ATTAttachment由Level-1-2路由器产生用来指明始发路由器是否与其它区域相连。虽然此标志位也存在于Level-1和Level-2的LSP中但实际上此字段只和Level-1-2路由器始发的L1 LSP有关
OLLSDB Overload1bit过载标志位。设置了过载标志位的LSP虽然还会在网络中扩散但是在计算通过超载路由器的路由时不会被采用。即对路由器设置过载位后其它路由器在进行SPF计算时不会考虑这台路由器。当路由器内存不足时系统自动在发送的LSP报文中设置过载标志位
IS Type(2bit)生成LSP的路由器的类型。用来指明是Level-1还是Level-2路由器01表示Level-111表示Level-2
**IS-IS的LSDB**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211103406493.png" alt="image-20220211103406493" style="zoom:50%;" />
伪节点ID当该参数不为零时表示该LSP为伪节点生成
分片号当IS-IS要发布的链路状态协议数据报文PDUProtocol Data Unit中的信息量太大时IS-IS路由器将会生成多个LSP分片用来携带更多的IS-IS信息。分片号用来区分不同的LSP分片
**查看非伪节点的LSP**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211103730395.png" alt="image-20220211103730395" style="zoom:50%;" />
```shell
<R1> display isis lsdb 0100.0000.1001.00-00 verbose
Database information for ISIS(1)
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
--------------------------------------------------------------------------------------------------
0100.0000.1001.00-00* 0x0000000e 0x9a75 1072 113 0/0/0
SOURCE 0100.0000.1001.00
NLPID IPV4
AREA ADDR 49.0123
INTF ADDR 10.1.12.1 //描述接口信息
INTF ADDR 10.1.13.1
NBR ID 0100.0000.1001.01 COST: 10 //描述邻接关系
NBR ID 0100.0000.3003.01 COST: 10
IP-Internal 10.1.12.0 255.255.255.0 COST: 10
IP-Internal 10.1.13.0 255.255.255.0 COST: 10 //描述路由信息
IP-Internal 1.1.1.0 255.255.255.0 COST: 10
Total LSP(s): 1
```
AREA ADDR该LSP来源的区域号
INTF ADDR该LSP中描述的接口地址
NBR ID该LSP中描述的邻接信息
IP-Internal该LSP中描述的网段信息
**查看伪节点LSP**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211104152439.png" alt="image-20220211104152439" style="zoom:50%;" />
```shell
Database information for ISIS(1)
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
----------------------------------------------------------------------------------------------------
0100.0000.1001.01-00* 0x00000009 0xca36 431 55 0/0/0
SOURCE 0100.0000.1001.01
NLPID IPV4
NBR ID 0100.0000.1001.00 COST: 0 //描述该广播网络中所有IS-IS路由器
NBR ID 0100.0000.2002.00 COST: 0 //伪节点到达其他路由器的Cost值为0
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
```
注意:
在伪节点LSP中只包含邻接信息而不包含路由信息
**CSNP**
CSNP包含该设备LSDB中所有的LSP摘要路由器通过交互 CSNP来判断是否需要同步LSDB
在广播网络上CSNP由DIS定期发送缺省的发送周期为10秒
在点到点网络上CSNP只在第一次建立邻接关系时发送
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211104912304.png" alt="image-20220211104912304" style="zoom:50%;" />
Source ID发出CSNP报文的路由器的System ID
Start LSPCSNP报文中第一个LSP的ID值
End LSP IDCSNP报文中最后一个LSP的ID值
**PSNP**
PSNP只包含部分LSP的摘要信息与CSNP不同
当发现LSDB不同步时PSNP来请求邻居发送新的LSP
在点到的网络中当收到LSP时使用PSNP对收到的LSP进行确认
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211105617365.png" alt="image-20220211105617365" style="zoom:50%;" />
Source ID发出PSNP报文的路由器的System ID
**广播网络中LSP的同步过程**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211105731435.png" alt="image-20220211105731435" style="zoom:50%;" />
新加入的路由器R3首先发送IIH报文与该广播域中的路由器建立邻接关系。建立邻接关系之后R3等待LSP刷新定时器超时然后将自己的LSP发往组播地址Level-101-80-C2-00-00-14Level-201-80-C2-00-00-15。这样网络上所有的邻接都将收到该LSP
该网段中的DIS会把收到R3的LSP加入到LSDB中并等待CSNP报文定时器超时并发送CSNP报文
R3收到DIS发来的CSNP报文对比自己的LSDB数据库然后向DIS发送PSNP报文请求自己没有的LSP
DIS收到该PSNP报文请求后向R3发送对应的LSP进行LSDB的同步
**点到点网络中LSP的同步过程**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211113216373.png" alt="image-20220211113216373" style="zoom:50%;" />
R1先与R2建立邻接关系
建立邻接关系之后R1与R2会先发送CSNP给对端设备。如果对端的LSDB与CSNP没有同步则发送PSNP请求索取相应的LSP
假设R2向R1索取相应的LSP
R1发送R2请求的LSP的同时启动LSP重传定时器并等待R2发送的PSNP作为收到LSP的确认
如果在接口LSP重传定时器超时后R1没有收到R2发送的PSNP报文作为应答
则R1重新发送该LSP
R2收到LSP后发送PSNP进行确认
**LSP的处理机制**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211113408264.png" alt="image-20220211113408264" style="zoom:50%;" />
IS-IS通过交互LSP实现链路状态数据库同步路由器收到LSP后按照以下原则处理
若收到的LSP比本地LSP的更优或者本地没有收到的LSP
在广播网络中将其加入数据库并组播发送新的LSP
在点到点网络中将其加入数据库并发送PSNP报文来确认收到此LSP之后将这新的LSP发送给除了发送该LSP的邻居以外的邻居
若收到的LSP和本地LSP无法比较出优劣则不处理该LSP
**LSP产生的原因IS-IS路由域内的所有路由器都会产生LSP以下事件会触发一个新的LSP**
邻接Up或Down
IS-IS相关接口Up或Down
引入的IP路由发生变化
区域间的IP路由发生变化
接口被赋了新的metric值
周期性更新刷新间隔15min
<h4>IS-IS的基本配置</h4>
<h5>1.IS-IS协议的基本配置</h5>
![image-20220211113919644](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211113919644.png)
![image-20220211113928679](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211113928679.png)
![image-20220211113937273](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211113937273.png)
<h5>2.IS-IS配置</h5>
![image-20220211115036282](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211115036282.png)
**组网需求**
如图所示现网中有5台路由器。用户希望在这5台路由器实现网络互联并且因为R1性能相对较低所以还要使这台路由器处理相对较少的数据信息。同时用户希望R1可以选择最优路径访问192.168.10.0/24和192.168.20.0/24网段。
**配置思路**
在各路由器上配置IS-IS基本功能实现网络互联。其中配置R1为Level-1路由器可以使这台路由器维护相对少量的数据信息。同时配置R2和R3为Level-1/2路由器与R4和R5这两台Level-2路由器互联
**R1R1的路由器等级需要设置为Level1**
```shell
[R1] isis 1
[R1-isis-1] is-level level-1
[R1-isis-1] network-entity 49.0001.0010.0100.1001.00
[R1-isis-1] quit
[R1] interface gigabitethernet 0/0/0
[R1-GigabitEthernet0/0/0] isis enable 1
[R1-GigabitEthernet0/0/0] interface gigabitethernet 0/0/1
[R1-GigabitEthernet0/0/1] isis enable 1
```
**R2和R3R2、R3的路由器等级需要设置为Level1/2**
```shell
[R2] isis 1
[R2-isis-1] is-level level-1-2
[R2-isis-1] network-entity 49.0001.0020.0200.2002.00
[R2-isis-1] quit
[R2] interface gigabitethernet 0/0/0
[R2-GigabitEthernet0/0/0] isis enable 1
[R2-GigabitEthernet0/0/0] interface gigabitethernet 0/0/1
[R2-GigabitEthernet0/0/1] isis enable 1
[R3] isis 1
[R3-isis-1] is-level level-1-2
[R3-isis-1] network-entity 49.0001.0030.0300.3003.00
[R3-isis-1] quit
[R3] interface gigabitethernet 0/0/0
[R3-GigabitEthernet0/0/0] isis enable 1
[R3-GigabitEthernet0/0/0] interface gigabitethernet 0/0/1
[R3-GigabitEthernet0/0/1] isis enable 1
```
**R4和R5R4、R5的路由器等级需要设置为Level2**
```shel
[R4] isis 1
[R4-isis-1] is-level level-2
[R4-isis-1] network-entity 49.0002.0040.0400.4004.00
[R4-isis-1] quit
[R4] interface gigabitethernet 0/0/0
[R4-GigabitEthernet0/0/0] isis enable 1
[R4-GigabitEthernet0/0/0] interface gigabitethernet 0/0/1
[R4-GigabitEthernet0/0/1] isis enable 1
[R4-GigabitEthernet0/0/1] interface gigabitethernet 0/0/2
[R4-GigabitEthernet0/0/2] isis enable 1
[R5] isis 1
[R5-isis-1] is-level level-2
[R5-isis-1] network-entity 49.0002.0050.0500.5005.00
[R5-isis-1] quit
[R5] interface gigabitethernet 0/0/0
[R5-GigabitEthernet0/0/0] isis enable 1
[R5-GigabitEthernet0/0/0] interface gigabitethernet 0/0/1
[R5-GigabitEthernet0/0/1] isis enable 1
[R5-GigabitEthernet0/0/1] interface gigabitethernet 0/0/2
[R5-GigabitEthernet0/0/2] isis enable 1
```
**配置验证 (查看设备的IS-IS邻接表)**
R4路由器建立Level-2的邻接关系
```shell
<R4> display isis peer
Peer information for ISIS(1)
System Id Interface Circuit Id State HoldTime Type PRI
0020.0200.2002 GE0/0/0 0040.0400.4004.01 Up 25s L2 64
0050.0500.5005 GE0/0/1 0050.0500.5005.01 Up 13s L2 64
```
R1路由器建立Level-1的邻接关系
```
<R1> display isis peer
Peer information for ISIS(1)
System Id Interface Circuit Id State HoldTime Type PRI
0020.0200.2002 GE0/0/0 0010.0100.1001.01 Up 29s L1 64
0030.0300.3003 GE0/0/1 0030.0300.3003.01 Up 9s L1 64
```
System Id字段描述邻接的系统ID
Interface字段描述通过该路由器哪个端口与邻接建立邻接关系
Type描述与该邻接的邻接关系类型
PRI描述该邻接对应端口的DIS优先级
**配置验证 (查看设备的IS-IS路由表)**
```shell
<R1> display isis route
Route information for ISIS(1)
ISIS(1) Level-1 Forwarding Table
IPV4 Destination IntCost ExtCost ExitInterface NextHop
0.0.0.0/0 10 NULL GE0/0/0 10.1.12.2
GE0/0/1 10.1.13.3
10.1.24.0/24 20 NULL GE0/0/0 10.1.12.2
10.1.13.0/24 10 NULL GE0/0/1 Direct
10.1.12.0/24 10 NULL GE0/0/0 Direct
10.1.35.0/24 20 NULL GE0/0/1 10.1.13.3
```
R1路由表中存在区域内的明细路由以及两条等价的默认路由
**配置验证 (查看设备的IS-IS路由表) **
```shell
<R3>display isis route
Route information for ISIS(1)
-----------------------------
ISIS(1) Level-1 Forwarding Table
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
0.0.0.0/0 20 NULL
10.1.24.0/24 30 NULL GE0/0/0 10.1.13.1 A/-/L/-
10.1.13.0/24 10 NULL GE0/0/0 Direct D/-/L/-
10.1.12.0/24 20 NULL GE0/0/0 10.1.13.1 A/-/L/-
10.1.35.0/24 10 NULL GE0/0/1 Direct D/-/L/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
……
……
ISIS(1) Level-2 Forwarding Table
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
10.1.24.0/24 30 NULL
10.1.13.0/24 10 NULL GE0/0/0 Direct D/-/L/-
10.1.12.0/24 40 NULL
192.168.20.0/24 20 NULL GE0/0/1 10.1.35.5 A/-/-/-
10.1.45.0/24 20 NULL GE0/0/1 10.1.35.5 A/-/-/-
192.168.10.0/24 30 NULL GE0/0/1 10.1.35.5 A/-/-/-
10.1.35.0/24 10 NULL GE0/0/1 Direct D/-/L/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
```
R3作为Level-1-2路由器路由表中存在Level-1及Level-2路由
**路由渗透配置**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211141853150.png" alt="image-20220211141853150" style="zoom:50%;" />
**R2**
```shell
[R2] ip ip-prefix 1 permit 192.168.10.0 24
[R2] isis 1
[R2-isis-1] import-route isis level-2 into level-1 filter-policy ip-prefix 1
```
**R3**
```shell
[R3] ip ip-prefix 1 permit 192.168.20.0 24
[R3] isis 1
[R3-isis-1] import-route isis level-2 into level-1 filter-policy ip-prefix 1
```
**路由渗透验证**
通过查看R1的路由表我们可以看到新增了两条明细路由192.168.10.0/24以及192.168.20.0/24两条路由的开销值均为30当有数据包经由R1到达这两个网段时不会产生次优路径
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211142104848.png" alt="image-20220211142104848" style="zoom:50%;" />
```shell
<R1> display ip routing-table protocol isis
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : ISIS
Destinations : 5 Routes : 6
ISIS routing table status : <Active>
Destinations : 5 Routes : 6
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 ISIS-L1 15 10 D 10.1.12.2 GigabitEthernet0/0/0
ISIS-L1 15 10 D 10.1.13.3 GigabitEthernet0/0/1
192.168.10.0/2 ISIS-L1 15 30 D 10.1.12.2 GigabitEthernet0/0/0
192.168.20.0/2 ISIS-L1 15 30 D 10.1.13.3 GigabitEthernet0/0/1
10.1.24.0/24 ISIS-L1 15 20 D 10.1.12.2 GigabitEthernet0/0/0
10.1.35.0/24 ISIS-L1 15 20 D 10.1.13.3 GigabitEthernet0/0/1
```
<h5>3.IS-IS认证的分类</h5>
IS-IS认证是基于网络安全性的要求而实现的一种认证手段通过在IS-IS报文中增加认证字段对报文进行认证。当本地路由器接收到远端路由器发送过来的IS-IS报文如果发现认证密码不匹配则将收到的报文进行丢弃达到自我保护的目的
**根据报文的种类,认证可以分为以下三类:**
接口认证在接口视图下配置对Level-1和Level-2的Hello报文进行认证
区域认证在IS-IS进程视图下配置对Level-1的CSNP、PSNP和LSP报文进行认证
路由域认证在IS-IS进程视图下配置对Level-2的CSNP、PSNP和LSP报文进行认证
**根据报文的认证方式,可以分为以下四类:**
简单认证:将配置的密码直接加入报文中,这种加密方式安全性较其他两种方式低
MD5认证通过将配置的密码进行MD5算法加密之后再加入报文中提高密码的安全性
Keychian认证通过配置随时间变化的密码链表来进一步提升网络的安全性
HMAC-SHA256认证通过将配置的密码进行HMAC-SHA256算法加密之后再加入报文中提高密码的安全性
<h5>4.IS-IS认证详解</h5>
**接口认证**
Hello报文使用的认证密码保存在接口下发送带认证TLV的认证报文互相连接的路由器接口必须配置相同的口令
**区域认证**
区域内的每一台L1路由器都必须使用相同的认证模式和具有共同的钥匙串
**路由域认证**
IS-IS域内的每一台L2和L1/L2类型的路由器都必须使用相同模式的认证并使用共同的钥匙串
对于区域和路由域认证可以设置为SNP和LSP分开认证
本地发送的LSP报文和SNP报文都携带认证TLV对收到的LSP报文和SNP报文都进行认证检查
本地发送的LSP报文携带认证TLV对收到的LSP报文进行认证检查发送的SNP报文携带认证TLV但不对收到的SNP报文进行检查
本地发送的LSP报文携带认证TLV对收到的LSP报文进行认证检查发送的SNP报文不携带认证TLV也不对收到的SNP报文进行认证检查
本地发送的LSP报文和SNP报文都携带认证TLV对收到的LSP报文和SNP报文都不进行认证检查
<h5>5.IS-IS认证的配置</h5>
![image-20220211144826405](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211144826405.png)
![image-20220211144835706](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211144835706.png)