目录
OSPF外部路由基本概念
外部路由的定义
外部路由可以理解为同一个路由器上其它协议的路由、或者同一台设备上同协议不同进程的路由
OSPF通过5类LSA和4类LSA来一起描述到达外部路由的路径信息
新增路由器角色
ASBR:自治系统边界路由器
OSPF区域中哪些设备可以被称为ASBR设备
- 执行import route的路由器
- NASS区域做7类转换2类的ABR路由器
外部路由引入涉及到的LSA
5类LSA的生成
5类LSA是由ASBR产生的,在OSPF路由域内泛洪
5类LSA如何产生的
当将OSPF路由域外其它协议的路由(OSPF、直连、静态等)引入到到OSPF后,就会针对每条外部路由产生1个5类LSA在OSPF路由域内泛洪
注意事项
每个区域内关于该外部路由的5类LSA都是一致的(以下位区域0和区域2的5类LSA)
4类LSA的生成
4类LSA(ABR Summary)是由ABR产生的,并在区域内泛洪的LSA
4类LSA的作用是在区域间计算到ASBR的路径信息
4类LSA如何产生的—分为两种情况
ABR与ASBR在同一区域(例如R2产生4类LSA的情况)
当ASBR将路由引入到OSPF后,ASBR会更新自己的1类LSA,将其1类LSA的ASBR标志位置位
此时该区域ABR收到带有ASBR标志位置位的1类LSA时,会产生一条4类LSA,指向该ASBR地址,泛洪到其它区域
ABR与ASBR不在同一区域(例如R1产生4类LSA的情况)
当ABR在本区域收到其它ABR发来的4类LSA之后,会重新生成一条4类LSA
在自身相连的其它区域泛洪
注意事项
不同区域关于某个ASBR的4类LSA都是不一致的
因为每个区域内的4类LSA都是由该区域的ABR重新计算生成的
OSPF外部路由引入
OSPF普通路由引入
在ASBR路由器上将此路由器上运行的其他协议的路由或者OSPF其他进程的路由引入到另一个OSPF协议进程中,此过程就为OSPF的路由引入
路由引入命令
华为设备命令 ospf 进程下 import-route 路由协议 将此路由协议的路由引入到OSPF中 引入到OSPF的外部路由优先级为150(通过5类、7类LSA计算出来的) OSPF的区域内路由优先级为10(通过1类、2类、3类LSA计算出来的) 锐捷设备命令 router ospf 进程下 redistribute 路由协议 subnets 将此路由协议的路由引入到OSPF中
注意
只有路由表中的活动路由才会被引入
默认情况下缺省路由不会被引入
OSPF缺省路由引入
一般在网络边界配置缺省路由,并将其引入到内网中(此处是引入到OSPF内网中)
引入缺省路由两种情况
- 区域边界路由器ABR发布Type3 LSA,用来指导区域内路由器进行区域之间报文的转发
- 自治系统边界路由器ASBR发布Type5 LSA或Type7 LSA,指导区域内路由器进行域外报文的转发
注意:Type 3的缺省路由高于Type 5的缺省路由
不同区域缺省路由发布方式不同
特殊区域会自动产生缺省路由
Stub/Totally Stub区域 此区域的ABR会自动产生一条Type 3缺省路由,在Stub区域泛洪
NSSA区域 此区域的ABR会自动产生一条Type 7缺省路由,在NSSA区域泛洪
Tollay NSSA区域 此区域的ABR会自动产生一条Type 3和7缺省路由,在NSSA区域泛洪
禁止自动生成LSA命令 华为设备配置 nssa default-route-advertise suppress-default-route 配置禁止ABR或ASBR向NSSA区域发送缺省7类LSA
普通区域需要通过命令手动产生
普通区域 引入缺省路由后,ASBR产生一条Type5缺省路由,在普通区域泛洪
普通区域引入缺省路由命令
华为设备配置 ospf视图: default-route-advertise [always/permit-calculate-other] 将缺省路由通告到OSPF路由区域 always 表示无论本机是否存在激活的缺省路由,都会产生并发布一条描述缺省路由的LSA permit-calculate-other 本机必须存在激活的缺省路由,才会产生并发布一条描述缺省路由的LSA,并且设备允许计算来自其他路由器的缺省路由 锐捷设备配置 ospf视图: default-information originate always metric-type 2 always 无论设备本地是否存在生效的默认路由,设备都会向OSPF区域下发默认路由 metric-type 2 配置外部路由的开销计算类型为Type2(只计算外部开销)
缺省只有本机存在激活的缺省才会发布一条描述缺省路由的LSA,并且设备不允许计算来自其他路由器的缺省路由
外部路由引入时的路由开销计算方式
不同的开销类型使得外部路由引入时开销的计算方式不一样
有两种类型,Type 1 和 Type 2;默认是Type 2类型
- Type 1 :路由表中始终显示引入时的开销(外部开销) + AS内部路径开销之和
- Type 2 :引入外部路由时在路由表中忽略AS内部路径的开销,只显示引入时的开销(外部开销)
外部路由开销比较方法
1、Type 1永远优先于 Type 2
2、开销类型都为1,选Cost值小的,相同则负载分担(具体如下)
- 引入开销相同,比较内部开销,小的优先
- 引入开销与内部开销都相同,负载分担
3、开销类型都为2(不关心AS内部路径,在路由表显示的Cost只有外部开销)
- 引入开销不同,选引入时的开销小的
- 当引入的外部开销相同时,还是会比较内部开销,内部开销越小越优(只是不显示)
修改外部开销计算类型
华为设备命令
ospf 1 default type 1 修改外部开销计算方式为type1 华为设备默认情况下,ASBR引入的外部路由默认的外部开销为1;如果需要保留外部路由引入时其本身的开销,可以做以下配置 ospf 1 default inherit-metric 配置外部路由引入时的外部开销为其引入前的开销 default 10 配置外部路由引入时的外部开销为10(默认就是1)
OSPF设备去往外部路由的开销计算方式
如果此OSPF设备和ASBR在同一区域,则对于外部路由Cost计算方式如下:
Cost = 自身到ASBR的开销 + 引入时的开销(5类LSA)
Next-Hop = 自身到ASBR的下一跳
如果此OSPF设备和ASBR不在同一区域,则对于外部路由Cost计算方式如下:
Cost = 自身到ABR的开销 + ABR到ASBR的开销(4类LSA) + 引入时的开销(5类LSA)
Forwarding-Address作用
Forwarding-Address字段仅出现在5类和7类LSA中,此处只介绍5类LSA的情况。
当引入外部路由出现次优路径时,会使用5类LSA中的Forwarding Address 此段来解决。
此字段会包含最优的下一跳地址。
具体步骤:
RTB将自己去往192.168.3.0的下一跳地址填充到Forwarding Address字段传送给RTA
RTA收到后,发现5类LSA的Forwarding Address字段的地址直连可达(有去往10.1.123.0/24网段的直连路由),然后就将此字段的地址作为外部路由的下一跳
OSPF选路原则
- 区域内路由优于区域间路由优于区域外路由
- 即1/2类LSA优于3类LSA优于5/7类LSA
- 外部路由Metric-Type1的路由优于Metric-Type2的路由
- 同为Type1的外部路由,优选内部成本加外部成本之和最小的路由
- 同为Type2的外部路由,优选外部成本花销小的路由,如果外部成本一致,则优选内部成本小的路由,否则路由负载均衡