点到点的邻居建立过程
-
2次握手机制(ISIS PPP-Negotiation 2-Way):
- 配置方式:在接口上启用2次握手建立邻居。
- Hello报文特性:发送的Hello报文中不携带TLV240。
- 接口处理特性:接口不处理接收到的携带TLV240的Hello报文。
- 邻接建立:只要路由器收到对端发来的Hello报文(不携带TLV240),就单方面宣布邻接为Up状态,从而建立邻接关系。
-
3次握手机制(兼容2次握手)(ISIS PPP-Negotiation 3-Way):
- 配置方式:在接口上启用3次握手建立邻居,且向下兼容2次握手。
- Hello报文特性:发送的Hello报文携带TLV240。
- 接口处理特性:接口可以处理接收到的不携带TLV240的Hello报文(即兼容2次握手机制)。
- 邻接建立:通过三次发送和处理Hello报文(可能涉及TLV240的交换和确认)来最终建立起邻接关系,这种方式更加可靠。
-
仅用3次握手机制(ISIS PPP-Negotiation 3-Way Only):
- 配置方式:在接口上配置仅使用3次握手建立邻居。
- Hello报文特性:发送的Hello报文携带TLV240。
- 接口处理特性:接口只处理接收到的携带TLV240的Hello报文,不处理不携带TLV240的Hello报文。
- 邻接建立:必须通过三次发送和处理携带TLV240的Hello报文来建立邻接关系,这种方式确保了邻接建立的严格性和可靠性。

