Network 路由重分发(路由引入)

概念

在路由协议的边界设备上,将某种路由协议的路由信息引入另一种路由协议中,这个操作被称为路由引入 (Route Importation) 者路由重分发 Route Redistribution。

在一个大型的企业中,由于网络规模十分庞大,选用单一 的路由协议可能己经无法满足网络的需求,因此多种路由协议共存的情况颇为常见。再者出于业务逻辑的考虑,通过在不同的网络结构中设计、部署不同的路由协议,可以使路由的层次结构更加清晰和可控。另外,在执行路由重分发时,还可以部署路由策略,从而实现对业务流量的灵活把控,这也是路由 重分发的魅力之一。

需要强调的是,路由重分发的操作是具有方向性的。

路由重分发的场景

路由重分发主要涉及如下几种场景:
动态路由协议之间的路由重分发;
将直连路由引入动态路由协议:
将静态路由引入动态路由协议;

路由重分发命令

RIP OSPF iS-iS BGP 等几乎所有的主流动态路由协议中, import-route
令都被用于执行路由重分发。

import-route ospf 1 cost 2

注意点:

如果被引入的路由失效,边界设备会发送一个Response报文通知,撤销关于目的网络的路由通告。

另一个需要留意的细节是路由的度量值。不同的路由协议对度量值的定义是不同
的, OSPF 将开销作为路由的度量值,而 RIP 则定义了跳数作为其路由度量值,这显然
是两种不同的设定。因此当一条路由被路由器从 OSPF 引入RIP 时,路由器生成的RIP
路由的度量值显然需要被重新定义,在上文配置的 import-route 命令中,关联了 cost
键字来指定路由被引入之后的度量值。在 import-route ospf 1后增加 cost 2则意为将引
入阳 的路由的度量值设置为 2跳.

如果要将其他路由协议的路由引入 RIP ,并且在执行 import-route 命令时没有指
cost 关键字及其参数,那么缺省时,被引入RIP的外部珞由的 Cost 值为 0,路由器将
该外部路由通告给其他路由器时,会将跳数设置为 1(也即0跳加上1) 。可以在 RIP
配置视图下使用 default-cost 命令修改这个缺省值(范围是 0~15)。

执行 import-route 命令将其他路由协议的路由引入 OSPF 时,可以指定外部路由
引入 OSPF 后的度量值、度量值类型、标记等信息,如果该命令中没有指定上述信息,
那么路由器将会为路由的这些属性设置缺省值,在 OSPF 配直视图下,使用 default 命令
可修改这些缺省值:

  • default cost 20: 外部路由被引入 OSPF 后,其度量值缺省被设置为1 ,使用该命
    令可将缺省值修改为 20
  • default cost inherit-metric :执行该命令后,被引入 OSPF 的外部路由的度量值将
    继承其被引入前的值
  • default type 1: 外部路由被引入 OSPF 后,其度量值类型缺省被设直为 Metric-type-2 ,使用该命令可将缺省度量值类型设直为 Metric-Type-1
  • default tag 10 :外部路由被引入 OSPF 后,其路由标记佳缺省值被设直为1 ,使用该命令可将缺省标记值设直为 10

OSPF(Open Shortest Path First,开放式最短路径优先)引入外部路由时有第一类外部路由(Type 1 External Route)和第二类外部路由(Type 2 External Route)两种类型,它们的区别如下:

一、计算开销(Cost)方式不同

  1. 第一类外部路由
    • 引入到 OSPF 中的第一类外部路由在计算路由开销时,除了考虑外部路由的开销,还会累加到达 ASBR(Autonomous System Boundary Router,自治系统边界路由器)的 OSPF 内部路由开销。
    • 例如,从某一路由器到达 ASBR 的 OSPF 内部路径开销是 10,ASBR 引入的外部路由开销是 20,那么对于该路由器来说,这条第一类外部路由的总开销就是 10 + 20 = 30。
  2. 第二类外部路由
    • 第二类外部路由在计算路由开销时,只考虑 ASBR 通告的外部路由开销,而忽略到达 ASBR 的 OSPF 内部路由开销。
    • 延续前面的例子,同样的场景下,如果是第二类外部路由,那么该路由器计算的这条外部路由的开销就是 20。

