文章目录
FA的产生
先说结论
- 5-LSA一般FA为0,若做了如下三件事,那么5-LSA就会有FA,FA为ASBR连接外部链路的MA地址的下一跳;注意,外部链路是MA 则FA为下一跳、外部是P2P,则为出接口,这是因为SPF算法计算的矢量特性的原因,即MA网络是一个伪节点,而P2P是实节点
1、接口没有silent
2、接口要network到OSPF中
3、接口type必须是MA
以上说的接口是ASBR上连接外部路由的接口,即ASBR连接外部的边界链路
-
7-LSA必然会产生FA地址;但是若在7转5的设备上做了抑制FA,那么7类LSA的FA就为0
nssa suppress-forwarding-address
-
7-LSA中的FA是:
1、ASBR上没有做上面提到的三件事,则FA为ASBR上的环回接口地址;如果做了以上的三件事,那么7-LSA的FA与5-LSA的FA相同,都是外部链路上的MA的下一跳
2、若ASBR没有将环回宣告进OSPF域(即没有宣告进NSSA域)或根本就没有环回,那么FA就是NSSA域中的链路,即OSPF的域内的接口地址 -
若LSA中存在FA地址,则路由递归通信包括metric的计算,都是计算到达FA地址的。(当LSA中包含了FA地址,则4类LSA失效)
COST计算
先说结论
5-LSA
-
当FA为0
OE1引入:我去ASBR的开销+ASBR去外部路由的开销
OE2引入(默认):引入时的metric是多少,就是多少;即ASBR告诉本域内的其他路由器,去这个外部路由的cost是1 ,且ABR产生4-LSA时告诉a0中的路由器,去这个外部路由的cost是1 华为默认是1 思科默认20 -
当FA不为0时
OE1引入:我去FA的开销(去ASBR+ASBR到伪节点)+外部路由引入时的开销
(OE1或OE2 1携带原来的开销)
OE2引入:与FA=0时的OE2引入相同
总结:OE2为默认类型 cost不计算沿途累加;OE1是计算沿途累加的
7-LSA
-
当FA为0
与5-LSA相同 -
当FA不为0时
OE1引入:我去FA的开销(去ASBR+ASBR到伪节点)+ 外部路由引入时的开销
(OE1或OE2 1携带原来的开销)
OE2引入:与FA=0时的OE2引入相同
其实大致相同,具体看环境
实验验证
拓扑说明
- OSPF域内的网段都为10.0.xx.y/24
xx是两个路由器的name,比如R1、R2间的链路就是10.0.12.0/24
y是本端路由器的name,比如R1—>R2的本端地址就是10.0.12.1/24
- OSPF域外的网段是100.0.xx.y/24
- R5上写一条静态指向R7的环回,R7的环回用于模拟外部路由
5-LSA的FA及cost的计算
FA = 0.0.0.0
首先,要产生一个5-LSA;在R5上将自己的静态引入到ospf中,那么此时R2就会看到一条5类的LSA
在R2上查看这个5类LSA的detail,可见FA是0.0.0.0
可见,5-LSA默认FA是为0的
R2如何计算去7.7.7.0/24的cost?
- 首先,R2看到这个5-LSA的detail,发现其FA为0,那么就需要找4-LSA来带路(带到ASBR上),如下是4-LSA的detail,发现可以通过R3、R4去
- 然后查看ospf的abr-asbr表,看如何去,可见要去10.0.234.3或.4
- 查看
ospf routing
,看去这个网段下一跳是多少,可见,就是自己连接的MA网络的出接口(从自己的这个接口出去),且cost为11
那么去7.7.7.0/24网段的下一跳就是去ASBR的下一跳,验证如下
注意:这里的cost是1 的原因是因为import外部路由的type默认为2,即OE2(OE2引入时cost默认为1,Cisco为20)那么就不计算沿途累加,ABR告诉a0域的路由器去这个外部路由(7.7.7.0)cost就是1
import时修改类型为OE1
修改前:
此时计算Cost时就会沿途累加,计算如下:
R2–>ASBR的cost + ABR到外部路由的cost(ABR到ASBR+ASBR到MA网络的伪节点)
11 + 2(1+1) = 13
验证是否为13,可见,与预期相符
若修改引入时的cost为10 ,那么R2去是多少呢?
分析:
首先R2到ABR是11;ABR到ASBR是1;ASBR到外部路由(即修改的10)是10
那么R2去外部路由就应该是22
验证:
总结:当FA为0时,去外部路由要由ABR带路出去(产生4-LSA的ABR),且cost计算分为两种OE1 计算沿途累加 OE2不计算,如何计算是重点,需详细分析
FA != 0.0.0.0
做三件事,使5-LSA的FA不等于0
1、接口没有silent
2、接口要network到OSPF中
3、接口type必须是MA
在此实验中,将R5的g0/0/0口宣告进ospf的a1中,这个接口不是silent、是MA、且宣告进了ospf中,那么对于其他路由器查看5-LSA的detail就会看到FA为100.0.57.7,为什么是这个地址,请回到本文最开头
在R2上看5-LSA的detail,可见FA地址就是分析中的地址
此时的路由计算是怎么玩的?
首先看到5-LSA中的FA不为0,那就以这个FA地址为目的,看如何去;因为这个FA地址肯定是在OSPF的内部是可以找到的(至于为什么,聪明的你一定知道)
所以,去FA的下一跳就是去外部路由的下一跳
那么此时的cost计算是怎么玩的呢?
首先分析OE2,即默认类型
相信聪明的你已经才出来了,cost还是等于1 ;任你如何变,都是1(R1、R2去这个外部网段的cost都是1)
OE2不是重点考虑的对象,重点考虑OE1
先看R2去这个FA地址的cost,发现是13
注意,这里的13是这样计算的:
去ASBR(12)+ASBR到伪节点 (1)
然后伪节点引入的静态是1 ,那么最终R2去这个外部路由就是13+1 14
上图是详细计算,实际上存在FA时,直接就到FA地址了,如下图
测试,当在ASBR上引入外部路由的cost配置为10时,那么R2去外部路由应该是多少?
分析:
R2先到ASBR12
ASBR到伪节点1
引入是10
所以,最终应该是23
7-LSA的FA
FA != 0
首先要做一个7-LSA出来,那么将a1改成NSSA区域
在R3、R4、R5上将ospf的a1区域改成nssa区域,R5上就可以看到这个NSSA区域的特殊路由
如何去这个外部路由?
首先R2看5-LSA的detail,发现其存在FA,那么就去先这个内部的网段
去这个内部的网段的下一跳是多少,去外部路由的下一跳就是多少
那cost是怎么玩的呢?
这里对于OE2不做过多赘述,与以上都类似
直接修改引入的type为1
从R2去FA的cost + ASBR引入的cost
12 + 1 = 12
修改引入的cost为10,那么R2去7.7.7.0的cost就应该是12+10=22
FA = 0.0.0.0
7-LSA是一定携带FA的,如何使其FA为0?
抑制
[R4-ospf-1-area-0.0.0.1]nssa suppress-forwarding-address
这样一来,R2就收到的这条5-LSA就没有FA了
如何路由?
玩法给5-LSA一样,先找产生4-LSA的ABR,4-LSA的ABR的下一跳就是去外部路由的下一跳
cost怎么玩?
OE2就不说了,重点看OE1
先去产生4-LSA的ABR + ASBR引入时携带的cost
11 + 1 =12
注意对于与5-LSA中没有FA的区别
修改ASBR上引入的cost位10
分析:
11+10 = 21
你学废了吗?