OSPF下发缺省路由还能这么玩?90%的人都不知道,不看后悔!!!

发布时间:2024年01月07日

点赞+关注,每日分享数通知识~

OSPF下发缺省路由有以下几种情况:

一、非条件产生

非条件产生,表示调用路由策略时不进行 if-match 匹配

1) 非强制下发

default-route-advertise route-policy test
非强制下发缺省路由,并修改缺省路由的属性

  1. 当路由器表中存在其他路由进程的缺省路由时,下发OSPF缺省路由,并通过route-poliy修改缺省路由的cost,tag,type 3个属性,如果路由表中不存在其他路由进程的缺省路由时不下发缺省路由;
  2. 如果route-policy中存在if-match语句,则不会产生缺省路由。

注意:不能进行if-match 匹配,否则缺省路由无法下发

2)强制下发

default-route-advertise alway route-policy test
强制下发缺省路由,并修改缺省路由的属性

  1. 始终产生缺省路由;
  2. 如果存在其他协议的缺省路由,则route-policy 生效,通过route-policy设置缺省路由的cost,tag,type 3个属性,此时如果route-policy中存在if-match语句,apply语句失效,按默认属性产生缺省路由;
    3.如果路由表中不存在其他路由进程的缺省路由时,还是按默认属性下发缺省路由,但route-policy不生效,不管有没有if-match语句。

二、条件产生

条件产生,表示调用路由策略时需要进行 if-match 匹配

1)非强制下发

default-route-advertise route-policy test match-any

  1. 只要路由表中存在满足route-policy的路由,就下发缺省路由,并可以修改缺省路由的cost,tag,type 属性;
  2. 不要求路由表中存在其他进程的缺省路由;
  3. 当route-policy中存在多条if-match语句,语句间是逻辑与的关系,即条件路由必须匹配所有if-match语句。if-match可以匹配路由条目,路由cost,路由开销类型,路由下一跳,路由tag等等。

举例:

route-policy test permit node 10
	if-match ip-prefix test 即存在1.1.1.0/24路由
	if-match cost 7		并且1.1.1.0/24 cost为7,才满足条件
	apply cost 100
	apply cost-type type-1
	apply tag 100

ip ip-prefix test index 10 permit 1.1.1.0 24
  1. 当route-polioy中的引入ACL或ip-prefix定义了多条条件路由时,只要一个条件存在即下发缺省路由,当条件路由都失效时不再下发缺省路由。
route-policy test permit node 10
	if-match ip-prefix test 
	if-match cost 7		
	apply cost 100
	apply cost-type type-1
	apply tag 100

ip ip-prefix test index 10 permit 1.1.1.0 24
ip ip-prefix test index 10 permit 1.1.2.0 24

只要两个if-match语句各自有一个匹配的条件存在,即下发缺省路由,比如1.1.1.0 /24存在,但1.1.2.0 /24失效,但只要1.1.1.0 /24 开销等7,也满足条件;如果1.1.1.0 /24和1.1.2.0 /24都存在,只要其中一条路由 cost 等于7 也满足条件。

  1. 当多个node存在apply语句,按以下规则确定缺省路由属性:
route-policy test permit node 10
	if-match ip-prefx 1
	apply cost-type 2
	apply cost 5
	apply tag 100

route-policy test permit node 20
	if-match ip-prefix 2
	apply cost 10
	apply cost-type type-2
	apply tag 50

如果条件满足多个Node语句,缺省路由属性的生效机制:

  1. cost-type 1的node语句优先被使用;
  2. cost-type 相同,则cost值小的node语句优先被使用;
  3. cost值相同,则tag值小的node语句优先被使用。

注意:没有always参数,只要满足条件就下发缺省,不满足条件就不下发

2)强制下发

default-route-advertise always route-policy test match-any

  1. 当路由表中存在其他进程的缺省路由时,下发缺省路由,只有当条件路由满足irmatch语句,才能修改tag,cost,type属性,否则无法修改。if-match语句决定了apply语句是否生效,不决定缺省路由是否下发;

  2. 当路由表中不存在其他进程的缺省路由时,下发缺省路由,只有当条件路由满足if-match语句,才能修改tag,cost,type属性,否则无法修改。

    总结:总是下发缺省路由,如果满足if-match语句 则根据apply语句对缺省路由的属性做修改,如果不满足if-match语句,则按缺省路由默认属性下发缺省路由。

文章来源:https://blog.csdn.net/chuaxing/article/details/135417686
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。