「Network」- 路由引入,双点双向路由重分发,Dual-Point Bidirectional Route Redistribution

  CREATED BY JENKINSBOT

问题描述

在边界路由器上把两个路由域的路由相互引入,称之为双向路由重发布。两个路由域存在两个边界路由器,并且都执行双向路由重分发,此时称为双点双向路由重发布。

双点双向路由重发布是种经典的路由模型,因单点的双向路由重发布缺乏冗余性,一旦单点的边界路由器故障,那么两个路由域之间的通信可能就会出现问题。因此在大型网络部署中,一般采用双点双向路由重发布。

双点双向重路由发布,虽然增强网络的可靠性,但是容易引发 次优路径路由环路 问题。

路径次优

问题描述

1)R1 ⇒ R2 ⇒ R4 ⇒ R3,此时 R3 学习到 10.1.1.0/24 路由,协议优先级为 15;
2)R1 ⇒ R3,此时 R3 学习到 10.1.1.0/24 路由,协议优先级为 150(该直连路由通过 OSPF 引入,属于 OSPF ASE 路由);
3)根据路由匹配规则(若网络地址相同,则比较协议优先级),则 R3 访问 10.1.1.0/24 路径为:R3 ⇒ R4 ⇒ R2 ⇒ R1;
4)这是次优路径,而最佳路径是通过 R3 ⇒ R1 直接访问;

原因分析

在路由引入及发布过程中,路由优先级(这里是路由协议的优先级)发生变化

Q:是否会出现双向次优路由?即 R2 R3 都进行路由引入,导致 R2 R3 去往 10.1.1.0/24 都为次优路径?
A:次优路径是单向的。因为 R2 引入之后 R3 通过 ISIS 学习 10.1.1.0/24 路由,并加入路由表。此时执行 Import Route 是从路由表中引入 OSPF 路由,而 10.1.1.0/24 是 ISIS 学习到的,因此不会引入该路由,也就是说 R2 不会通过 ISIS 学习到 10.1.1.0/24 路由。(这里需要强调的是,路由引入是从全局路由表引入的,而非协议路由表。先入为主,导致 R3 全局路由表的 10.1.1.0/24 路由是通过 ISIS 学习到的,而 Import Route OSPF 不会引入该路由,因此 R3 无法通过 ISIS 学习到)

解决方案

方案一、过滤路由:在 R3 的 IS-IS 进程内,通过 Filter-Policy 禁止来自 R4 的 10.1.1.0/24 路由加入本地路由表:

[R3] acl 2001
[R3-acl-basic-2001] rule 5 deny source 10.1.1.0 0
[R3-acl-basic-2001] rule 10 permit

[R3] isis
[R3-isis-1] filter-policy 2001 import

[R2] ...
......

Q:既然不会出现双向次优路由,为什么 R2 与 R3 都要进行路由过滤?
A:当我们在 R3 上进行路由过滤后,解决次优路径问题,此时 R3 的全局路由表显示是通过 OSPF 学习到 10.1.1.0/24 路由。当我们在 R3 上配置 Import Route OSPF 时,将引入该路由,导致 R2 出现次优路径。(这两种情况是不同的:一种是双点都没有路由过滤,则不会出现双向次优;一种是单点进行路由过滤,则另点将出现次优路径,所以双点都要进行路由过滤)

方案二、修改路由优先级:调用 Route-Policy 修改外部路由 10.1.1.0/24 的优先级:

[R3]acl 2000	
[R3-acl-basic-2000] rule permit source 10.1.1.0 0

[R3]route-policy hcip permit node 10
[R3-route-policy] if-match acl 2000
[R3-route-policy] apply preference 14

[R3]ospf 1 	
[R3-ospf-1] preference ase route-policy hcip

路由环路

问题描述

1)将直连路由10.1.1.0/24引入到OSPF中。
2)R1、R2、R3运行OSPF协议,10.1.1.0/24网段路由在全OSPF域内通告。
3)R2执行了双向路由重发布。
4)R2、R3、R4运行IS-IS协议, 10.1.1.0/24网段路由在全IS-IS域内通告。
5)R3执行了双向路由重发布。
6)10.1.1.0/24网段路由再次被通告进OSPF域内,形成路由环路

原因分析

路由回馈,路由回灌,导致路由从其他区域回到始发区域。

双向都会发生路由回馈,ISIS ⇒ OSPF、OSPF ⇒ ISIS,并且 R2 与 R3 都需要进行配置。

解决方案

方案一、避免路由回灌:在 R3 的 OSPF 引入 IS-IS 路由时,通过 Route-Policy 过滤掉 10.1.1.0/24 路由:

[R3] acl 2001
[R3-acl-basic-2001] rule 5 deny source 10.1.1.0 0
[R3-acl-basic-2001] rule 10 permit

[R3] route-policy RP permit node 10
[R3-route-policy] if-match 2001

[R3] ospf
[R3-ospf-1] import-route isis 1 route-policy RP

方案二、避免路由回灌:使用 Tag 实现有选择性地路由引入,并通过 Tag 过滤路由:

// 添加 TAG 信息

[R2]acl 2000	
[R2-acl-basic-2000]rule permit source 10.1.1.0 0

[R2]route-policy hcip permit node 10
[R2-route-policy]if-match acl 2000
[R2-route-policy]apply tag 200          # ISIS Cost Style: Wild/Narrow

[R2]isis 1
[R2-isis-1] import-route ospf route-policy hcip 

// 通过 TAG 过滤

[R3]route-policy hcip deny node 10	
[R3-route-policy]if-match tag 200

[R3]route-policy hcip permit node 20

[R3]ospf 1
[R3-ospf-1]import-route isis route-policy hcip

路由度量值 ⇒ 发生变更

场景描述:
1)在 IS-IS 中引入OSPF路由。在 OSPF 中,引入IS-IS路由。
2)不同的路由协议对路由度量值的定义不同,那么在路由协议之间进行路由引入时,被引入的路由的度量值该如何定义?定义成多少?

配置使用

基础配置指令

配置 OSPF 引入外部路由

# 在OSPF视图下,引入BGP路由/直连路由/静态路由/IS-IS路由/OSPF其他进程路由。
[Huawei-ospf-100] import-route { bgp | direct | static | isis [ process-id-isis ] | ospf [ process-id-ospf ]}

参考文献

Dual-Point Bidirectional Route Redistribution – Huawei Enterprise Support Community