当前位置: 首页 > news >正文

ISIS区域内、区域间计算

如果将广播型网络改变为P2P网络:
则报文封装IEEE802.3的格式帧 目标MAC地址为0900-2b00-0005

而 P2P 网络呢,就像是社区里的两个人在单独打电话,他们之间的对话只有他们自己能听到,不会让整个社区的人都知道。

那这个目标 MAC 地址 0900-2b00-0005 呢,就好比是这两个人在打电话时,他们约定好的一个特殊的 “暗号”。这个 “暗号” 是 IS-IS 协议在 P2P 网络中用来识别和交流的一个特定标识。

比如说,社区里有一些人是专门送快递的(就像 IS-IS 协议在网络中负责传输特定的信息),他们之间传递快递信息的时候,就会用这个特殊的 “暗号” 0900-2b00-0005 来表示这是他们之间需要处理的重要信息,只有看到这个 “暗号” 的送快递的人(也就是运行 IS-IS 协议的设备)才会去处理这个信息,而其他不是专门送快递的人(不运行 IS-IS 协议的设备)就不会去管这个信息。

LSP条目的处理:
1.先比较序列号,值越大越优先
2.序列号相等,查看Age时间值
1.如果age不等于0,则不做比较
2.如果age等于0,则表示撤销一条LSP
3.如果age不等于0,查看chksum
chksum值越大越优先

  • 保活时间 **=0 秒 ** → 选它!(这是 “撤销声明”,直接让旧信息失效);
  • 保活时间**≠0 秒** → 进入下一步比 “校验和”。

1. 先比较序列号,值越大越优先

可以把序列号想象成 “报告的版本号”。
比如:

  • 设备 A 第一次发 “路况报告”,序列号是 1;
  • 过了一会儿,路况变了,设备 A 更新报告,序列号变成 2;
  • 其他设备收到这两个报告时,会自动选序列号大的(版本 2),因为它是更新的信息。

原理:序列号每次更新都会 + 1,越大说明信息越新,所以优先用新的。

2. 序列号相等时,看 Age(老化时间)

如果两个报告序列号一样(版本相同),就看 “报告的有效期”:

  • 如果 Age≠0:说明报告还在有效期内,此时不用比较 Age(因为有效期内的同版本报告内容一致,没必要再比)。
  • 如果 Age=0:说明这份报告已经 “失效作废” 了(相当于设备主动撤回这条信息)。比如设备 A 之前报告 “某条路通”,后来这条路断了,它就会发一个 Age=0 的同序列号报告,告诉大家 “之前那条信息作废了”。

3. Age≠0 时,看 Checksum(校验和)

如果序列号相同,且报告都在有效期内(Age≠0),就用 Checksum 来判断。
可以把 Checksum 想象成 “报告内容的指纹”:

  • 内容完全一样的报告,指纹(Checksum)相同;
  • 哪怕内容有一点点差别(比如路况细节改了),指纹就会变,而且通常新的指纹值会更大。

所以当两个报告版本相同、都有效,但内容可能有差异时,就选 Checksum 大的,因为它代表内容更新(或者说,协议规定用这种方式区分微调后的同版本报告)。

     

区域内如何计算拓扑与路由?

1.根据学习到的LSP,分析所有链路状态
[AR1]dis isis lsdb

                                Level-1 Link State Database

LSPID                 Seq Num      Checksum      Holdtime      Length  ATT/P/OL
每条LSP的标识         序列号       校验和        保持时间      长度    功能bit
-------------------------------------------------------------------------------
0000.0000.0001.00-00* 0x0000000a   0x84fb        1190          102     0/0/0   

0000.0000.0001   .00         -00          *
system-id    伪节点标识符  分片标识符  自身产生标识
伪节点标识符:如果为 .00 则标识该LSP为实节点LSP;如果为 .非0 则表示伪节点LSP
分片标识符:如果为 -00 则表示为不分片的LSP;如果为 -非0 则表示LSP分片


[AR1]display isis lsdb 0000.0000.0001.00-00 verbose   查看LSP的明细

                        Database information for ISIS(1)
