R4想去10.1.13.0网段有争议,配置环回口 1.1.1.1 单独精确标识AR1,看到1.1.1.1就一定是AR1
有几个广播域就有几个2类LSA
环回口携带在1类LSA中 AR1的1类LSA携带的链路状态绝对会包含一个环回口
加几个环回口到OSPF进程中就有几个1类的LSA来描述环回口
伪节点是第一个lik ID
设备存在环回口地址,通过1类LSA的subnet链路状态来描述
P2P网络是直接当中1类LSA来描述的,因为没有2类LSA
拓扑信息绘画
Dis ospf lsdb 查看拓扑信息数据库
Dis ospf lsdb router IP地址 查看某条拓扑信息
伪节点就是一个索引,标明了你有这么个伪节点的存在以直接查找伪节点的2类LSA的方式
2类LSA就是伪节点的1类LSA
拓扑信息绘画
Dis ospf lsdb 查看拓扑信息数据库
1、Dis ospf lsdb router 实节点IP地址 查看本AR的拓扑信息数据库然后根据本路由器为中心绘画出本路由器连接的伪节点
2、拓扑数据库画出和本机连接的每个伪节点,然后dis ospf lsdb net 画出的每个伪节点,的RID
3、再根据dis ospf lsdb net 伪节点中的Attached Router绘画出伪节点连接的实节点的拓扑信息
4、然后再Dis ospf lsdb router 绘画出的实节点 重复到画出每个伪节点实节点----整个拓扑
可以以任何一个AR设备作为根
伪节点是虚构的节点,它没有开销,是虚构的,伪节点到实节点的开销是0,实节点到伪节点的开销是1
以谁作为参考就以谁的出方向经过一个伪节点COST+1
1类LSA的作用:我通过实节点可以判断出我下面连接的是谁,并且我自身包含了哪些路由
2类LSA:包含了哪些路由,连接了哪些节点,通过两者的不断计算叠加可以画出拓扑图
通过1类找到对应连接的2类再通过2类找到对应连接的1类再通过1类找连接的2类,重复至画完整个拓扑
路径计算 AR1-AR5
从AR1出发到每个广播型网络的伪节点cost都+1
Dis ip ro IP地址 查看指定地址路由
AR1去往AR5的10.1.25.0网段要加上AR2留存的10.1.25.0的路由的开销
P2P链路是48开销
48+48=96
访问串口链路 路径开销要叠加路由的开销 比如下图AR1访问AR2 10.1.52.0/24 路径cost=1 路由cost 48 就是49
先把拓扑图画完再根据开销去找最好的那一条
SPF计算
最短路径算法:AR1到AR2的CSOT 是100 在计算画拓扑的时候,其他路径cost =1的话就会把 COST=100去往AR2的路径放入候选列表,优先计算COST=1的路径去往AR2的路径 计算出最短路径,如果计算COST=1的路径没有到达AR2的才会重新启用COST=100的路径’
从一开始就不计算那条大的路径,那么我计算出来的路径一定是最优
SPF算法
Phase 1:构建SPF树。
- 路由器将自己作为最短路径树的树根,根据Router-LSA和Network-LSA中的拓扑信息,依次将Cost值最小的路由器添加到SPF树中。路由器以Router ID或者DR标识。
- 广播网络中DR和其所连接路由器的Cost值为0。
- SPF树中只有单向的最短路径,保证了OSPF区域内路由计算不会出现环路。
SPF算法
Phase 2:计算最优路由。
- 将Router-LSA、Network-LSA中的路由信息以叶子节点形式附加在对应的OSPF路由器上,计算最优路由。
- 已经出现的路由信息不会再添加到SPF树干上。
SPF算法举例
我AR1只会画出到10.0.12.2的拓扑不会画出到10.0.3.3的拓扑
候选列表:我告诉你现在有几条路可选,你一直选路径最小的进行计算
你每走一步我都有几条路给你选,你走开销最小的那一条,其他放入候选
1类LSA表述自己连接了几个伪节点 2类LSA表明自己连接了几个实节点,相互叠加查询画出拓扑计算出最短路径,优先计算最短路径
TransNet 链路的类型(广播),拓扑信息 才有伪节点
1类LSA的Link ID一定就是2类LSA的 LS ID
1类能找到2类 2类能找到1类
1、选择根节点dis ospf lsdb
2、候选列表=dis ospf lsdb router 中选路
3、选择短的那条然后dis ospf lsdb network 查看这条虚路中连接的实路
4、再次dis ospf ip router 上方虚路中候补列表中的最短路---
AR1--到---AR5
查LSDB数据库看最短开销的路径
查看伪节点10.0.12.2 的开销继续计算出AR2实节点
DIS OSPF LSDB
LSA的新旧判断:
1.seq,值越大越优先
2.chksum,值越大越优先 如果序列号和校验核都一样则比较age时间
3.age,本地的LSA age和收到的LSA age比较
如果差值<=900 ,认为age一致,保留本地的 我本地有一条LSA是100 你给的是400 差值小于900则我认为是一样的
如果差值>900,认为age不一致,优选age小的
主要用于LSA的刷新
1800s刷新,3600s老化
LSA谁产生,谁刷新(维护),谁撤销:比如 AR1我删除了一个1.1.1.1的环回口,则认为我没有这条1.1.1.1的路由了我要告知到其他的AR我没有这条路由了
给你一条新的LSA告知你,我没有1.1.1.1这条路由了,你按照新的LSA来
1类LSA 更新、撤销:
1.更新:设备上增加了新的路由 AR设备会通告到每个邻居,在邻居的接口或者自己的出接口上抓包查看明细
为什么每次更新都携带已经存在的路由?
:必须要携带明细的信息我才知道这条 路由是给到1的
2.撤销: 更新式的撤销
因为1类LSA包含的拓扑和路由信息
如果路由信息发生了变动 相当于 拓扑信息发生了变动
在1类LSA撤销时,会增加seq的值,变为一条新的LSA(不携带需要撤销的内容)
新旧LSA是没有任何关系的 ,序列号不一样或者校验和不一样都是不同的LSA
只有序列号校验核一样,只要时间值改变我才认为是原来的LSA做更新改变
我改的是路由,OSPF更新认为是拓扑的变化,我不认为是路由更改,我认为是拓扑改变,我把1类LSA做一个更新式的撤销,发一条新的LSA,这条LSA里面我可以增加信息也可以删掉信息,但我是一条新的,完整的LSA
Dis ospf int 端口号:查看AR的端口在链路上的角色,DR BDR等
2类LSA更新、撤销
1.更新:AR设备从DR的伪节点角色变为BDR 另一台AR成为DR伪节点时通告的2类LSA
序列号增加,节点增加
2.撤销
1.非DR设备失效,DR执行的2类LSA撤销,更新式的撤销,序列号+1
2.DR设备失效,重启后变为非DR设备 只有DR会产生
该设备会撤销原来通告的2类LSA
seq、chksum与原来通告的2类LSA 一致
age 变为3600s
- AR3是DR,当AR3断开链路过后 AR1 和AR2的拓扑数据库中还会存在AR3通告的2类LSA
- 当AR2取代AR3成为新DR之后 AR3通告的2类LSA还是会存在AR1 AR2的拓扑数据库中直到3600s老化掉
- 如果此时AR3重新连接,就会主动撤销掉发送的2类LSA,AR3它发现这条2类LSA是自己通告的但是现在自己不是DR就会把原来通告的2类LSA撤销掉
谁产生谁负责谁撤销,不是产生2类LSA的设备只能等3600S老化
3600S是在执行一个撤销的动作 相当于更新撤销
2类LSA更新和撤销
假设下图中AR1突然关机了在AR4 AR2这个广播域里面AR1的路由还是会存在的,AR1直接关机的,什么都没有通告意味着AR1通告给AR2 AR4的2类LSA不知道怎么处理,只能等3600S老化,如果AR1重新启动 AR4 AR2就会对应着刚刚的2类LSA做撤销
DR失效 对应这2类LSA 如何处理?
在拓扑正常时,AR3做为DR通告2类LSA
AR3失效,AR2成为新的DR,但是AR1和AR2的LSDB中会存在两条2类LSA
1. 一条2类LSA 是原DR(AR3)通告的
2. 一条2类LSA 是新DR(AR2)通告的
AR3恢复,和AR2建立邻接关系,同步LSDB
AR3收到原DR通告的2类LSA,就会执行撤销的动作
发布2类LSA,seq、chksum与原DR通告的2类LSA 相同,age变为3600s
原DR通告的2类LSA
撤销的2类LSA