3.8【OSPF】NP十二班第五天OSPF Router LSA详解
作者:互联网
OSPF Router-LSA详解
帧中继环境下DR和BDR的选举
1、DR和BDR在同一网段而不是同一区域,因为在同一区域里面可能会存在多个DR,多个BDR;DR和BDR是接口的概念。2、在NBMA网络环境中一般是不能通过组播去建立邻居关系的,在NBMA环境中如何通过组播去建立邻居关系?
需要把网络类型改成点到多点,会从接口发送组播报文,需要将PVC修改一下:
需要开启伪广播:开启brocast以后,帧中继也是支持组播和广播 加broadcast关键字,更改网络类型,R2上可以有正常路由条目,和算法是有关系的。
或者把网络类型改成点到多点: 改成点到多点网络类型,是不会选举DR和BDR的,只是通过单播的方式:点到点的方式去维护邻居关系。
横杠:表示接口的状态机是点到点(网络类型是点到多点): 点到多点、非广播网(帧中继、ATM非广播网的 环境,低速链路)网络类型 hello timer dead timer DR/BDR选举广播 10 40 有非广播网 30 120 有点到点 10 40 无点到多点 30 120 无虚链路 无 无 无点到多点非广播(cisco) 30 120 无
结论:由于DR和BDR的选举会造成DR会通告2类LSA,造成SPF算法错误 ,所以才引申出一个点到多点的网络类型去解决这个问题。
*******************************************************
OSPF LSA(LSA在OSPF里面是一个最重要的内容)
LSA:链路状态通告,不同的LSA通告不同的内容LSDB:在链路状态数据库保存的是不同类型的LSA有了LSA以后,才可以执行SPF算法,计算一个最短路径 ASBR:将Rip、Eigrp重分发进OSPF的话,它的角色就是ASBRASBR:自治系统边界路由器(如果将一些外部路由重分发进OSPF,这样的设备就是ASBR)ABR:区域边界路由器,连接了多个区域
OSPF常用的LSA?(R/S)
1类LSA(Router LSA) :
由谁通告:所有配置OSPF的设备;传递范围:本区域内通告2不会将 1的1类LSA传递到3中,但可以在本区域内传递的;最终,在这个区域的所有设备都会有这条1类LSA通告的内容:通告所有宣告进OSPF的链路信息
show ip ospf database //查看LSDB Router Link states:1类LSAADV Router:通告路由器Age: age时间-LSA的一个老化时间;LSA的 最大老化时间:3600秒;Seq#序列号:0X 80 00 00 02 有4个字节,1个字节8个比特,2的32次方比特checksum:对LSA的 一个校验Link count:在这个LSA里面,通告了几条链路信息
show ip ospf database ? //查看各种LSA 为什么router-id不能重复?因为LSA通告的时候,会标识这个LSA是由谁通告的,而标识者就是自己的Router-id。
show ip ospf database router 12.1.1.1 //加router参数,后见指定一个链路状态ID,实际上这个链路状态ID等于自己的Router-ID LSA的头部内容: 1类LSA的内容: R1#show ip ospf database router 12.1.1.1
OSPF Router with ID (12.1.1.1) (Process ID 1)
Router Link States (Area 0)
LS age: 331 \\LSA的保存时间,老化时间为3600S, LSA的更新时间为1800S。 Options: (No TOS-capability, DC) LS Type: Router Links \\ 1类LSA Link State ID: 12.1.1.1 \\1类LSA中LS ID等于发送者的Router-id Advertising Router: 12.1.1.1 \\LSA通告者的Router-id(填充LSA通告者的Router-id) LS Seq Number: 80000002 \\LSA序列号为32个bit,第一个比特代表符号(1=负数 0=整数),同时用到线性增长和棒棒糖算法。每个LSA更新序列号都会加1,这样来表示每个LSA都是最新的 Checksum: 0xCF25 Length: 36 Number of Links: 1
Link connected to: a Transit Network 链路类型 -LINK类型 (Link ID) Designated Router address: 12.1.1.2 (Link Data) Router Interface address: 12.1.1.1 Number of TOS metrics: 0 服务类型 TOS 0 Metrics: 1
如何去比较一个LSA的新旧?(大体流程)1.用LSU去通告LSA,判断这个LSA是否在LSDB里面?2.如果在的话,比较序列号,看序列号是否一致?如果一致,Ignore LSA;如果 不一致,看这个序列号是否大于本地保存的一个LSA?如果 大于,接收,替换掉本地保存的LSA;如果不是,继续将LSA发给我的邻居3.如果这条LSA不在LSDB里面,需要将这条LSA添加到LSDB,并发送LSACK,去泛洪LSA,给邻居,后续去运行SPF算法做一个计算 1类LSA中其实用31bit去表示序列号,如果到达最大序列号,会重复执行最小序列号,开始重新执行算法,这种算法是棒棒糖算法 增长方法:线性增长32个bit位里面,其中的31bit是代表序列号的,第一个bit位代表正负,1为负数,0为正数最小的序列号十六进制数:0x80000001 = 1000 0000(80) -0000 0001 -ffff ffff 00000000 7f ff ff ffOSPF序列号增长需要100多年用完LSA序列号用到两个算法:(1)线性增长 (2)棒棒糖算法
checksum:对LSA做一个哈希,保证LSA的可靠性,防止窜改
链路类型有4种:LINK类型 LINK-ID LINK-DATATransit DR接口IP地址 本接口IP地址Poinit-to-point(P2P) 邻居的Router-id 本接口IP地址 Stubnet 网络前缀地址 掩码地址Virtul-link 虚链路 邻居的Router-id MIB的接口ID(本接口IP地址)
//看OSPF里面的LSU报文Do Not Age:如果这个比特位置位,1,这个LSA永远不老化Flags:只有在routerLSA里面才包含,如何知道网络中是 虚链路/ASBR/ABR - V / E /B 注:在Router-LSA中包含3个flag位。 1、Vbit 标识虚链路 2、Ebit 标识是ASBR 3、Bbit 标识是ABR
在OSPF中的序列号如何判断LSA的新旧?(收到一条LSA之后需要和我的LSA做个比对,用新的LSA去代替旧LSA)1、比较序列号,序列号越大越新。2、如果序列号一样,比较checksum值,越大越新。3、如果checksum一样,比较LSA AGE,如果LSA AGE等于MAX AGE(3600)为最新。说明这条LSA是需要马上被老化掉的4、如果LSA AGE不等于MAX AGE,需要运行Maxage diff算法,比较接收到的LSA和本地保存的LSA的AGE时间差,如果时间差大于15分钟,LSA AGE越小越新,如果小于15分钟则认为是一样的,忽略。 1.R4转发时延设为500s,经过R2加500,经过R3加500s,变为1000s,约等于16分钟2.R3到R4的时间1000多s,而R4到R3约为2秒3.现在LSA age> max age 15分钟,R4到R3的LSA会变为新的替换掉R3到R4的 LSA
2类LSA(Network LSA):3类LSA(Network summary LSA):4类LSA(ASBR summary LSA):5类LSA (AS External LSA):AS外部的LSA6类LSA:组播的LSA,用于MSPF7类LSA(NSSA LSA):
来自为知笔记(Wiz)
标签:通告,LSA,链路,NP,Router,序列号,OSPF 来源: https://www.cnblogs.com/xuxaut-558/p/11287198.html