如下拓扑中,存在两个路由域,左边为isis区域,所有设备均为level-1-2角色。右边为ospf区域,所有使能ospf的接口均在area0区域中:

组网中需要在R1和R3上,分别将各自的isis路由引入到ospf进程中,同时将ospf路由引入到isis进程中。在该种路由引入,不做任何路由策略控制的情况下,会存在一些多路径的问题。下面我们来详细分析。

调整华三路由器 ospf 优先级 华三ospf引入默认路由_R3


配置步骤


接口配置等略。这里只罗列R1和R3设备上简单的路由发布,和路由引入的部分配置。R2和R4分别做简单的ISIS路由发布,以及OSPF路由发布即可,这里不做赘述。

路由器R1配置如下:

#

isis 1

 network-entity 10.0000.0000.0001.00

 #

 address-family ipv4 unicast

//在isis中引入ospf路由的时候,需要指定将路由引入的isis级别。

#

ospf 1

 import-route isis 1

 area 0.0.0.0

  network 20.1.1.0 0.0.0.255

#

路由器R3配置如下:

#

isis 1

 network-entity 10.0000.0000.0003.00

 #

 address-family ipv4 unicast

  //在isis中引入ospf路由的时候,需要指定将路由引入的isis级别。

#

ospf 1

 import-route isis 1

 area 0.0.0.0

  network 20.1.2.0 0.0.0.255

#

如果不做路由策略控制会发生什么情况呢?

举例,设备R1上配置了一条测试用的静态路由:

调整华三路由器 ospf 优先级 华三ospf引入默认路由_静态路由_02

在R1上不做路由策略的时候,直接引入到ospf中去:

调整华三路由器 ospf 优先级 华三ospf引入默认路由_网络_03

该路由条目在经由R4进行ospf扩散到R3后,由R3引入发布到isis中去。最后经由R2进行ISIS扩散,将路由进行扩散更新到了R1的路由表中,由于ISIS的默认优先级为15,高于静态路由,所以在R1上查看路由表时,会发现下一跳会变成错误的连接isis区域的接口设备。 

调整华三路由器 ospf 优先级 华三ospf引入默认路由_调整华三路由器 ospf 优先级_04

针对这种情况,可根据现场需求做相应的调整:

1、如果只想对R1做限制,要求R1能正确的走静态路由去往150.150.150.0/24。对isis区域的其他设备不做要求,则可以在R1上,对isis进程做路由策略过滤实现:


#

 ip prefix-list test index 10 permit 150.150.150.0 24

#

route-policy test deny node 1

 if-match ip address prefix-list test

#

route-policy test permit node 2          //路由策略中使用node2,进行permit2,用来匹配其他的路由条目,进行接收。

#

isis 1

 network-entity 10.0000.0000.0001.00

 #

 address-family ipv4 unicast

  import-route ospf all-processes level-1-2

  //在isis进程中,使用过滤策略调用路由策略,进行入方向路由过滤。

#

此时其他isis区域的设备访问150.150.150.0/24,仍需从ospf区域转发。

2、如果需要ISIS区域的设备访问150.150.150.0/24访问时,不经过OSPF区域。


则需要将静态路由引入到isis进程中去即可,不需要再配置路由策略过滤(由于路由协议水平分割,R1引入isis的路由条目不会由R2发布回来)。

#

isis 1

 network-entity 10.0000.0000.0001.00

 #

 address-family ipv4 unicast

  import-route static level-1-2

  import-route ospf all-processes level-1-2

#

但是同时会出现一个问题,即R4从R1和R3分别收到了OSPF的外部路由,由于2类外部路由不计算内部开销,故在R4上形成了等价路由条目:

针对这种情况,则可以有两种方式实现纠正。

(1)配置路由策略

路由器R1配置如下:

#

isis 1

 network-entity 10.0000.0000.0001.00

 #

 address-family ipv4 unicast

  //R1上对引入ISIS的静态路由条目,匹配前缀,打tag200

  import-route ospf all-processes level-1-2

  filter-policy route-policy test import

#

ospf 1

//R1上对引入OSPF的静态路由条目, 匹配前缀,打tag100

 import-route isis 1

 area 0.0.0.0

  network 20.1.1.0 0.0.0.255

#

route-policy tag1 permit node 1

 if-match ip address prefix-list tag1

 apply tag 100

#

route-policy tag1 permit node 2

#

route-policy tag2 permit node 1

 if-match ip address prefix-list tag2

 apply tag 200

#

route-policy tag2 permit node 2

#

route-policy test deny node 1

 if-match ip address prefix-list test

#

route-policy test permit node 2

#

 ip prefix-list tag1 index 10 permit 150.150.150.0 24

 ip prefix-list tag2 index 10 permit 150.150.150.0 24

 ip prefix-list test index 10 permit 150.150.150.0 24

#

路由器R3配置如下:


#

isis 1

 network-entity 10.0000.0000.0003.00

 #

 address-family ipv4 unicast

//对于由ospf引入isis的路由,匹配tag100,进行过滤,禁止发布。

#

ospf 1

   //对于由isis引入ospf的路由,匹配对应前缀进行过滤,禁止发布。

 area 0.0.0.0

  network 20.1.2.0 0.0.0.255

#

route-policy tag1 deny node 1

 if-match tag 100

#

route-policy tag1 permit node 2

#

route-policy tag2 deny node 0      //经测试isis不传递tag参数,故使用前缀做路由过滤。

 if-match ip address prefix-list tag2

#

route-policy tag2 deny node 1                 //经测试isis不传递tag参数,故该条目不生效

 if-match tag 200

#

route-policy tag2 permit node 2

#

 ip prefix-list tag2 index 10 permit 150.150.150.0 24

#

 经调整后,R4上只有一条来自R1的路由条目了。

调整华三路由器 ospf 优先级 华三ospf引入默认路由_网络_05

(2)方法2:

不使用路由策略做deny,使用调整优先级的方式,在R1上和R3上将指定前缀的路由条目优先级值调高。从而做到路由主备。

#

isis 1

 network-entity 10.0000.0000.0001.00

 #

 address-family ipv4 unicast

 preference 【值】 route-policy 【名字】

#

ospf 1

//需要指定ase,否则针对as内部路由生效

#

可以通过routr-policy中加if-match进行条件匹配来实现调整接收路由条目的优先级的目的:(可以配置多个if-match规则来匹配。条目间为与的关系)

¡  配置路由信息的出接口匹配条件。

if-match interface { interface-type interface-number }&<1-16>

¡  配置IGP路由信息标记的匹配条件。

if-match tag tag-value     //匹配tag针对传递的isis路由不生效,针对isis传递的路由条目,在路由策略中可以通过匹配前缀值+接口的方式实现匹配