二、路由优选规则不同

  1. 第一类外部路由
    • 在进行路由选择时,OSPF 区域内和区域间的路由优先于第一类外部路由。
    • 只有当没有区域内和区域间的路由可以到达目的地址时,才会选择第一类外部路由。
    • 这是因为 OSPF 认为区域内和区域间的路由更可靠、更稳定,具有更高的优先级。
  2. 第二类外部路由
    • 第二类外部路由的优先级低于 OSPF 区域内和区域间的路由,也低于第一类外部路由。
    • 当存在多种路由可以到达同一目的地址时,会按照上述优先级顺序进行选择,最后才考虑第二类外部路由。

三、适用场景不同

  1. 第一类外部路由
    • 适用于对路由开销计算要求更精确、更符合实际网络拓扑和流量情况的场景。
    • 例如,在一个对网络流量和路由控制要求严格的企业网络中,如果希望外部路由的选择能够充分考虑到内部网络的拓扑结构和路由开销,就可以选择使用第一类外部路由。
  2. 第二类外部路由
    • 通常适用于外部路由相对不太重要,或者希望简化路由计算和管理的场景。
    • 比如在一些小型网络或者对路由策略要求不高的网络环境中,使用第二类外部路由可以减少路由计算的复杂性,提高网络的简洁性。

如图RTC通过RTB和RTA学习到1.1.1.1/32路由,请问选择哪个路径?通过命令显示是选择了区域内的路由。区域内路由优先级高于区域间路由优先级。

重分发直连路由到OSPF

使用import-route direct 命令将设备上的所有直连接口的路由发布到OSPF 中,包括已经在Ospf 进程下激活的接口路由。

重分发静态路由到OSPF

OSPF 视图中执行的 import-route static 命令,用于将其路由表中的所有静态路由引入 OSPF 。将静态路由引入其他动态路由协议中,同样是使用 import-route static命令。

Network OSPF优先级与开销

OSPF 内部的优先级的值为10,而外部的优先级的值为150,如果存在通过内部和外部2种方式获取到同样的路由,会优先选择内部路由。(优先级的值越大,优先级越低)。

通过调整ABR路由器所通告的缺省路由的开销值来实现主备备份。

在OSPF 区域中使用 default-cost 命令来修改ABR 发布的默认路由的cost 值 。

采用直接引入直连路由的方式引入外部路由,会将所有直连的网段路由全部引入过来(包括内部OSPF已经激活的路由)。

一般会通过路由策略来引入外部路由。

acl 2000

rule permit source 192.168.1.0 0.0.0.255

route-policy 10 permit node 1

if-match acl 2000

ospf 10

import-route direct route-policy 10

Network Ospf Type-4什么时候存在,其作用是?

OSPF 区域划分的时候,如果非骨干区域有外部路由引入;其ASBR路由器会泛洪TYPE-5 LSA通告,描述到外部网络路由,Type-5LSA 会在整个AS系统泛洪,除了几个特殊区域。type5的LSA的advRouter是ASBR的router-id.这个router-id 只会在其它区域内泛洪,也就不知道该ASBR,

而我们OSPF内部的路由器如果想前往这些外部网段,则需要同时具备两个条件:

1.知道外部的路由(这通过重发布的动作,已经完成了注入,借助5类LSA完成传播)

2.知道完成这个重分发动作的ASBR的位置

与ASBR在同一区域的区域内部路由器,能通过ASBR产生的1类LSA知道该ASBR的位置(1类LSA中E位=1,所以与ASBR同区域的路由器都知道),但是问题来了,1类LSA的泛洪范围是本区域内,那么该区域外的路由器如何得知这台ASBR的位置呢?

那么就需要借助4类LSA了。

Network 配置OSPF 接口开销

OSPF 使用 Cost (开销)作为路由度量值,所谓开销,亦可理解为成本或者代价, Cost 值越小,则路径(路由)越优。首先每一个激活 OSPF 的接口都拥有一个接口级别的 Cost 值,这个值等于 OSPF 带宽参考值/接口带宽,取计算结果的整数部分,当结果小于 时,值取1 。

调整接口cost

OSPF接口值可以手动调整,来手动调整路径。通过调节接口 ost 从而影响 OSPF 路由计算,这种方法在实际的工程中常被用到。

