外部路由引入
RTA上配置了一条静态路由,目的网络是10.1.60.0/24,下一跳是RTF 在RTA的OSPF进程下,将配置的静态路由重发布(或者叫做翻译/路由引入)到A公司的OSPF网络中,其中引入外部路由的OSPF路由器叫做ASBR
自治系统边界路由器ASBR(AS Boundary Router)与其他AS交换路由信息的设备称为ASBR,ASBR并不一定位于AS的边界,它可能是区域内设备,也可能是ABR。只要一台OSPF设备引入了外部路由的信息,它就成为ASBR
RTA会生成一条AS-External-LSA(五类LSA),用于描述如何从ASBR到达外部目的地;
RTB和RTC会生成一条ASBR-Summary-LSA(四类LSA),用于描述如何从ABR到达ASBR
四类LSA和五类LSA,将被OSPF路由器用来计算外部路由
查看五类LSA的信息
<RTA>display ospf lsdb ase self-originate
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Type : External //LSA类型
Ls id : 10.1.60.0 //目的网段地址
Adv rtr : 1.1.1.1 //产生此五类LSA ASBR的Router ID
Ls age : 1340
Len : 36
Options : E
seq# : 80000004
chksum : 0xb5cc
Net mask : 255.255.255.0 //网络掩码
TOS 0 Metric: 1 //开销值
E type : 2
Forwarding Address : 0.0.0.0
Tag : 1
Priority : Low
这是由RTA生成的五类LSA,将被泛洪到所有OSPF区域
五类LSA中包含的主要信息如下:
① Ls id:目的网段地址
② Adv rtr:ASBR的Router ID
③ Net mask:目的网段的网络掩码
④ Metric:ASBR到达目的网络的开销值,默认值为1
⑤ Tag:外部路由信息可以携带一个Tag标签,用于传递该路由的附加信息,通常用于路由策略,默认值为1
查看四类LSA的信息
<RTB>display ospf lsdb asbr self-originate
Area: 0.0.0.1
Link State Database
Type : Sum-Asbr //LSA类型
Ls id : 1.1.1.1 //ASBR的Router ID
Adv rtr : 2.2.2.2 //产生此四类LSA ABR的Router ID
Ls age : 15
Len : 28
Options : E
seq# : 80000005
chksum : 0xf456
Tos 0 metric: 1 //从RTB到达此ASBR的开销
这是由RTB在Area 1内生成的ASBR-Summary-LSA(四类LSA)RTB向Area 1泛洪一条五类LSA时,同时生成一条四类LSA向Area 1泛洪
该四类LSA主要包含下列信息:
① Ls id:该ASBR的Router ID
② Adv rtr:该产生此四类LSA的ABR的Router ID
③ Metric:从该ABR到达此ASBR的OSPF开销值
四类LSA只能在一个区域内泛洪,五类LSA每泛洪到一个区域,相应区域的ABR都会生成一条新的四类LSA来描述如何到达ASBR
因此描述到达同一个ASBR的四类LSA可以有多条,其Adv rtr是不同的,表示是由不同的ABR生成的
以Area 0中RTB的外部路由计算为例:RTB收到五类LSA后,根据Adv rtr字段1.1.1.1发现,ASBR与自己同属于一个区域(Area 0),再根据Ls id、Net mask、Metric字段最终生成目的网络10.1.60.0/24 cost=1,下一跳为RTA的路由
以Area 1中RTD的外部路由计算为例:RTD收到五类LSA后,根据Adv rtr字段1.1.1.1发现,ASBR与自己不同属于一个区域,再查找Ls id为1.1.1.1的四类LSA,发现此四类LSA的Adv rtr为2.2.2.2。再根据五类LSA中的LS id、Net mask、Metric字段最终生成目的网络10.1.60.0/24 cost=1,下一跳为RTB的路由
RTB、RTD最终计算出的路由条目cost都为1,根据物理拓扑可知,RTD开销值明显大于RTB,那么问题出在哪里呢?
外部路由类型
OSPF引入外部路由,共有两种类型可选:
① 第一类外部路由的AS外部开销值被认为和AS内部开销值是同一数量级的,因此第一类外部路由的开销值为AS内部开销值(路由器到ASBR的开销)与AS外部开销值之和
② 第二类外部路由的AS外部开销值被认为远大于AS内部开销值,因此第二类外部路由的开销值只包含AS外部开销,忽略AS内部开销(默认为第二类)默认情况下,OSPF外部路由采用的是第二类外部路由
实战演练如下
R7和R8之间跑RIP协议,version 2 并且把R8上面的loop口8.8.8.8/32 网段路由宣告到rip中
在R7上面查看通过rip协议学习的路由条目,并在R7的OSPF进程下敲import-route
命令
在R7上查看LSDB的信息
LSA-5是在整个OSPF domain内进行泛洪的 并且Adv router 是不会变 永远都是ASBR的router id
华为这边默认情况下为type-2的,在计算开销成本的时候,是不会把内部开销的成本加进去的 所以R6R2、R1到8.8.8.8的cost是1
在R7上面修改引入rip的type类型为type-1
在R6上查看LSA-5的内容,外部成本还是1 但是在路由表中的话 得加上内部得成本
修改为type-1类型后,R6、R2、R1路由表中到达外部路由的开销值还得把内部的成本计算进来
画出R6的有向图,发现R2无法计算出到达ASBR的开销是多少?发现R3无法计算出到达ASBR的开销是多少?
LSA-4是由ABR产生的,除了在area 1之外在其他区域都会存在
在R2上查看到达ASBR的开销是多少?并且tracert一下到达ASBR的路径是怎么样的?
R2到达外部路由8.8.8.8的开销是多少?并且R2到达8.8.8.8的路径是怎么走的?
结论:在FA地址为0.0.0.0的时候,外部路由的选路得看LSA-4,LSA-4怎么选路 LSA-5就怎么选路
小结一下:可以补充下R6的有向图了
在R1上面查看达到8.8.8.8的路由,并tracert一下到达8.8.8.8的路径
在R4上看查看OSPF的LSDB内容
LSA-4是R4产生的,经过R2和R3的ABR后会发现什么样的变化没?
OSPF选路规则(面试题)
区域内的(LSA-1和LSA-2)>区域间的(LSA-3)>ASE TYPE 1>ASE TYPE2
OSPF选路 区域内优于区域间 LSA1和LSA2优于LSA3 LSA3优于LSA5 LSA5优于LSA7
对于LSA5的话 type1优于type2 对于LSA7的话 type1优于type2的 NSSA type1的优于LSA5的type 2的
① 外部路由type 1的不用想 直接算出端到端的成本出来 最小的最优
② 外部路由type 2的不用想 直接看外部成本 内部成本不用看的 最小的最优 如果外部成本一样的话在比较内部成本 谁小谁好 然后胜出 如果内部成本一样 外部成本一样的话 负载分担
次优外部路由的产生
RTA、RTB、RTC同处于一个MA网络,RTA和RTB之间运行OSPF,RTB和RTC之间运行RIP。RTB将通过RIP学来的路由重发布到OSPF,RTA通过OSPF学习到RIP中192.168.3.0/24的外部路由,但是下一跳是RTB。所以RTA访问192.168.3.0/24的流量先发送给RTB,RTB收到后又转发给RTC。在RTA上这条路由是次优的,最优的下一跳应当为RTC
设置FORWARDING ADDRESS
FA的作用:解决次优路径问题(FA只在LSA-5和LSA-7里面有)
FA地址非0的情况:
① 网络类型不是P2P
② 网络类型不是P2MP
③ 接口要enable 并且要宣告到OSPF
④ 接口不能slient掉
如果FA地址非0的话,LSA-5和LSA-7走哪一条路完全看LSA-3
通常情况下,ASBR引入外部路由产生的五类LSA中Forwarding Address字段设置为0.0.0.0。对于图中的场景,RTB路由表中到达192.168.3.0/24的下一跳地址为10.1.123.3。10.1.123.3所属网段10.1.123.0/24运行OSPF,所以RTB生成的五类LSA中,Forwarding Address被设置为10.1.123.3
当RTA收到五类LSA时,发现Forwarding Address字段非0,其值为10.1.123.3,所以RTA按照Forwarding Address计算下一跳
来源:oschina
链接:https://my.oschina.net/u/4282636/blog/4258317