OSPF路由计算
OSPF是链路状态路由协议,泛洪的是LsA: Link state Advertise,LsA本身不是报文,他需要基于Lsu报文传递,存放在LsDB中。
域内是指的OSPF区域内部
OSPF的区域划分:骨干区域
非骨干区域
当路由器运行的0SPF协议,接口宣告到osPF进程当中,那么该接口的IP地址,子网掩码,以及其他的一些信息,都会生成链路状态
当路由器的一个接口宣告进了OSPF,那么这个接口就会生成链路状态,存放到LSA当中,每个路由器都会生成一个1类LSA,用来描述自身的直连链路状态
Type :Router LSA类型,router代表1类LSA,用来描述路由器自身直连接口的链路状态信息
Ls id :1.1.1.1 链路状态ID,也就是这条LSA的名字,在1类LSA中,使用本路由器的router-id充当
Adv rtr :1.1.1.1 通告者,产生这条LSA的路由器router-id
Ls age :140 老化时间
Len :48 报文长度
Options :E 特殊区域标识 E=1 代表普通区域
E=8代表末节区域
E=8且N=1 代表NSSA区域
seq# :80000002 序列号
chksum :0xdf28 校验和
Link count :2 链路状态数量
1类LSA
在1类LSA当中,使用4种1ink-type来描述链路状态:
1、当link-type为stubNet:用来描述一条路由信息的(叶子节点)
Link ID: 12.1.1.0 用来描述这条路由信息的网络号
Data :255.255.255.0 用来描述这条路由信息的网络掩码
Metric :1562 用来描述该路由器达到目标网络的开销值
2、当link-type为P-2-P:用于描述直连链路上网络类型为P2P或者P2MP的邻居信息(树干信息)
Link ID: 2.2.2.2 用来描述该邻居的router-id
Data :12.1.1.1 用来描述直连到该邻居接口的IP地址
Metric :1562 用来描述该路由器达到该邻居的开销值
3、当link-type为TransNet:用来描述直连链路上网络类型为广播或者NBMA的邻居信息
Link ID: 192.168.1.2 用来描述为节点的router-id,用DR的接口IP来充当
Data : 192.168.1.2 用来描述自身直连伪节点的接口IP地址
Metric :1 用来描述自身到达伪节点的开销值
4、vlink
2类LSA
Type : Network LSA类型,用network来标识2类LSA,用来描述伪节点的信息
Ls id :192.168.1.4 LSA名字,在不同类型的LSA中取值不同,2类LSA用DR的接口IP地址充当
Adv rtr :4.4.4.4 通告者,DR所在路由器的router-id来标识
Ls age :1165 老化时间
Len :36 报文长度
Options :E 特殊区域标识
seq# :80000004 序列号
chksum :0x5a60 校验和
Net mask :255.255.255.0 2类LSA不仅可以标识邻居信息(树干信息),同时也可以描述路由信息(叶子)
Priority :Low
AttachedRouter 2.2.2.2 用来描述树干信息的,描述该伪节点直连的邻居信息
AttachedRouter 3.3.3.3 用来描述树干信息的,描述该伪节点直连的邻居信息
Attached Router 4.4.4.4 用来描述树干信息的,描述该伪节点直连的邻居信息
伪节点到所有叶子开销值为0。
————————————————————————————————————————————————
1、路由器的接口宣告进了OSPF进程,那么这个接口就会产生链路状态,链路状态包括:IP,掩码,邻居。
2、每个路由器都会产生一个1类LSA,用来描述自身的直连链路状态。。(我这个路由器有几个接口宣告进了OSPF就会产生几个链路状态,这些都叫做直连链路状态)
Stubnet:用来描述一条叶子信息(路由)
P-2-P:用来描述网络类型为P2P或者P2MP的邻居信息(树干、拓扑)
Transnet:用来描述网络类型为广播或者NBMA,所产生的伪节点的信息(树干)
vink:用来描述网络类型为虚链路的邻居信息(树干)
link-id: 用来描述虛链路邻居信息(router-id)
data :用来描述自身直连该邻居接口的IP地址 metric: 用来描述自身到达该虚链路邻居的开销值
3、当网络类型为广播或者NBMA时,DR会产生2类LSA,来描述伪节点信息,
2类LSA既描述了树干信息,也描述了叶子信息
以上:当一个OSPF区域邻居建立完毕,并且LSA泛洪完毕之后,所有路由器产生的1类LSA,和广播网络产生的2类LSA,将会在该区域内进行泛洪和同步(所有该区域的路由器都会同步这个区域内所有的1类LSA和2类LSA)
4、1类LSA和2类LSA作为链路状态,在一个区域内进行泛洪,泛洪结束后,每个路由器都会以自己为根,计算出最短路径树
——————————————————————————————————————————————————
OSPF域间路由计算
1、OSPF区域设计原则:
1.1 骨干区域有且只能有一个
1.2 非骨干区域必须和骨干区域相连
1.3 多区域的时候,必须有骨干区域
2、区域编号0,为骨干区域
区域编号非0,为非骨干区域
3、每个区域都会维护一个独立的LSDB,区域内的1类和2类不会传递到其他区域那么每个区域都会维护自己独立的SPF树
连接多个区域且在骨干区域有的活动接口的路由器称为ABR
3类LSA:
Type :Sum-Net LSA类型,sum-net表示三类LSA,用来描述区域间的路由信息
Ls id :3.3.3.3 3类LSA使用该路由信息的网络号表示
Adv rtr :2.2.2.2 通告者:产生这条LSA的路由器(ABR)
Ls age :571 老化时间
Len :28 长度
Options :E 特殊区域标识
seg# :88000001 序列号
chksum :0xae99 校验和
Net mask :255.255.255.255 用来描述这条路由信息的网络掩码
Tos 0 metric :1 ABR 到达这个目的路由的开销值
ABR会将非骨干区域里通过SPF算法得到的叶子信息转换为三类LSA放到骨干区域里进行泛洪和同步
区域1的所有路由器在收敛完毕后,会产生1类和2类LSA,这些LSA会在区域1内部进行泛洪和同步,路由器2同步到区域1的所有1类和2类LSA后,会计算区域1的SPF树,根据这颗SPF计算出的所有最优路由后,由于AR2自身是ABR,所以会将区域1所有计算出的最优路由转换成3类LSA在区域0进行泛洪和同步。
反之亦然:在区域0里面计算出来的最优路由,也会被转换成3类LSA在区域1里进行泛洪和同步。
R1在区域0收到了R2传递过来的3类LSA,由于自身是一台ABR,所以他会将区域0里面的3类LSA传递到其他区域,仍然以3类LSA万式传递。传递之前,需要更改这条3类LSA的通告者和Metric
路由器在根据3类LSA计算路由时,会计算自身路由器到达ABR的cost+3类LSA自身携带的cost
在区域内计算SPF树的时候,3类LSA会认为是ABR节点的子信息
3类LSA传递的是路由信息,不是链路状态。(在OSPF中,只有1类和2类LSA被看做链路状态,3类LSA是路由信息)
由于3类LSA被看做叶子信息,所以在一个区域内的SPF树来说,3类LSA的增加和减少对于SPF树没有任何影响。
3类LSA由于是路由信息,所以具有矢量特征,需要注意的一点!!!:只有在ABR上这条叶子信息加路表后才会被转换为3类LSA传递到其他区域
ABR
ABR:area border router
定义:当路由器连接了多个区域,且在骨干区域有一个活动接口
功能:1、将直连区域内通过1类和2类LSA计算出的最优路由,转换成其他区域的3类LSA
2、将骨干区域的3类LSA转换成其他区域的3类LSA
区域内部路由器:IP:所有接口都宣告进一个区域
一旦路由器满足ABR条件,就会在1类LSA中置位ABR,来通告其他路由器自己是ABR角色
如果在OSPF进程中只创建了区域0,但是区域0中没有宣告任何活动接口,那么路由器依然会在1类LSA中置位ABR,但是不干ABR的工作。
非骨干区域的1类和2类计算出的路由只能被转换到骨干区域作为3类,然后再通过骨干区域的3类转换到其他非骨干区域。
防环原则:
OSPF区域间路由计算防环原则一:
为了避免区域间的环路,OSPF规定不同区域间的路由器交互只能通过ABR实现。ABR是连接到骨干区域的,所以在区域设计上规定,所有非骨干区域要连接到骨干区域。区域间的通讯需要通过骨干区域,行成逻辑上的星状拓扑,且无环。
OSPF区域间路由计算防环原则二:
1、ABR不会将非骨干区域的3类和4类LSA转换到骨干区域
2、ABR在骨干区域有邻居的时候,不会计算非骨干区域的3类LSA
3、如果ABR在骨干区域没有邻居,那么就会计算非骨干区域的3类LSA
OSPF区域间路由计算防环原则三:
1、无论COST,1类LSA优于3类LSA
虚链路:vlink
1、虚链路属于区域0的逻辑链路
2、虚链路只能穿越1个非骨干区域
3、虚链路不能穿越特殊区域
虚链路可以用来优化链路
vlink在配置的时候,需要指对方路由器的router-id,而非路由器接口IP地址id
1、当穿越的区域存在多条冗余路径时,vlink会自己选择最优路径的接口ip地址作为收发报文的接口
他是如何来计算最优路径呢:
配置了vlink的路由器会计算2棵SPF树。1棵是以自己为根,在穿越区域内计算最短路径树
另一颗是以vlinkpeer端来计算到达自己的最短路径树。
综上,决定了最优路径的接口IP地址来收发报文
2,同时由于存在冗余路径,当线路断的时候,SPF树不会断,从而vlink也不会断
配置命令:vlink-peer router-id
————————————————————————————————————————————
1类
路由器只要接口宣告进了OSPF,那么这个接口就会产生链路状态,然后通过1类LSA在本区域内进行泛洪和同步。
反过来说:1类LSA是用来描述路由器自身直连链路状态和自身邻居信息的,他还会标记一些路由器的角色
2类 当网络类型为广播或者NBMA的时候,那么邻居的描述就会用伪节点来描述。伪节点的信息是通过2类LSA来描述的
2类LSA除了描述伪节点邻居信息,同时也描述了叶子信息
3类 用来描述域间路由信息的LSA,由ABR路由器产生。
ABR会将直连区域内1类和2类LSA计算出的路由信息转换成3类LSA传递到其他直连区域
ABR会将骨干区域的3类LSA转换到其他直连区域继续作为3类LSA传递
————————————————————————————————————————————
OSPF外部路由计算
外部路由引入过程: 1、在路由器4的oSPF进程中使用命令import-route static来引入路由表中的静态路由
2、R4会触发更新2条Lsu,其中第一条是更新了R4的1类LSA其中的ASBR置位,来告诉域内小伙伴,我变成ASBR了,我要引入外部路由了
第二条Lsu是更新的外部路由(5类LSA)
3、5类LSA的同步和泛洪原则:5类LSA的同步不基于区域的传递原则,是在整个0sPF域中进行泛洪,只要和其他路由器建立了邻接关系,就会泛洪这条5类LSA
特殊区域除外
4、所有的外部路由在引入OSPF后,会以5类LSA存在于osPF数据库中,外部的cost将不在计算,将赋予5类LSA一个新的种子度量值(cost默认为1)
这个默认开销值就会被认为是ASBR到达目标网络的开销值
5类LSA
Type :External LSA类型,externa1代表外部路由
Ls id :5.5.5.5 使用外部路由的网络号来填充
Adv rtr :4.4.4.4 通告者,使用ASBR路由器的router-id填充
Ls age :708
Len :36
Options :E
seg# :80800001
chksum :0x9fad
Net mask :255.255.255.255 描述了该外部路由器的网络掩码
Tos 0 Metric :1 描述了该5类LSA到达目标网络的开销值cost
E type :2 描述了该5类lsa的开销值类型
Forwarding Address:0.0.0.0 转发地址:当转发地址为0.0.0.0时,那么路由器在计算5类LSA时会去找ASBR计算
当转发地址为具体IP时,那么路由器在计算5类LSA时,就不在找ASBR了,会去通过SPF算法直接找FA地址作为下一跳
Tag :1
在路由表中外部引入的叶子信息类型为O_ASE,优先级为150。
E type
type 2:OSPF引入的外部路由默认type类型为2,当路由器计算type2的外部路由时,不会计算oSPF内部的cost, 只计算ASBR到达目标网络的cost
type 1:OSPF引入外部路由时,可以通过命令更改type类型,当路由器计算type1的外部路由时,会同时计算OsPF内部cost+ASBR到达目标网络的cost
使用场景:当不在意oSPF内部的次优路径问题时可以使用type2
当在意oSPF内部次优路径问题时需要使用type1
如果在数据库中存在相同目的的5类LSA且type不一致时,type1优于type2
ASBR
对于ASBR的理解:
1、当OSPF路由器使用了命令import-route以后,那么路由器就会在自己的1类LSA中置位ASBR。不论他是否真正引入的外部路由。
2、R4在Import-route命令敲完以后,就会在区域内触发更新自己的1类LSA,置位ASBR
3、当R3收到这条ASBR置位的1类LSA后,由于自身是一台ABR,那么他就会根据这条ASBR置位的1类LSA生成一条4类LSA,在其他直连区域内进行传递
如果自身不是ABR角色,那么将不具备生成4类LSA的能力
生成4类LSA的目的是为了,让其他区域的路由器在计算5类LSA时,可以找到ASBR在哪
所以4类LSA被理解为,ASBR的介绍信
4、当ABR收到了4类LSA后,会将4类LSA的通告者换成自己后,在其他直连区域内进行传递,目的是为了让其他区域内的路由器可以计算出5类LSA
4类LSA
Type :Sum-Asbr LSA类型,ASBR表示4类LSA,用来描述ASBR信息
Ls id :4.4.4.4 使用ASBR路由器的router-id填充
Adv rtr :3.3.3.3 通告者,产生这条4类LSA的路由器router-id(一般由ABR产生)
Ls age :1784
Len :28
Options :E
seq# :80000002
chksum :0x52eb
Tos 0 metric :1 用来描述ABR路由器到达ASBR路由器的开销值
——————————————————————————————————————————————————
5类LSA
当我们在OSPF进程中,使用了import-route命令后,他就会将路由表中的其他协议的路由引入进OSPF中,引入后以5类LSA存在于LSDB
中5类LSA是在整个OSPF域中泛洪,不基于区域泛洪。也就是说,只要路由器之间建立了FULL关系,那么就会传递5类LSA。
4类LSA
当使用了lmport-route命令以后,路由器会在自己的1类LSA中将ASBR置位,那么当区域中的ABR路由器收到这条置位ASBR的1类LSA后,会根据这条1类LSA生成一条4类LSA在其他直连区域中泛洪。
4类LSA相当于介绍信,帮助其他区域的路由器在计算5类LSA时,指引了ASBR在哪里。
思考题:
1、有5类LSA就必须有4类LSA吗?
否
2、有4类LSA就一定有5类LSA吗?
否。
———————————————————————————————————————————————————
FA地址
什么情况下会产生FA地址:
1、ASBR路由器去往外部路由的出接口被宣告进OSPF
2、ASBR路由器去往外部路由的出接口没有被配置为静默接口
3、ASBR路由器去往外部路由的出接口不能是P2P
注释一下:并不代表必须有邻居
作用
FA地址的作用:
FA地址就是外部路由下一跳地址,用来对OSPF链路做优化的
1、当5类LSA中FA地址为0.0.0.0时,那就代表没有FA地址,那么路由器在计算5类LSA时会去找通告者为下一跳
2、当5类LSA中FA地址为具体IP时,那么就代表有FA地址,那么路由器在计算5类LSA时不会再去找通告者,而是通过SPF树计算FA地址来得出最优路径
默认路由(必考)
下发默认路由命令:
在ospf进程下写入:default-route-advertise
外部路由引入
在一个路由器上将进程1引入进程2:
ospf 1