interface GigabitEthernet0/0/0
ip address 10.1.23.1 255.255.255.0
ospf cost 48
ospf enable 1 area 0.0.0.0

配置带宽参考值

  1. 执行命令system-view,进入系统视图。
  2. 执行命令ospf [ process-id ],进入OSPF进程视图。
  3. 执行命令bandwidth-reference value,配置带宽参考值。value为计算链路开销时所依据的参考值,单位是Mbit/s。

ospf cost=int(参考带宽÷接口带宽)
Int(n)表示对数值n取整数,如果|n|≤1(n的绝对值小于或等于1),则Int(n)=1

参考带宽默认值=10的8次方,约等于100Mbps
1G链路的Cost=Int(100M÷1000M) = 1
10G链路的Cost=Int(100M÷10000M) = 1

所以,当链路带宽大于100M时,使用参考带宽默认值计算出的OSPF的Cost值永远是1
所以才会有在OSPF里面用命令修改参考带宽的值的命令
如果是1G和10G链路,让OSPF选择带宽高的链路,就要把参考带宽修改得大于10G

等价路由情况下调整下一跳的weight

nexthop命令用来设置等价路由的优先级。在OSPF算出等价路由后,再根据weight的权重值从这些等价路由中选择下一跳,值越小,优先级越高。

undo nexthop命令用来取消路由等价路由的优先级。

缺省情况下,weight的取值是255,等价路由不设置优先级,同时转发报文,进行负载分担。

Network 策略路由PBR

传统路由的缺陷

传统 IP 路由的概念,所谓的路由,指的是当路由器(或其他支持路由功能的网络设备〉收到一个 IP报文时,在其路由表中查询该报文的目的 IP 地址,在找到最匹配的路由表项后,按照该表项所指示的出接口及下一跳 IP 地址转发该报文从这个描述可以看出,路由行为只关心报文的目的IP地址,而并不关心其源 IP 地址当面对一些特殊的需求时,传统的路由行为是存在短板的。

路由策略和策略路由的区别

名称操作对象描述
路由策略路由信息路由策略是一套对路由信息进行过滤,属性设置等操作的方法,通过对路由的操控,来影响数据报文的转发路径。
策略路由数据报文PBR直接对数据报文进行操作,通过多种手段匹配感兴趣的报文,然后执行丢弃或者强制转发路径等操作。

策略路由的分类

本地策略路由:本地策略路由仅对本机下发的报文进行处理,对转发的报文不起作用。

接口策略路由:接口策略路由只对转发的报文起作用,对本地下发的报文(比如本地的Ping报文)不起作用。接口策略路由通过在流行为中配置重定向实现,只对接口入方向的报文生效。缺省情况下,设备按照路由表的下一跳进行报文转发,如果配置了接口策略路由,则设备按照接口策略路由指定的下一跳进行转发。

智能策略路由:智能策略路由SPR(Smart Policy Routing)是基于业务需求的策略路由,通过匹配链路质量和网络业务对链路质量的需求,实现智能选路。

策略路由的应用

一、本地策略路由

路由器有两条链路与外部网络连接。当需要对路由器本身产生的报文进行策略路由时,就需要配置本地策略路由。

二、接口策略路由

  • 基于源地址选路:可以指定内网中一些特定的用户使用高速链路,而普通用户使用低速链路。在RouterA上定义一条策略路由,并且定义路由规则和动作,例如可以在Interface3上使能策略路由。使得所有从Interface3接收的源地址为10.110.0.11/24的PC1的报文通过Interface2发送,而其他的报文可以基于目的地址的方法转发。
  • 根据服务级别选路:对于不同服务要求(如:传送速率、吞吐量以及可靠性等)的数据,根据网络的状况进行不同的路由。如:指定语音与视频等应用使用带宽大的线路,数据应用使用带宽小的线路。假设从Interface1发送报文的线路带宽大,Interface2发送报文的带宽小,则可以在RouterA的Interface3上使用策略路由,使得语音和视频数据通过Interface1发送,数据应用的数据通过Interface2发送,从而满足不同的服务要求。

三、智能策略路由

策略路由的配置步骤

1、配置接口策略路由

配置接口策略路由可以将到达接口的三层报文重定向到指定的下一跳地址。

MQC 包含三个要素
流分类 (Traffic Classifier) 、流行为 (Traffic Behavior) 和流策略 Traffic Policy) ,基本
的思路是,使用流分类来匹配具有共同特征的流 ,使用流行为定义所要执行的动作
然后通过流策略将前面定义好的流分类与流行为进行绑定,最后将流策略应用到设备上,
从而实现”针对特定的流量执行特定的动作”这一目标。

