ASBR:自治系统边界路由器。 OSPF对于外部路由需要执行引入的操作,执行引入操作的设备称为ASBR设备。 ASBR将外部路由信息以AS-external LSA(5类LSA)的形式在OSPF网络内泛洪。
[AR4]ip route-static 192.168.1.1 32 NULL 0 在ABSR中做一条静态
[AR4-ospf-1]import-route static 引入外部静态路由
引入路由后AR1可以查到AR4引入的静态路由: ::: warning OSPF对于外部路由使用第二种协议类型和优先级表示: ||协议|优先级| |-|-|-| |内部路由|OSPF|10| |外部路由|O_ASE|150| ::: 可以在AR4上查看1类LSA的flag字段: 可以在其他设备查看: 如上: ASBR设备会在1类LSA中的flags字段使用E bit进行标识。 同区域内的其他设备会得知哪台设备成为ASBR设备,后续访问外部路由时,会直接找到ASBR进行访问。
5类LSA
::: tip 特点: AS external LSA,AS外部LSA(其他类型的路由,需要经过OSPF进行转发)。 5类LSA由ASBR产生,在整个OSPF自治系统进行泛洪,包括所有区域。 5类LSA具有单独的LSDB,5类LSA不被任何区域所局限,所有区域都能泛洪5类LSA。 ::: 5类LSA使用单独的数据库显示:
<AR4>dis ospf lsdb ase 192.168.1.1 查看5类LSA的明细信息
Type : External
Ls id : 192.168.1.1 外部路由的网段
Adv rtr : 10.4.4.4 ASBR的RID
Ls age : 753
Len : 36
Options : E
seq# : 80000001
chksum : 0x89c5
Net mask : 255.255.255.255 外部路由的网络掩码
TOS 0 Metric: 1
E type : 2 外部路由的开销类型
Forwarding Address : 0.0.0.0 转发地址,用于外部路由次优路径的解决
Tag : 1 外部路由的标记
Priority : Low
ABR帮助5类LSA在区域间进行泛洪。
ABR帮助泛洪5类LSA时,adv rtr仍为ASBR的adv rtr不会改变。 不管存在几个ABR,都会通告相同的5类LSA,即区域内的设备(上图AR1)LSDB中,相同的5类LSA只会存在一条: ::: tip 区分LSA的三要素:类型(5类)、LS id(外部路由)、adv rtr(ASBR RID)完全相同,区域内设备收到转发的相同5类LSA只保留一条。 :::
区域内的设备(上图AR1)学习到5类LSA后,因为ASBR在其他区域中,所以区域内设备不能通过SPF树计算到ASBR。需要由ABR(上图AR2、AR3)提供相关信息供区域内的设备访问ASBR。 即ABR在泛洪5类LSA时,会产生4类LSA给区域内设备,提供到达ASBR的拓扑信息。
AR1中的4类LSA:
4类LSA
ASBR summary LSA:ASBR汇总LSA。由ABR产生,在区域间进行泛洪,用于描述到达ASBR的拓扑信息。
Type : Sum-Asbr
Ls id : 10.4.4.4 ASBR的RID
Adv rtr : 10.3.3.3 ABR的RID
Ls age : 83
Len : 28
Options : E
seq# : 80000002
chksum : 0xc46c
Tos 0 metric: 1
4类LSA的作用:告知区域内设备,访问ASBR需要先访问到ABR。
::: tip 5类LSA产生的区域,设备通过1类LSA访问到ASBR。 4类LSA泛洪的区域,设备通过4类LSA访问到ABR,ABR再访问到ASBR。 :::
OSPF中5类LSA开销计算
OSPF中5类LSA存在两种类型:
[AR4-ospf-1]import-route static type ?
INTEGER<1-2> Type value
- type1:计算外部路由叠加内部路由的开销值。
::: tip type1计算开销值:[AR4-ospf-1]import-route static type 1
- 区域内路由器的数据库中学到外部路由的5类LSA开销值为1,5类LSA通告者是ASBR;通过4类LSA达到ASBR,4类LSA的通告者是ABR;去往ABR的1类LSA开销值是1。* :::
- type2:只计算外部路由的携带开销值。(5类LSA默认是type2的开销)
如下AR1计算到外部路由的开销值,就是AR4引入该外部路由时给该路由分配的开销值(AR2、AR3开销默认):
::: tip type2引入路由时分配的开销值默认是1,可以通过如下命令更改:
[AR4-ospf-1]import-route static cost 100
:::
::: warning type1:外部路由的开销=外部路由携带的开销+内部路由叠加的开销。 type2:外部路由的开销=外部路由携带的开销。 :::
当內部有两条开销不同的路径时: type1会在设备视角根据开销自主计算最优路径。 type2会根据开销自主计算最优路径,并将最优路径保存在路由表上。
当有两个ASBR引入同一条外部路由时: type2会在管理员视角,根据管理员设置的外部路由的最小开销进行访问。 ::: warning type1和type2都要计算内部最短路径,原因是5类LSA需要存在防环的功能,但5类LSA本身没有设计防环,只能借助内部SPF算法和区域间防环规则来实现防环。 可以把4类LSA看作3类LSA,区别就是3类是路由4类是拓扑,ABR传递时防环规则相同。 :::
虽然type2在计算外部路由开销时只看外部路由携带的开销,但是访问外部路由时,需要通过最短路径(计算开销)到达ABR和ASBR,所以type2类型也会计算内部开销,只是内部开销不会体现在路由开销上。 如下:
[AR2-GigabitEthernet0/0/1]ospf cost 10
[AR3-GigabitEthernet0/0/1]ospf cost 100
上述操作将两条路径的开销值修改后,内部设备AR1的路由表上只保留开销最小的那条(即下一跳是AR2),但开销值仍为外部路由携带开销1。 ::: warning OSPF开销只计算LSA接收的开销值,即AR1接收1类LSA时只计算AR2的G0/0/1的端口开销。 :::
5类LSA和4类LSA的关系:
- Q:如果存在5类LSA一定会存在4类LSA? A:不对,因为5类LSA存在的区域使用1类LSA访问,不存在4类LSA。 如下,上述引入外部路由的区域1内,不存在4类LSA:
- Q:如果存在4类LSA一定会存在5类LSA? A:不对,如果ASBR执行引入不存在的路由信息,则在其他区域只会产生4类LSA,不会产生5类LSA。(空引入) 如下undo区域1引入的静态路由,引入一条不存在的bgp路由: 区域0内仍可以查看到4类LSA: 只有4类没有5类的原因是没有协议,只有引入动作。
- ABR收到1类LSA中flags字段的E bit置位(有设备宣告自身是ASBR),ABR就向其他区域产生、泛洪4类LSA。* ::: tip 4类LSA的产生和是否存在5类LSA没有关系,只和是否存在ASBR有关。 :::
路径选择
- 如果ASBR在非骨干区域(AR4): 下图中AR4引入外部路由,区域内设备AR1通过AR4-AR2-AR1学习到外部路由:
- ABR(AR3)可以学习到骨干区域的4类LSA(来自AR2-AR1-AR3)和非骨干区域的1类LSA(来自AR4),根据cost优选访问ASBR*,即AR3-AR1-AR2-AR4。
- 如果ASBR在骨干区域: 下图中AR1引入外部路由:
- ABR(AR3)可以学习到骨干区域的1类LSA(来自AR1)和非骨干区域的4类LSA(来自AR2-AR4-AR3),一定优选骨干区域的1类LSA*,即AR1-AR3。
总结:
- 外部路由在非骨干区域引入:开销优选。
- 外部路由在骨干区域引入:骨干区域的1类最优先。
::: warning 因为骨干区域是传输区域,非骨干区域没有骨干区域的高传输能力。 为了保障非骨干区域的传输,所有的外部路由都通过骨干区域转发。
以上规则type1和type2都适用。 :::
如果是ABR成为ASBR,即ABR引入外部路由: 上图查看AR2的数据库,两个区域的4类LSA都是AR3通告的(区域0:AR4-AR3-AR1-AR2,区域1:AR1-AR3-AR4-AR2),即AR3是转发泛洪4类LSA的设备,AR2(ASBR)在本区域内不产生4类LSA。 开销默认时,查看AR3的路由表,去往外部路由的路径是AR3-AR4-AR2(优选区域1的路径)。 AR3可以通过区域0和区域1的同区域泛洪的1类LSA收到外部路由信息。
内部设备(AR3)访问外部路由时,使用骨干的1类LSA还是非骨干的1类LSA:
- 如果开销值相等,则优选区域ID大的1类LSA(当把AR1所在的区域0改为区域2时,优选区域2的路径,AR3的下一跳是AR1)。
- 如果开销值不等,则优选开销值小的区域1类LSA。 ::: tip 如果还有其他区域的设备和AR1(骨干区域)相连,访问外部路由时,都会经过AR1-AR2的链路,为减轻压力,开销相等时,区域0和区域1的ABR会优先选择区域1。 :::
::: danger 1、2类LSA优于3类LSA优于5类LSA。(4类LSA是拓扑信息) OSPF的5类LSA:type1优于type2。 :::
5类转发
路由标记
router tag:路由标记,主要用于路由管理使用。 如果使用ACL匹配路由信息进行管理,则ACL的条目数量和路由数量成正比。为更好更方便的管理,需要存在一个信息来标记对应的路由。 可以修改标记值:
[AR6-ospf-1]import-route static tag ?
INTEGER<0-4294967295> Tag value
[AR6-ospf-1]import-route static tag 12345 引入路由时做路由标记
如上针对外部路由的引入标记值就是12345,如果存在其他的静态路由引入,标记值同样是12345。AR5管理外部路由时只需要匹配12345的标记值即可。(路由策略和控制部分内容)
转发地址
forwarding address:转发地址,解决5类LSA在特殊场景中出现的次优。 如上图中内部设备AR5访问外部路由AR7的环回口时,逻辑上路径应为AR5-AR6-AR7,出现次优路径。 ::: warning 特殊场景:
- ASBR的外部连接接口 宣告了OSPF。
- ASBR的外部连接接口 是广播型网络(P2P等其他网络类型没有转发地址)。
- ASBR的外部连接接口 是正常工作的接口(静默接口不建立邻居,与场景1冲突)。
外部连接接口表示连接外部的路由信息,如上区域0的AR6 G0/0/0接口连接了区域外AR7的静态路由。 满足上述条件,就会出现次优路径。 ::: AR6通告5类LSA时,将转发地址置位,告诉内部设备如何访问外部路由。
ASBR在引入外部路由后,区域内的其他设备访问外部路由时,先要访问到ASBR,再由ASBR访问外部路由信息。即出现次优路径,区域内的设备应该直接访问到外部路由。 解决办法: ASBR在执行外部路由引入时,会打上转发地址,将去往外部路由的下一跳作为转发地址(如上图的AR7的G0/0/0地址)。
::: tip 转发地址的本质:OSPF设备收到带有转发地址的5类LSA,计算5类LSA的路由,将转发地址作为路由的下一跳。
转发地址优于SPF计算后的下一跳。 ::: 如下内部设备AR5去往外部路由的地址: 内部设备下一跳地址的来源就是5类LSA的转发地址:
5类LSA的更新、撤销
上图引入AR7的新环回口,在SW1的G0/0/1接口抓包: 上图撤销AR7的新环回口,在SW1的G0/0/1接口抓包:
每一条外部路由都使用一个5类LSA来进行携带。 引入三条静态路由: undo import-route static,在SW1的G0/0/1接口抓包: 如上,每一个5类LSA都对应一条外部路由。