在广播网络中,新加入的路由器(如R3)与指定中间系统(DIS)同步链路状态数据库(LSDB)的过程
-
建立邻接关系:
- 新加入的路由器R3发送IS-IS Hello(IIH)报文,以与广播域中的其他路由器建立邻接关系。
-
发送LSP:
- 邻接关系建立后,R3等待其LSP刷新定时器超时。
- 定时器超时后,R3将自己的LSP发送到相应的组播地址(Level-1: 01-80-C2-00-00-14;Level-2: 01-80-C2-00-00-15)。
- 网络上的所有邻接路由器都会收到这个LSP。
-
DIS更新LSDB并发送CSNP:
- 该网段中的DIS将收到的R3的LSP加入到其LSDB中。
- DIS等待其CSNP(Complete Sequence Number Packet)报文定时器超时。
- 定时器超时后,DIS发送CSNP报文,以通知邻接路由器其LSDB的当前状态。
-
R3请求缺失的LSP:
- R3收到DIS发来的CSNP报文后,将自己的LSDB与DIS的LSDB进行对比。
- R3发现自身缺失的LSP,并向DIS发送PSNP(Partial Sequence Number Packet)报文,请求这些缺失的LSP。
-
DIS发送缺失的LSP:
- DIS收到R3的PSNP报文请求后,向R3发送对应的缺失LSP,以完成LSDB的同步。
LSP ID
- 作用:唯一表示一条LSP。
- 格式 :
0000.0000.0001.00-00
system id
:系统标识符,用于标识发出LSP的路由器。伪节点标识符
:用于区分实节点LSP和伪节点LSP。- 实节点LSP:伪节点标识符等于0,对应于OSPF的type 1 LSA。
- 伪节点LSP:伪节点标识符不等于0,对应于OSPF的type 2 LSA。
分片标识符
:用于标识LSP的分片(如果LSP被分片传输)。
LSP更新机制
-
周期性更新:
- 更新频率:每隔900秒更新一次。
- 更新内容 :
- 序列号(seq)加1。
- 重新计算校验和(checksum)。
- 老化时间:1200秒,从更新时开始倒计时。
-
触发更新:
- 在某些事件触发时,如网络拓扑变化、链路状态改变等,LSP会立即进行更新,而不需要等待周期性更新时间。
在P2P(点对点)链路中,设备的链路状态数据库(LSDB)更新过程
-
LSP序列号比较:
- 如果收到的LSP序列号比本地的序列号更小:
- 将本地LSP发送给对方。
- 等待对方发送PSNP(Partial Sequence Number Packet)报文作为确认。
- 如果收到的LSP序列号比本地的序列号更大:
- 将这个新的LSP存入自己的LSDB。
- 通过PSNP报文确认收到此LSP。
- 将这个新LSP发送给除发送该LSP的邻居以外的其他邻居。
- 如果收到的LSP序列号比本地的序列号更小:
-
LSP序列号相同,比较Remaining Lifetime:
- 如果收到的LSP序列号和本地相同:
- 若收到的LSP的Remaining Lifetime为0:
- 将收到的LSP存入LSDB。
- 发送PSNP报文确认收到此LSP。
- 将该LSP发送给除发送该LSP的邻居以外的其他邻居。
- 若收到的LSP的Remaining Lifetime不为0,而本地LSP的Remaining Lifetime为0:
- 直接给对方发送本地的LSP。
- 等待对方发送PSNP报文作为确认。
- 若收到的LSP的Remaining Lifetime为0:
- 如果收到的LSP序列号和本地相同:
-
LSP序列号相同且Remaining Lifetime都不为0,比较Checksum:
- 如果收到的LSP和本地LSP的序列号相同,且Remaining Lifetime都不为0:
- 若收到的LSP的Checksum大于本地LSP的Checksum:
- 将收到的LSP存入LSDB。
- 发送PSNP报文确认收到此LSP。
- 将该LSP发送给除发送该LSP的邻居以外的其他邻居。
- 若收到的LSP的Checksum小于本地LSP的Checksum:
- 直接给对方发送本地的LSP。
- 等待对方发送PSNP报文作为确认。
- 若收到的LSP的Checksum大于本地LSP的Checksum:
- 如果收到的LSP和本地LSP的序列号相同,且Remaining Lifetime都不为0:
-
LSP Checksum相同:
- 如果收到的LSP和本地LSP的Checksum都相同:
- 不转发该报文。
- 如果收到的LSP和本地LSP的Checksum都相同:
-
L1路由器:
- 使用L1的LSP来描述其直连的网段信息。
-
L2路由器:
- 使用L2的LSP来描述其直连的网段信息。
-
L1/L2路由器(L12):
- 根据链路级别对直连叶子(网段)进行描述:
- a. 如果链路为L2 :
- 在L2的LSP中描述该链路的叶子。
- 不在L1的LSP中描述该链路的叶子。
- b. 如果链路为L1或L1/L2(L12) :
- 在L1的LSP中描述该链路的叶子。
- 同时也在L1/L2(即L12相关的)上下文中描述该链路的叶子(通常这意味着在L1/L2路由器上,该信息会在其L1和L2 LSP中都体现,但具体实现可能依赖于路由器的配置和协议细节)。
- a. 如果链路为L2 :
- 根据链路级别对直连叶子(网段)进行描述:
1. 骨干区域路由器可以计算出非骨干区域的明细路由
- 原因:L1/L2(L12)路由器将L1 LSP(链路状态包)中计算出的路由信息作为自身直连的叶子节点挂载到L2的LSP中进行描述。这样,骨干区域的路由器就能够根据L2 LSP中的信息计算出非骨干区域的明细路由。
2. 非骨干区域路由器不可以计算出骨干区域的路由
- 原因:默认情况下,L1/L2路由器在L1的LSP中不会描述骨干区域的路由信息。因此,非骨干区域的路由器无法直接根据L1 LSP计算出骨干区域的路由。
3. 非骨干区域通过缺省路由访问其他网络
- 由于非骨干区域路由器无法直接计算出骨干区域的路由,它们通常通过缺省路由来访问其他网络。这种缺省路由是基于L1/L2路由器在L2 LSDB中存储的信息计算得出的。
4. 缺省路由的来源
- ATT bit(骨干区域连接符):在LSP中,ATT bit用于指示L1/L2路由器是否将自身产生的L1 LSP挂载到L2 LSP中。当L1/L2路由器在L2 LSDB中存储其他区域的L2 LSP时,它会将自己产生的L1 LSP中的ATT bit置为1。
- 缺省路由的计算:L1区域路由器根据ATT bit置为1的情况,计算出一条到达L1/L2路由器的缺省路由。这条缺省路由用于指导非骨干区域的流量如何访问骨干区域或其他网络。
5. 缺省路由计算中的次优路径问题及解决方法
- 问题:由于缺省路由的计算可能不是基于最优路径,因此存在次优路径问题。这可能导致非骨干区域的流量选择不是最优的路径来访问其他网络。
-
解决方法 :可以通过将L2的路由引入到L1的路由中来解决次优路径问题。这可以通过配置路由重分发命令(如
import-route isis level-2 into level-1
)来实现。这种做法可能导致路由泄漏,即L2的路由信息被不当地泄露到L1区域中。
ISIS认证分类
根据报文的种类分类
-
接口认证:
- 配置位置:接口视图下
- 认证对象:Level-1和Level-2的Hello报文
-
区域认证:
- 配置位置:IS-IS进程视图下
- 认证对象:Level-1的CSNP、PSNP和LSP报文
-
路由域认证:
- 配置位置:IS-IS进程视图下
- 认证对象:Level-2的CSNP、PSNP和LSP报文
根据报文的认证方式分类
-
简单认证:
- 方式:将配置的密码直接加入报文中
- 安全性:相对较低
-
MD5认证:
- 方式:将配置的密码进行MD5算法加密后再加入报文中
- 安全性:提高
-
Keychain认证:
- 方式:通过配置随时间变化的密码链表来进一步提升网络的安全性
- 特性:动态变化,提高安全性
-
HMAC-SHA256认证:
- 方式:将配置的密码进行HMAC-SHA256算法加密后再加入报文中
- 安全性:高,提供更强的加密保障
区域/路由域认证命令(L1)
-
命令 :
area-authentication-mode simple plain huawei
- 功能:对发送的L1的LSP、CSNP、PSNP添加认证TLV,并对接收到的L1的LSP、CSNP、PSNP做认证。
-
命令 :
area-authentication-mode simple plain huawei all-send-only
- 功能:对发送的L1的LSP、CSNP、PSNP添加认证TLV,但不对接收到的L1的LSP、CSNP、PSNP做认证。
-
命令 :
area-authentication-mode simple plain huawei snp-packet send-only
- 功能:对发送的L1的LSP、CSNP、PSNP添加认证TLV,但不对接收到的L1的CSNP、PSNP做认证,仍然对接收的L1的LSP做认证。
-
命令 :
area-authentication-mode simple plain huawei snp-packet authentication-avoid
- 功能:对发送的L1的LSP添加认证TLV,并对接收的L1的LSP做认证。忽略发送和接收的L1的SNP(CSNP、PSNP)报文认证。
区域/路由域认证命令(L2)
-
命令 :
domain-authentication-mode md5 plain huawei
- 功能:发送L2的SNP、LSP报文并携带认证TLV,对接收的L2的SNP、LSP做认证。
-
命令 :
domain-authentication-mode md5 cipher huawei all-send-only
- 功能:对发送的L2的LSP、CSNP、PSNP添加认证TLV,但不对接收到的L2的LSP、CSNP、PSNP做认证。
-
命令 :
domain-authentication-mode md5 cipher huawei snp-packet authentication-avoid
- 功能:对发送的L2的LSP添加认证TLV,并对接收的L2的LSP做认证。忽略发送和接收的L2的SNP(CSNP、PSNP)报文认证。
-
命令 :
domain-authentication-mode md5 cipher huawei snp-packet send-only
- 功能:对发送的L2的LSP、CSNP、PSNP添加认证TLV,但不对接收到的L2的CSNP、PSNP做认证,仍然对接收的L2的LSP做认证。
路由选择
L1的路由 > L2 路由 > L1*