OSPF--->OSPF的LSA类型
OSPF的LSA类型
1类LSA:
作用:描述路由器自身直连链路的链路状态类型。
产生者:但凡运行ospf协议的路由器都会产生1类LSA。
1类LSA的链路状态,由4种链路类型来进行描述
①网络(路由)信息
stubnet 描述路由器直连网络号
link id 直连的网络号
data 子网掩码
metric 自身到直连网络的ospf的cost
=================================
②拓扑信息
transnet 描述BRO/NBMA链路上的(伪节点)邻居
link id 伪节点的router-id,由DR的接口地址充当伪节点的router-id
data 路由器自身和伪节点相连的接口IP
metric 到伪节点的开销
=================================
③P2P类型信息
P2P 描述P2P/P2MP链路的(实节点)邻居
link id 邻居的router-id
data 和邻居相连的接口地址
metric 到邻居的cost
=================================
④virtual类型信息
virtual 描述vlink上的(实节点)邻居
link id vlink上的邻居的相连的接口IP
data 和vlink上的邻居相连的接口IP
metric 到vlink上邻居的开销
=================================
1.P2P类型:
查看R1发送的LSA信息:
注:可以通过LSA来分析出同一区域的整个网络的拓扑形状,且同一区域内的邻居的LSDB信息都会同步,达到完全一致
2.transnet(伪节点)类型:
为什么会产生伪节点?
此处的R2,R3,R4处于同一个广播类型网络中,为了减少它们之间的LSA交互数量。将它们所连的整个广播链路看成一个伪节点
伪节点的link ID是DR的物理接口地址 。R2,R3,R4只用描述自己物理接口IP地址到伪节点的LSA信息
查看R2发送的LSA信息:
查看R1路由器上到达3.3.3.3路由的开销:
此时的开销值应该是R1的g0口加上R2的g1口的开销和,48+1=49。
(因为从伪节点到达各路由器之间的开销同一为0)
==========================================================
基于BRO/NBMA类型链路下的DR/BDR的选举:
主从选举、DR/BDR选举、伪节点的概念
①主从选举是为了让邻居之间交互DD报文的时候,增加整个过程的可靠性。(seq序列号加1)
②DR/BDR的选举是为了减少网络中的邻接关系数量,从而减少网络中的LSA交互数量
③伪节点是为了计算路由的时候,更加简化拓扑结构,从而虚拟出来的路由器,算法上的需要。
一条BRO/NBMA型链路都会进行DR/BDR的选举;一条广播链路就会产生一个伪节点,生成一条链路类型为Transnet的LSA
DR/BDR选举原理
①比较接口的优先级,默认等于1,取值范围0 - 255(优先级越大越先)
②优先级相同,则比较router id,router id越大,优先----DR,次大---BDR
③DR/BDR没有抢占性
(1)若链路中有高于DR优先级的接口加入,不会抢占DR的位置,即使DR此时down掉,也会是BDR先成为DR。
(2)特殊情况:
先将交换机的g2口划分到vlan10,此时的R3是vlan10里的DR,R2和R4是vlan1的DR/BDR;
后将g2口划分回vlan1,则R3的Hello包会随机与R2或者R4的hello包进行碰撞,R3会成为新的DR,或者新的BDR。
④优先级若设置成0,证明该物理接口的状态角色只能为DRother,不会参与到DR/BDR的选举中。
注:广播型链路中不能设置所有的接口优先级都为0,会导致所有的邻居状态都停留在two-way,不能交互LSA。
DR/BDR失效情况
①如果DR失效,如果有BDR,则BDR成为新的DR,会重新选举BDR
②BDR/BDR/DRother之间会保持full的邻居关系;DRother之间保持two-way的邻居关系
③DR,BDR同时监听224.0.0.5,224.0.0.6,DRother监听224.0.0.5
2类LSA
作用:描述MA/NBMA网络类型中,连接到伪节点上的实结点具体信息。(伪节点所在的网段的路由信息,也由2类LSA生成)
产生者:2类LSA由DR产生
详细的2类LSA信息:
1,2类LSA总结:
1类2类LSA只会在本区域内传播,且本区域的每个路由器上的LSDB都相同。如果同一个区域里的设备过多,就导致ospf整个进程极其不稳定。
此时需要引入ospf多区域的概念。
多区域、3类LSA、Vlink
OSPF多区域概念
ospf为什么要划分区域?
如果单一的一个区域规模很大,设备数量很多,链路数量多,会产生许多问题。
①任何链路状态信息发生改变的1类2类LSA的更新都需要在整个区域中进行泛洪
②当网络不稳定时,整个区域的所有路由器都会参与到SPF的重新计算,稳定性较差(导致某些性能不是很好的路由器负载过重)
③可以通过路由汇总,划分特殊区域等操作,减少路由条目。
OSPF多区域的特点:
①将网络划分层2层的区域结构,一层为骨干区域即area 0,一层为非骨干区域,即 非area 0
②area 0 有且只有一个,并且要连续
③非骨干区域一定要和骨干区域直接相连
OPSF的防环机制:
区域内防环:
通过1类,2类LSA计算出的路由信息成为区域路由,通过SPF算法计算出的路由,100%避免路由环路
因为不管是实节点还是伪节点,只能在树上出现一次(开销相同的时候会出现冗余链路)
多区域间防环:
①ABR不会将非骨干区域的3类再次传回到骨干区域
1.1的3类LSA从区域1传递给区域0,经过3 4 两台ABR之后,不会再回到a0区域
② 非骨干区域要和骨干区域直接相连
③区域0有且只有一个,并且连续
3类LSA和区域间路由
作用:用来将直连区域的区域内路由转化成其他直连区域的3类LSA,完成区域间的路由计算。
产生者:3类LSA由ABR路由器产生
详细的3类LSA信息:
区域间的路由计算:
ABR将区域0中的三类转化成其他骨干区域的3类LSA。
cost = 自身到ABR的开销+ABR到路由的开销
48 + 49 = 97
next-hop = 自身到ABR的下一跳,根据到ABR的SPF树进行计算
10.0.46.4
3类LSA在多个区域进行传播:
区域1中的RTD将自己的1类2类生成的路由信息,在RTB上通过3类传递到区域0中。
RTC将该3类传递给RTE时,会将三类LSA中的adv rtr字段由RTB的router id改为自己的router id,再传递给RTD。
VLINK机制
VlINK的基本概念:
1、只要创建的VLINK的路由器都是ABR
2、VLINK永远属于区域0的链路
3、VLINK只能在非骨干区域创建,只能额跨越一个非骨干区域
4、特殊区域不能创建VLINK
5、用于修复不连续的骨干区域
6、将非骨干区域和骨干区域直接相连
7、用作骨干区域的备用路径
注意:能不用VLINK技术就尽量不用,增加了网络的复杂性(一般临时救急)
VLINK作用典型场景:
①用于修复不连续的骨干区域
②用于将骨干区域和非骨干区域直接相连
VLINK配置:
5类LSA、4类LSA、引入外部路由选路规则
作用:用来描述到AS外的外部路由
产生者:ASBR路由器
======================
ASBR 自治系统边界路由器
①执行import-route命令的路由器
②NSSA区域的做7类转换5类的ABR
======================
5类LSA详细信息:
5类LSA可以在除某些特殊区域外的整个AS中传播,且从一个区域转发到另一个区域时,不会修改自己的adv rtr。
当和ASBR不在同一区域时,R2不能将自己的ASBR身份通知到其他区域(因为1类LSA不能跨区域传播),R5就找不到去往ASBR的开销值。此时需要4类LSA的加入,由ABR R4产生,描述的是ABR到ASBR的开销值。
4类LSA的详细信息:
外部路由计算的规则:
①和ASBR在同一区域的路由计算外部路由
cost = 自身到ABSR的开销+引入外部路由时的开销
net-hop = 自身到ASBR的下一跳
②和ASBR不在同一区域的路由器如何计算外部路由?
cost = 自身到ABR的开销(spf) + ABR到ASBR的开销 +引入外部路由时的开销
next-hop = 自身到ASBR的下一跳
外部路由的开销类型:
cost-type 1: 路由表中始终显示引入时开销和AS内部路径开销之和
cost-type 2: 路由表中只显示引入时的开销
如有两条外部路由出去AS:
1、cost-type 1 永远优先于 cost-type 2
2、都是cost-type 1: 选择cost小的,如果cost相同则负载分担(路由意义上的选路方式)
3、都是cost-type 2:
① 优先比较引入时的开销,引入时开销小的优先,不关心内部AS路径开销(管理意义上的选路方式)
②如果引入时开销相同,则比较内部AS路径开销,即选择到近的ASBR优先
③如果引入时开销相同,内部AS路径也相同,则负载分担
=================================================================
外部路由特殊情况:
在R8的g0接口上同时运行ospf和rip协议,在ospf中执行import static引入192.168.5.0的外部路由。
此时的R7计算外部路由时,查看5类LSA携带了FA(转发地址字段),且此时自身存在转发地址的直连路由,则直接将该外部路由的下一跳直接设置成FA地址,而不是自身到ASBR的下一跳地址,解决了次优路径(R7-->R8(ASBR)-->R9)
5类LSA场景下产生FA地址:
FA地址 | 报文转发地址 | 备注 |
---|---|---|
0.0.0.0 | ASBR | |
非0.0.0.0 | 外部路由下一跳地址 |
FA产生非0的条件:外部路由的出接口激活了OSPF、非静默端口、类型为MA(广播)。
注意:此上条件需要同时满足,才能产生。
场景1:R1一个路由是1.1.1.1,此时R2和R3运行OSPF,且R2上引入外部路由1.1.1.1下一跳为R1的接口123.0.0.1
分析:此时R2接口满足,激活了OSPF,没有被静默,接口类型为MA。所以此时,传递给R3的5类LSA会携带非0的FA地址,123.0.0.1.
R3访问1.1.1.1时,会直接走123.0.0.1的下一跳。
场景2:R2的所有接口和R3的所有接口运行OSPF,R2引入外部路由5.5.5.5下一跳是R5的接口25.0.0.5。
分析:此时虽然R3前往5.5.5.5的下一跳只能是R2,但是由于R2的所有接口满足了出接口激活了OSPF、非静默端口、类型为MA(广播),所以此时传递给R5的5.5.5.5外部路由的5类LSA也会携带非零的FA地址25.0.0.5,但是路由表记录到5.5.5.5的下一跳地址还是R2的123.0.0.2接口地址。
若需要现在将前往5.5.5.5的FA地址变成0,则将R2的25.0.0.0段的出接口取消在OSPF里宣告即可。
7类LSA
作用:由nssa区域中的ASBR产生,只能在nssa区域中泛洪,描述的是到外部路由的路径
7类LSA详细信息:
7类LSA场景下产生FA地址:
Type7 LSA FA地址 | 条件 | P置位 |
---|---|---|
非0.0.0.0 | 外部路由下一跳地址 | 是 |
7类 LSA的FA地址一定是非“0“
P置位:P-bit(Propagate bit)用于告知转化路由器该条Type7 LSA是否需要转化。
注意:默认情况下,转换路由器是NSSA区域中Router ID最大的ABR
NSSA区域中:
满足“非0条件”,FA=外部路由下一跳地址
不满足“非0条件”,FA=回环口地址或者物理口地址(回环口地址优先)
场景1:此时R5作为ASBR引入外部路由,NSSA区域中7类LSA会自动携带上FA地址,且地址为R5的物理接口地址。到此条7类LSA传递到R3上带有P置位,需要7转5操作。且R1收到的5类LSA地址中携带有FA地址。
R1去访问10.1.5.0时,若路径开销值相同,则R1有两条等价路由到目的地址;若如下图所示,R1--R3--R5为低带宽链路,开销值大于R1--R2--R4高带宽链路。则R1发往10.1.5.0时,会从R1--R2--R4出去。
特殊情况:若此时在R3上敲了suppress-address-forwarding命令,那么发给R1的5类LSA将FA地址置为0.0.0.0.地址R1选路前往10.1.5.0就直接会走R3作为下一跳,不会再根据链路开销来选路。
suppress-forwarding-address参数用于将通过该NSSAABR转换后生成的Type5LSA的FA(AddressForwarding)设置为0.0.0.0
zero-address-forwarding参数用于在NSSA区域的ABR上引I入外部路由时,将生成的NSSALSA的FA置为0.0.0.0。???
- 13
- 0
-
分享