--------------------------------

                          Level-1 Link State Database

LSPID                 Seq Num      Checksum      Holdtime      Length  ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00* 0x0000000c   0x865d        938           113     0/0/0   
SOURCE       0000.0000.0001.00    AR1设备的实节点LSP
NLPID        IPV4
AREA ADDR    49.0001  
INTF ADDR    10.1.12.1  自身的接口地址
INTF ADDR    1.1.1.1    自身的接口地址
INTF ADDR    10.1.13.1  自身的接口地址
NBR  ID      0000.0000.0002.00  COST: 10      邻居system-id标识,拓扑信息
NBR  ID      0000.0000.0003.01  COST: 10      邻居system-id标识,拓扑信息
IP-Internal  10.1.12.0       255.255.255.0    COST: 10      自身的路由信息  
IP-Internal  1.1.1.1         255.255.255.255  COST: 0       自身的路由信息
IP-Internal  10.1.13.0       255.255.255.0    COST: 10      自身的路由信息


ISIS是拓扑 与 路由 分离的结构,单纯的路由变化 不会影响拓扑的结构
OSPF是拓扑与路由不分离的结构,如果1类、2类LSA 路由变化,则会重新计算拓扑


2.如何计算区域内的拓扑信息?
通过SPF算法

3.如何计算区域内的路由信息?
SPF算法计算出 拓扑树后,直接将路由信息当作叶子 挂载在拓扑节点上

 所有的链路开销默认都为10,路由的开销是迭加计算的

区域间如何计算路由?
1.L2设备如何计算L1设备的路由信息?
L1/2设备会将L1的路由信息 当作叶子 挂载在自身产生的L2-LSP上
路由信息挂载时,会携带明细的开销值
从L2设备视角看,该路由相当于是L1/2设备的路由信息

2.L1设备如何计算L2设备的路由信息?
L1设备组成的非骨干区域类似于OSPF的特殊区域
即L1设备通过缺省路由访问L2设备的路由信息
*L1设备的缺省路由如何得到?
L1设备收到L1/2设备产生的L1-LSP中 ATT bit置位为1
*L1/2的L1-LSP中ATT bit如何置位?
1.产生该L1-LSP的设备一定是 L1/2设备
2.L1/2设备存在L2的邻居关系
3.L1/2设备收到不同区域的L2-LSP


[AR1-isis-1]attached-bit avoid-learning  在L1设备上设置不根据ATT bit计算缺省路由
[AR2-isis-1]attached-bit advertise never  在L1/2设备上设置通过的L1-LSP不会将ATT bit置位

需要注意的是:AR2的G0/0/1口如果是L2这样它的叶子节点是不会挂载到AR2上去的,只有当AR2的G0/0/1口是L1-2的时候才会挂上去,因为有L1,此时pingAR4的G0/0/0口是可以通信的但是ping AR4的4.4.4.4不会通信,因为AR4(L1/2)没有设备收到不同区域的L2-LSP,ATT不会置位为1,所有AR1不会产生缺省路由

L1访问L2设备路由信息的次优问题:
L1设备通过ATT bit计算的缺省路由开销,都是到达L1/2设备的开销(只能计算到到达L1/2设备的开销,计算不了L1-2后面连接设备的开销,这样就导致了次优)
没有L2设备路由的明细开销,容易出现次优路径

如果解决次优路径?
1.修改链路开销
2.设置ATT bit 不置位(会影响备份链路的生成,不建议使用)
3.管理员手工配置静态路由,修改优先级值
*次优路径的形成,是因为计算了到达L1/2设备的缺省路由
如果通过明细路由访问,就不会存在次优了
*如何让L1设备学习L2设备的明细路由?
通过路由渗透实现
*什么是路由渗透?
就是L1/2设备上 执行L2路由 引入到 L1
[AR2-isis-1]import-route isis level-2 into level-1 
多台L1/2设备,都要执行渗透