(1)首先创建 ACL3 001 ,使用该 ACL 匹配 192.168. 1. 0/24 用户发往 Server 的流量,
再创建 ACL3002 ,使用该 ACL 匹配 192.168.2.0/24 用户发往 Server 的流量
(2) 然后定义两个流分类:c1及 c2 ,分别调用 ACL3001 ACL3002
(3)接着定义两个流行为: bel be2 ,分别配置将报文重定向到 10.1.13.1,10.1.23.2
(4) 再定义一个流策略 mypolicy ,将流分类 cl 与流行为 bel 绑定,将流分类 c2
与流行 be2 绑定。
(5) 最后将流策略 mypolicy 应用在 GEO/O/O 口的入方向

实验拓扑

配置

R1、R2、R3、SW2 使用OSPF 发布 10.1.21.0、10.1.22.0、10.1.13.0、10.1.23.0、10.1.1.0

Sw1、R3 之间使用静态路由。

配置两条默认路由,分别指向两台出口设备

[R3]ip route-static 0.0.0.0 010.1.13.1
[R3]ip route-static 0.0.0.0 010.1.23.2

配置两个 ACL.分别用于匹配源地址段 192.168. 1. 0/24 92. 168.2.0/24 发往 Server 的流量

[R3]acI3001
[R3-acl-adv-3001]rule pennit ip source 192.168.1.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[R3 -acl-3001 I]quit
[R3]acl3002
[R3-acl-adv-3002]rule perrnit ip source 192.168.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[R3-acl-adv-3002]quit

配置两个流分类,在这两个流分类中分别调用已经定义好两个的 ACL:

[R3]traffic classifi cl
[R3 -cl sifier-c l]if-match acl 3001
[R3-classifier-c l]quit
[R3] classifier c2
[R3 -cl sifier-c2]iιmatch acl 3002
[R3-classifier-c2]quit

定义两个流行为,分别设置重定向的下一跳 IP 地址为 RI 及R2:

[R3 ]traffic behavior be 1
[R3-behavior-bel]redirect ip-nexthop 10.1.13.1
[R3-behavior-be 1 ]quit
[R3 ]traffic behavior be2
[R3-behavior-be2]redirect ip-nexthop 10.1.23.2
[R3-behavior-be2]ψit

定义一个流策略,将上述流分类与流动作进行绑定:

[R3]traffic policy mypolicy
[R3-traffic policy-mypolicy]classifier c1 behavior bel
[R3-trafficpolicy-mypolicy ]c1 sifier c2 behavior be2

将定义好的流策略应用在R3的 GEO/O/O 接口的入方向

[R3]interface GigabitEthernet 0/0/0
[R3-Gigabit0/O/O]traffic-policy mypolicy inbound

如此一来,当R3在 GEO/O/O 接口上收到流量时,由于该接口入方向应用了流策略,
因此 PCl 访问 Server 的流量会被强制转发给 Rl,而 PC2 访问 Server 的流量会被强制转
发给R2,至于其他流量(例如内网可能还存在 192 .1 68. 1. 0/24 192.168.2.0/24 之外的其
他网段)并不匹配流策略中的任何一个流分类,因此这些流量将按照传统 IP 路由的方式,
通过查询路由表进行转发。

再考虑 一下网络发生故障的情况。当 Rl 发生故障时, R3 将立即感知到该故障的发生,其连接 Rl 的接口状态会变成 Down ,这使得使用该接口作为出接口的默认路由立即失效,与此同时, bel 这个流行为也将失效,因为该流行为所定义的下一跳 IP 地址己经失效。此时当 PCl 访问 Server 时,上行流量到达 R3 后, R3 将依据路由表对这些报文进行转发,最终它将根据下一跳为R2的默认路由将报文转发给R2,因此 PCl 发往 Server 的流量可以在 Rl 发生故障时自动切换到R2 。R2发生故障时同理。

上述测试时请使用R1 G0/0/0 ,R2 G0/0/1 口模拟测试故障。

Index