1、关于 default-route-advertise 命令
Ospf 是可以通过 import-route 命令引入外部路由的,但很少有人会注意到,++在默认情况下,ospf 是不会引入来自外部路由的缺省路由的++。
但 ospf 有一个变通的方法,就是通过 default-route-advertise
命令,将自己作为默认路由的下一跳宣告到 ospf 区域内。
这样,ospf 里的其他路由器就会将缺省流量发送给自己,然后本路由器再根据其他协议的路由表进行转发。
2、关于 always 选项
如果没有配置 always,则 default-route-advertise 有两种情况:有效 / 无效。
啥时候会有效?啥时候会无效?这依赖于来自其他协议的缺省路由是否有效。
如果本路由器的缺省路由是可用的,则会在 ospf 区域内招呼,大家把缺省路由指向我啊,我这里有路出去。
如果本路由器发现自身的缺省路由有问题,比如链路断了,下一条不可达,则会马上在 ospf 区域内撤销通告,使自己不再接受来自 ospf 区域内其他路由器的缺省流量。
但是如果配置了 always 选项,事情就不一样了,该路由器变得相当自信,会一直宣告自身作为缺省路由下一跳的有效性。
明白了这两个基础知识点,再看思考题,基本可以给出自己的解答了。
优点:
1、能维护 ospf 路由表的稳定性(外部接口 up/down 不会触发 ospf 的路由更新)
2、方便定位故障点,如果未配置 always 选项,则一般会先要排查 ospf 的配置是否有误。配置了 always,并在末端能查看到该缺省路由表项之后,能直接判断是最后一跳出接口的问题。
3、在单一出口的情况下,配置简单。
这里单一出口,是指整个 ospf 区域,包括非骨干区域,++default-route-advertise 形成的 lsa 是可以穿越 abr 的++。
缺点:
在多出口的情况下,会有问题。因为 default-router-advertise 配置了 always(永久发布)之后,会屏蔽掉来自其他路由器的缺省路由项,导致经过本路由器的流量无法使用其他出口。
说明:
bash
default-router-advertise always *type 1/2*
这里的 type,不是指 lsa 的 type,而是外部路由的类型。
外部路由分为 1 型、2 型两种。
优先级
1 型的优先级高于 2 型
cost 值计算
1 型的 cost 值计算方法和 ospf 内部路由的计算方法一样,整条链路上的 cost 累加值。
2 型的 cost 被认为远大于 ospf 内部的 cost,故只计算外部路由的 cost 值。
EOF
注:对原文后半部分,按段落主题重排。
via:
-
OSPF 之 Default-router-advertise 解析 - ʚɞ无恙 - 博客园 ʚɞ无恙 posted @ 2022-09-22 20:49