路由渗透会存在什么问题?
当L1和L2产生相同的LSP,L12设备会如何选择?
L1的LSP 优于 L2的LSP
当存在双L1/2设备,由一台执行渗透操作
另一台L1/2设备,就会学到L1 和 L2对应的LSP,会优选L2的LSP

  如果另一台L1/2设备优选L1的LSP,则会造成次优路径的问题

  ISIS对于渗透的路由执行优化,即设置相关的bit 可以让L1/2设备识别

  *ISIS对于渗透的路由会添加U/D bit 置位

L2的LSP 优于 U/D bit置位的L1-LSP

*只有L1/2设备会查看 U/Dbit置位的L1-LSP
*如果L1/2设备学习到 U/Dbit置位的L1-LSP,但不存在对应的L2-LSP
L1/2设备会通过U/Dbit置位的L1-LSP 计算出路由
L1/2设备不会将U/Dbit置位的L1-LSP 当作叶子路由在L2的LSP上挂载

也就是AR2执行渗透了之后,AR1就能学到了,AR3也能学到4.4.4.4,但AR3不会泛洪给AR5了。

  *执行渗透的路由信息,在LSP中使用 *  标识
[AR3]dis isis lsdb 0000.0000.0002.00-00 level-1 verbose
LSPID                 Seq Num      Checksum      Holdtime      Length  ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0002.00-00  0x00000023   0xbb2         1179          162     1/0/0        
IP-Internal* 4.4.4.4         255.255.255.255  COST: 10        
IP-Internal* 10.1.34.0       255.255.255.0    COST: 20        
IP-Internal  10.1.24.0       255.255.255.0    COST: 10  
L1/2设备执行渗透后,不会将自身直连的路由 进行U/D bit置位 (看L1的信息

  *L1/2设备一定不会使用ATT bit计算缺省路由

  *在L1/2设备渗透时,可以通过设置匹配项 渗透特定的路由信息
#
acl number 2000  
rule 5 permit source 4.4.4.5 0 
rule 10 permit source 4.4.4.4 0 
[AR2]isis 
[AR2-isis-1]import-route isis level-2 into level-1 filter-policy 2000

路由渗透形象版:

先给设备们分配 “角色”

把图里的设备想象成快递公司的转运站,规则如下:

  • L1 设备(AR1):小县城网点(只能在 “本县” 送货,对应 L1 区域,标识 49.0001 )
  • L1/2 设备(AR2、AR3):地级市转运中心(既能给 “本县(L1)” 送货,也能给 “外地市(L2)” 转运,是 “区域边界” )
  • L2 设备(AR4):外省总仓库(只能给 “外地市(L2)” 送货,对应另一个区域,标识 49.0002 )

“路由渗透” 就像:地级市 AR2 说:“外省的货(L2 路由),我给小县城 AR1 也送一份!” (import-route isis level-2 into level-1 )

场景 1:正常选路(AR3 选 L2 更优,没问题)

假设只有 AR2 干 “渗透”(给小县城 AR1 送外省货),另一地级市 AR3 会发生啥?

  1. AR3 能收到 2 份 “外省货地址”

    • L2 版地址:AR3 自己是 “地级市转运中心(L1/2)”,能直接通过 “外省专线(AR3 - AR4 链路)”,拿到 “外省总仓库 AR4” 的L2 版地址(走 “外地市正规流程” )。
    • L1 版地址:因为 AR2 干了渗透,AR2 会把 “外省货地址” 包装成 “本县能懂的 L1 版”,传给小县城 AR1,而 AR3 作为 “地级市转运中心”,也能从 “本县链路(AR2 - AR3 的 L1 链路)”,拿到这份L1 版地址(相当于 “听小县城说有外省货” )。
  2. AR3 的选择
    ISIS 规则是 **“外地市(L2)的地址比本县(L1)传的更靠谱”(L2 类型 LSP 优于 L1 )。所以 AR3 会优先选 L2 版地址 **(直接走 AR3 - AR4 的 “外省专线” ),这是最快捷的!

场景 2:次优路径的 “坑”(假设规则反过来,L1 更优)

现在搞事情:假设规则变成 **“本县(L1)传的地址,比外地市(L2)更靠谱”**(模拟问题逻辑,实际 ISIS 是 L2 更优 ),此时:

  • AR3 会优先选 “L1 版地址”(听小县城 AR1 说的 “渗透地址” ),路径就变成:AR3 → AR2 → AR4(绕了一圈小县城 ),而不是直接走 AR3 → AR4 的 “外省专线”!

这就离谱了 → 明明有更快的 “外省专线”,却因为规则乱了,绕路送货,多花时间、多走冤枉路(次优路径问题 )!

回到真实 ISIS 规则(L2 优于 L1),理解 “渗透后可能的坑”

实际 ISIS 里,L2 类型 LSP 天生比 L1 更优(外地市转运中心的地址,比小县城传的更靠谱 )。但如果有多台 L1/2 设备(比如 AR2、AR3 都干渗透 ),或者渗透配置乱了,就可能让设备 “confused( confusion )”:

  • 比如两台 L1/2 设备都干渗透,会导致 L1 区域里 “重复传地址”,设备拿到一堆 LSP,选路时可能误判,绕路送货。
  • 或者像你图里,只让 AR2 干渗透,AR3 没干,但 AR3 又能从 L1 侧拿到地址,就可能因为 “L2 和 L1 地址打架”,选到绕路的路径。

一句话总结

路由渗透是为了让 “小县城(L1)” 能收到 “外省货(L2 路由)”,但多台 “地级市转运中心(L1/2 设备)” 共存时,选路规则(L2 和 L1 谁更优)会影响送货路线。一旦规则乱了(或配置漏了 ),就会让设备 “放着近路不走,绕路送货” → 这就是次优路径问题

现在再看拓扑图,是不是能脑补出 “AR3 绕路 AR2 送货” 的画面啦?核心就是L1/L2 设备选路规则冲突,导致流量走冤枉路

当级别L1-2设备收到L1和L2同时产生的比如4.4.4.4路由的时候会选择L1的

当同时有俩个L1-2设备,只有一个L1-2设备做了渗透,那么L1-2设备不会选择L1的,而是会选择拓扑能计算到的L2设备,因为从L1-2做了渗透的路由Distribution:Down状态。

需要记住的命令:

把广播型网络变成P2P网络:

http://www.dtcms.com/a/335135.html

相关文章:

  • 发文暴论!线性注意力is all you need!
  • Windows 操作系统 - Windows 恢复浏览器标题栏颜色
  • VS Code配置MinGW64编译Ipopt库
  • 什么是微前端?
  • 关键点检测(11)-HRNet网络
  • 博士招生 | 香港大学 机器增强认知实验室 招收博士生/实习生/访问学生
  • bilibili视频总结
  • mysql使用group by的时候想显示没有参与聚合的字段怎么办
  • 【开发技巧】VS2022+QT5+OpenCV4.10开发环境搭建QT Creator
  • Geostudio 2018 R2安装后提示:软件不能在虚拟机上运行
  • 关于 Linux 内存管理
  • MySQL 深分页优化与条件分页:把 OFFSET 换成“游标”,再用覆盖索引抄近路
  • WSL 配置文件 wsl.conf 设置
  • IOMMU的2级地址翻译机制及多级(2~5)页表查找
  • 56. 合并区间
  • 计算你的身体质量指数(BMI)
  • SQL183 近三个月未完成试卷数为0的用户完成情况
  • ​江湖四大秘本之一的《英耀篇》​
  • 片料矫平机科普
  • Spring AI架构分析
  • leetcode-139. 单词拆分-C
  • 每日任务day0816:小小勇者成长记之符文羊皮卷
  • Java -- 泛型-自定义泛型
  • 【数据结构入门】二叉树(2)
  • 数据结构 实现循环队列的三种方法
  • 模式组合应用-桥接模式(一)
  • (论文速读)ViDAR:视觉自动驾驶预训练框架
  • Harmony OS 开发入门 第四章
  • C# 反射和特性(关于应用特性的更多内容)
  • 022 基础 IO —— 文件