OSPF外部路由引入背景
网络中存在部分链路未开启OSPF协议如:
- 路由器连接外部网络使用静态路由或者BGP协议;
- 服务器直连的链路未开启OSPF协议
外部路由引入的基本概念
- ASBR(AS Boundary Router):自治系统边界路由器。只要一台OSPF设备只要执行了引入操作,它就成为了ASBR。如图中的R1。
- ASBR将外部路由信息以AS-external LSA(5类LSA)的形式在OSPF网络内泛洪。
ASBR:自治系统边界设备
作用:
- 主要将OSPF连接外部路由信息,引入到OSPF域中
- 只要设备执行了引入操作,就会成为ASBR设备
[AR4]ospf
[AR4-ospf-1]import-route static OSPF进程视图下执行引入操作
[AR4]dis ospf lsdb router IP地址 查看设备路由描述
只要执行了[AR4-ospf-1]import-route static 都是ASBR 只不过是有没有外部路由的区别
OSPF外部路由信息的描述:(类型5 LSA)
- AS-External LSA(自治系统外部LSA)---和3类LSA相比都是描述路由信息的
- 作用:描述外部路由信息
- 产生:由ASBR设备产生
- 泛洪范围:在整个OSPF域中泛洪
5类LSA在LSDB中有单独列表描述,OSPF域中所有设备的5类LSA描述都是相同的
<AR4>dis ospf lsdb ase 5.5.5.5
OSPF Process 1 with Router ID 10.4.4.4
Link State Database
Type : External
Ls id : 5.5.5.5 外部路由信息
Adv rtr : 10.4.4.4 ASBR的RID
Ls age : 823
Len : 36
Options : E
seq# : 80000001
chksum : 0x693d
Net mask : 255.255.255.255 外部路由信息对应的掩码
TOS 0 Metric: 1
E type : 2 外部路由的开销类型
Forwarding Address : 0.0.0.0 转发地址
Tag : 1 外部路由的标记 证明我是能够进入的设备,如果没有就不是
Priority : Low
进程分割自治系统的情况下OSPF域中的5类LSA描述不相同
查看5类路由条目不要在ASBR上查看
通过5类LSA计算的路由条目:
协议表示为 O_ASE
优先级值表示为 150
5类LSA计算的过程:
1、5类LSA产生的区域,非ASBR设备如何计算5类LSA
非ASBR设备根据5类LSA的adv router
通过SPF计算(1类、2类LSA),得到去往外部路由的下一跳 :我要去访问外部5.5.5.5但是我不知道怎么走,我先去找ABR
2.5类LSA泛洪的区域,设备如何计算5类LSA
- 5类LSA在泛洪时,不会改变adv router :即传递过来两条我只会接收一条
- 其他区域的设备通过SPF计算,不能得知adv router 的设备:::通告者你不知道
- 如果设备得知adv router,那么5类LSA就正常可用:::知道通告者
通过4类LSA实现
5类LSA每到一个区域 这个区域的ABR就会产生4类LSA,差不多也就是按照3类的来
类型4类LSA: ASBR summary LSA(ASBR汇总LSA)
作用:辅助5类LSA完成路由计算 (是一条路由信息,但不存在掩码)
产生:ABR产生的
泛洪范围:ABR所连接的区域内泛洪
<AR1>dis ospf lsdb asbr 10.4.4.4
OSPF Process 1 with Router ID 10.1.1.1
Area: 0.0.0.1
Link State Database
Type : Sum-Asbr
Ls id : 10.4.4.4 ASBR的RID
Adv rtr : 10.2.2.2 ABR的RID
Ls age : 423
Len : 28
Options : E
seq# : 80000002
chksum : 0xe34f
Tos 0 metric: 2
访问外部路由,需要先到ASBR可达
如果ASBR不可达,则根据4类LSA计算先访问ABR可达
4类LSA总结:这台设备不行,去不了XXXX外部路由网段,你先找ABR 由ABR来告诉你怎么去XXXX网段
你要去访问外部的5.5.5.5的路由你的ADVrouter不知道,你做的不是你直连的下一跳,你就把这个下一跳作为路由,再来指定一个新的下一跳
外部路由的开销:
默认情况下,设备只会计算5类LSA携带的开销值
[AR4-ospf-1]import-route static type 1 修改OSPF开销类型为1
OSPF外部路由的开销:
开销类型: 只有在ASBR上引入外部路由时进行操作,也可以引入的时候直接设置开销值 static cost xxxx
不同的开销类型,对应着计算外部路由时是否需要迭代路径开销
1.type 1
外部路由的开销 = 5类LSA携带的开销 + 设备到达ASBR的开销
2.type 2 (默认)开销值为1
外部路由的开销 = 5类LSA携带的开销(默认外部路由开销为1)你外部路由带着的开销值是多少我默认开销值就是多少
*type 1 优于 type 2
*type 1 是以设备拓扑计算为视角,计算得到一定是最短路径, 内部开销值+上外部开销值
*type 2 是以设备学习路由为视角,根据开销值直接选择W: 我只看你路由多少,开销小的我就选开销大的我就不选,我只会计算路由,虽然说你不计算不叠加,但是我还是走最优路径
接口视图 ospf cost 数值 修改OSPF接口开销
使用场景:我现在的外部路由有连接的我自己分公司的,有连接合作伙伴的,我分公司的路由我更加信任(我需要知道去往我的分部具体的开销值是多少),我就采用type=1 我总部和分部我就用type1,合作伙伴的我就用type2,我只要学习你的路由就好了我不需要学习具体的开销,如果是我的合作伙伴,他的路由我只要知道使用,我不需要管你的开销值是多少,我只需要有你的路由我能访问就好
1类、2类LSA 优于 3类LSA 优于 5类LSA(type1) 优于 5类LSA(type2)
当存在双ABR的场景:(1类LSA与4类LSA比较)
ASBR在非骨干区域(区域1),默认type2引入(type1相同)
AR3设备可以在区域1通过1类LSA访问ASBR,也可以在区域0通过4类LSA访问ASBR
如何选择使用的LSA?
- 根据开销值比较,优选开销值小的 优先比较COST
- 如果开销值相等,则优选1类LSA访问
ASBR在骨干区域(区域0)
AR3设备可以在区域0通过1类LSA访问ASBR,也可以在区域1通过4类LSA访问ASBR
如何选择使用的LSA?
优选1类LSA使用,不比较开销值 area 0传输区主要就是用来传输路由信息的都是通过非骨干区域做一些业务的连接的,骨干区都是做一些高速的数据的转发
ASBR是ABR设备
AR3设备可以在区域0通过1类LSA访问ASBR,也可以在区域1通过1类LSA访问ASBR
如何选择使用的LSA?
根据开销值比较,优选开销值小的区域 csot 相等
如果开销值相等,则优选区域id大的区域 2>1>0
5类LSA的更新
5类LSA的撤销
5类LSA 一条LSA描述一条路由信息,不会一个LSA存放两条路由信息
5类LSA使用次优场景:
AR6 和AR7建立OSPF的邻居关系
AR7配置静态路由访问AR8 的环回口
AR7将静态路由引入到OSPF中
AR6通过5类LSA访问AR8的环回口
AR6访问8.8.8.8是否会走次优路径 AR6-AR7-AR8? 没有转发地址才会走次优
不会走次优路径,
即AR6会直接访问AR8, 我AR7会告诉你AR6,你去访问。8.8.8.8的外部路由最优是AR8的接口,而不是我AR7的接口,我AR6知道后会直接把外部路由的下一跳置位为 AR8的下一跳
Forwarding Address : 192.168.1.8 AR6会直接把这个地址作为外部路由的下一跳使用
如何实现次优问题解决?
AR7在引入静态路由时,会将forwarding address字段置位
置位的信息是AR6访问外部路由最优的下一跳
AR7如何置位转发地址?
满足三个条件
1.连接外部路由的接口要宣告OSPF
2.连接外部路由的接口是广播型网络
3.连接外部路由的接口不是静默接口:就是我虽然宣告了OSPF但是我不会通告报文
满足了上方紫色三点 AR7就会将去往外部路由的下一跳,在5类LSA中做为转发地址携带
6类LSA是用在组播,但是有局限,已经不用了