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 口模拟测试故障。

Network 路由策略在双点双向路由重分发场景中的应用

单点路由重分发是指的是在2个路由域之间的一台边界设备上执行路由重分发的场景,这种场景相对简单,缺乏冗余性,一旦边界设备上发生故障,那么譔设备所连接的2个路由域通信就中断了。

双向重分发的场景中存在两台边界设备,而且这两台设备都执行了路由重分发的操作。

双点双向路由重分发虽然增强了网络的可靠性,但是在双点(两台边界设备)上执行双向路由重分发后,次优路径、路由环路及路由倒灌等问题是非常容易被引发的。

配置完常规的路由重分发,观察R4去往1.1.1.1的路由,下一跳只出现了R2/R3其中的一台 ?

到达 OSPF 域的路由 192 168.12.0/24 192.168.13.0/24 的确是出现了等价负载分担,这属于正常。

从以上输出可以看出 R3 的路由表中1.1.1.0/24 路由竟然来源于RIP ,这显然是有问题的,因为这条路由是在 OSPF 中发布的, R3 达该目标网段,理应优选 OSPF 路由,下一跳应该是 Rl 才合理。

然而此时 R3 的路由表中该条路由却是来源于R1 ,而且下一跳为 R4 ,这就出现了次优路径现象一R3 转发到达1.1.1.0/24 的数据时,使用的转发路径为 R4-R2-Rl 。为什么会出现这样的现象?为什么只有1.1.1. 0/24 这条 OSPF 外部路由才会出现这样的现象?

在华为的数通产品上, R1 由的优先级值是 100 OSPF 路由有两个优先级,其中内部路由的优先级值为 10 ,外部路由则为 150 。

双点双向路由重分发是一个经典的课题,这种类型的网络很容易出现路由环路或者
次优路径问题。解决的方法也是多种多样的,解决方案的核心思想是在R2及R3上,将1.1.1.0/24 这条 OSPF 外部路由的优先级值调节得比RIP路由的优先级值更小(例如调整为 99)

R1 dis current-configuration
[V200R003C00]
#
sysname R1

acl number 2000
rule 5 permit source 1.1.1.0 0
#
interface GigabitEthernet0/0/0
ip address 192.168.12.1 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 192.168.13.1 255.255.255.0

interface LoopBack0
ip address 1.1.1.1 255.255.255.0
#
ospf 1 router-id 1.1.1.1
import-route direct route-policy hcnp
area 0.0.0.0
network 192.168.12.0 0.0.0.255
network 192.168.13.0 0.0.0.255
#
route-policy hcnp permit node 10
if-match acl 2000

R2 配置

sysname R2

acl number 2000
rule 5 permit source 1.1.1.0 0


interface GigabitEthernet0/0/0
ip address 192.168.12.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 192.168.24.2 255.255.255.0
#
interface GigabitEthernet0/0/2

#
ospf 1 router-id 2.2.2.2
import-route rip 1
preference ase route-policy hcnp 150
area 0.0.0.0
network 192.168.12.0 0.0.0.255
#
rip 1
undo summary
version 2
network 192.168.24.0
import-route ospf 1
#
route-policy hcnp permit node 10
if-match acl 2000
apply preference 99

#
R3 的配置

sysname R3

#
acl number 2000
rule 5 permit source 1.1.1.0 0
#

#
interface GigabitEthernet0/0/0
ip address 192.168.13.3 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 192.168.34.3 255.255.255.0

#
#
ospf 1 router-id 3.3.3.3
import-route rip 1
preference ase route-policy hcnp 150
area 0.0.0.0
network 192.168.13.0 0.0.0.255
#
rip 1
version 2
network 192.168.34.0
import-route ospf 1
#
route-policy hcnp permit node 10
if-match acl 2000
apply preference 99

#

R4 的配置

sysname R4
#

interface GigabitEthernet0/0/0
ip address 192.168.24.4 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 192.168.34.4 255.255.255.0

rip 1
undo summary
version 2
network 192.168.24.0
network 192.168.34.0
#