ZCSE-204-C1路由策略和策略路由

更新时间:2023-05-16 18:02:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

ZCSE-204-C1路由策略和策略路由

路由策略和策略路由

课程目标:

了解IP路由策略的作用和工作原理

理解和掌握路由策略的配置

了解策略路由的作用

理解和掌握策略路由配置

参考资料:

ZXR10 GAR(V2.6)通用接入路由器用户手册

ZXR10 路由器/交换机命令手册

ZCSE-204-C1路由策略和策略路由

ZCSE-204-C1路由策略和策略路由

目 录

第1章 路由策略和策略路由.......................................................................................................................3

1.1 路由策略............................................................................................................................................3

1.1.1 路由策略的作用......................................................................................................................3

1.1.2 定义路由策略的方法..............................................................................................................4

1.1.3 常见的路由策略应用............................................................................................................13

1.2 策略路由..........................................................................................................................................17

1.2.1 策略路由的作用....................................................................................................................17

1.2.2 策略路由的语法规则............................................................................................................18

1.2.3 策略路由典型应用................................................................................................................19

i

ZCSE-204-C1路由策略和策略路由

ZCSE-204-C1路由策略和策略路由

第1章 路由策略和策略路由

现实中的网络环境十分复杂,比如说网络可能由多个自治系统组成,即使在单个自治系统中也经常会运行多个IGP协议,甚至在一个路由器中也可能运行多个路由协议。多个自治系统之间或路由器不同路由协议之间在进行路由信息的发布、交换的时候,由于安全、网络设计等原因,可能需要对发布、接收、引入的路由信息进行筛选或者对路由信息的属性进行修改。路由策略就可以满足这样的需求。 策略路由的作用是使用策略来控制数据包的转发。单从作用来看,路由策略和策略路由是两个完全不同的概念,当然两者还是有一定的关联的。策略路由不是一种新的路由协议,而是特殊的路由方法。本章中我们将主要以操作示例来帮助读者理解这两个概念。

1.1 路由策略

1.1.1 路由策略的作用

路由策略的作用

路由策略是针对路由信息的策略,是对路由信息进行控制的一种方法过滤路由信息的手段发布路由信息时只发送部分信息接收路由信息时只接收满足条件的部分信息设置路由协议引入的路由属性

中兴通讯学院<本文中的所有信息归中兴通讯股份有限公司所有,未经允许,不得外传>路由策略是提供给路由协议实现路由信息过滤的手段。路由协议在与对端路由器进行路由信息交换时,可能需要只接收或发布一部分满足给定条件的路由信息;路由协议在引入其它路由协议路由信息时,可能需要只引入一部分满足条件的路

3

ZCSE-204-C1路由策略和策略路由

由信息,并对所引入的路由信息的某些属性进行设置和修改以使其满足本网的要求。

路由策略常被称为路由过滤,这是因为路由策略的主要功能是过滤发布和接收的路由信息。当然路由策略不仅仅起到过滤的作用,还可以灵活地控制路由属性。如我们常用route-map的方法来调整BGP的众多属性,以控制路由表信息。

1.1.2 定义路由策略的方法

定义路由策略的方法

路由映像(route-map)

–根据匹配条件进行设置,主要由match和set语句组成

访问控制列表(access-list)

–用于配置匹配条件

前缀列表(prefix-list)

–作用类似ACL,用于配置匹配条件

自治系统路径访问列表(as-path access-list )

–仅针对BGP协议,用于匹配BGP路由信息的自治系统路径域 团体属性列表(community-list)

–仅针对BGP协议,用于匹配BGP路由信息的自治系统团体域中兴通讯学院<本文中的所有信息归中兴通讯股份有限公司所有,未经允许,不得外传>ZXR10的路由策略提供了五种定义路由策略的方法route-map、access-list、prefix-list、as-path access-list、community-list。

(1)路由映像(route-map)

路由映象是定义路由策略的方法中功能最强的一种,用于匹配给定路由信息的属性,并在这些条件匹配后对该路由信息的某些属性进行设置,或者做为过滤路由信息的方法。route-map由match 和set 语句组成,match语句用来定义匹配的条件,匹配对象是路由信息的一些属性,set语句定义匹配条件后的动作。

(2)访问控制列表(access-list)

访问控制列表是最常用的用于设置匹配条件的方法。access-list分为标准访问控制列表和扩展访问控制列表两种,扩展访问控制列表定义匹配条件更加精确。

-4-

ZCSE-204-C1路由策略和策略路由

(3)前缀列表(prefix-list)

前缀列表prefix-list的作用和access-list类似。access-list的命令采用的是包过滤的格式,在作为路由信息的判别条件时,可能会使读者难以理解。prefix-list的匹配对象为路由信息的目的地址信息域,因此prefix-list作为路由信息的判别条件比较合乎大多数人的习惯。

acl和prefix-list在作为路由信息的匹配条件时,功能是相同的。读者可以使用两者的任意一种作为路由信息的匹配条件。

(4)自治系统路径信息访问列表(as-path access-list)

使用as-path access-list作为定义路由策略的方法仅适用于BGP协议。在定义as-path access-list时会使用到用于匹配路由信息的AS路径的正则表达式。AS路径的正则表达式用来定义匹配BGP路由信息的AS路径条件,然后再根据满足匹配条件与否,选择发布或接收相关的路由信息。

(5)团体属性列表(community-list)

团体属性列表community-list仅用于BGP协议。团体属性列表是一种基于community信息的访问列表,其匹配对象是BGP路由信息的团体属性域,根据满足匹配条件与否,选择对该团体的路由信息进行发布、接收或修改属性等操作。

1.1.2.1 路由映象route-map

Route-map

route-map <map-tag>[permit|deny] [<sequence-number>]

match 匹配条件

set 动作

–Route-map由一系列的Match子句和Set子句组成

–序列号小的先执行匹配AS-path时使用AS-path list匹配Community时使用Community list匹配IP address时使用Access list

中兴通讯学院<本文中的所有信息归中兴通讯股份有限公司所有,未经允许,不得外传> -5

-

ZCSE-204-C1路由策略和策略路由

在ZXR10 GAR路由器上,route-map是在全局配置模式下配置的,其语法如下: route-map <map-tag> [permit|deny] [<sequence-number>]

match 匹配条件

set 动作

如果需要删除route-map的话,全局配置模式下在route-map前加“NO”,命令如下:no route-map <map-tag> [permit|deny] [<sequence-number>]。

语法中的Map-tag表示路由映象的名称,可以任取。我们建议取能够标识route-map作用的名字,如lower-pref,这个名字可以帮助我们一目了然的看出route-map的用途。

语法中的permit表示路由映像部分的匹配模式为允许模式。当路由项满足路由映像的某部分的match语句时将执行该部分的set语句,如不满足该部分的match语句,将执行该路由映像的下一个部分的匹配测试。

Deny表示路由映像部分的匹配模式为拒绝模式,当路由项满足该部分的match语句被拒绝的条件时,将不再进行下一个部分的匹配测试。

一个route-map由若干部分组成,每一个部分都可以由自己的match和set语句,每一个部分用sequence-number来表示。Route-map执行时,序列号小的将优先执行。如:

route-map test permit 2 //sequence-number为2

match ××××

set ××××

route-map test permit 3 //sequence-number为3

match ××××

set ××××

该示例中,route-map由2个部分组成,sequence-number为2的部分将优先执行。 Route-map由一系列Match语句和set语句组成,match用于定义匹配的条件,set用于指定满足match匹配的条件后的动作――控制发布或接收的路由,修改路由属性。

Route-map常用的match语句如下:

-6-

ZCSE-204-C1路由策略和策略路由

命令 用途

match ip address <access-list-number>|prefix-list< 用于匹配ip address prefix-list name>

match metric <metric-value>

match tag <tag-value>

match as-path <path-list-number> 用于匹配metric 用于匹配路由标志值 用于匹配BGP协议的AS

路径字段

match community-list <community-list-number> 用于匹配BGP协议的团

体字段

match route-type {<route-type> | external 用于匹配路由类型

[<external-type>]}

Route-map常用的set语句如下:

命令

set as-path prepend <as-path-number> 用途 修改BGP路由自治系统

路径

set community

{ no-advertise|no-export|no-export-subconfed} 设置BGP COMMUNITY属性

set dampening 设置BGP路由阻尼参数 <max-suppress-time>

set local-preference <value> 为自治系统路径指定优先

权值

set metric [+|-]<metric-value> 设置路由选择协议的尺度

set metric-type { internal | external | type-1 | type-2 }

设置路由选择协议的尺度-7

-

ZCSE-204-C1路由策略和策略路由

类型

set origin {igp|egp|incomplete}

set tag <tag-value> 设置BGP的

origin 设置目的路由选择协议的

标记值

1.1.2.2 访问控制列表access-list 访问控制列表ACL

最常用的用于设置匹配条件的方法

–标准ACL,只能以源地址作为过滤条件

access-list<access-list-number>{deny|permit} <source> [<source-wildcard>]

–扩展ACL,可以源和目的地址、源和目的端口、协

议类型作为精确的过滤条件

access-list<access-list-number>{permit | deny} <protocol> <source> <source-wildcard>[source <port>] <destination> <destination-wildcard>

[destination <port>]

中兴通讯学院<本文中的所有信息归中兴通讯股份有限公司所有,未经允许,不得外传>访问控制列表是最常用的用于设置匹配条件的方法。访问控制列表access-list分为标准访问控制列表和扩展访问控制列表两种。

标准访问控制列表的语法如下:

access-list <access-list-number> {deny|permit} <source> [<source-wildcard>] 扩展访问控制列表的语法如下:

access-list <access-list-number> {permit | deny} <protocol> <source>

<source-wildcard> [source <port>] <destination> <destination-wildcard>

[destination <port>]标准访问控制列表只能以源IP作为匹配要素,而扩展访问控制列表可以以协议类型、源IP、目的IP、源端口、目的端口作为匹配要素,所以扩展访问控制列表作为匹配条件时更加精确。

-8-

ZCSE-204-C1路由策略和策略路由

作为路由策略的匹配方法,访问控制列表往往不单独使用。我们通常使用访问控制列表作为route-map中match语句的匹配条件。如下配置:

access-list 10 permit 130.81.103.0 0.0.0.255

route-map source-ip permit 10

match ip address 10 //满足ACL10定义的条件的网段的

metric设置为100。

set metric 100

该配置中就是以ACL作为route-map的匹配条件。

1.1.2.3 前缀列表prefix-list

前缀列表

设置匹配条件的方法,与access-list类似

–ip prefix-list prefix-list name[<sequence-

number>]{permit | deny} network length[ ge

greater-equal| leless-equal]

–length < ge-value < le-value≤32

中兴通讯学院<本文中的所有信息归中兴通讯股份有限公司所有,未经允许,不得外传> 在作为路由信息的判别条件时,前缀列表prefix-list的作用和access-list的作用是类似的。由于access-list的命令采用的是包过滤的格式,而prefix-list的匹配对象为路由信息的目的地址信息域,因此大多数人习惯使用prefix-list作为路由信息的判别条件。

在ZXR10 GAR路由器上,prefix-list是在全局配置模式下配置的,其语法如下: ip prefix-list prefix-list name [<sequence-number>] {permit | deny} network length

[ ge greater-equal | le less-equal ]

-9

-

ZCSE-204-C1路由策略和策略路由

如果需要删除prefix-list的话,全局配置模式下在prefix-list前加“NO”,命令如下:no ip prefix-list prefix-list name。

语法中的prefix-list name表示前缀列表的名称,可以任取。一个prefix-list可以分为几个部分,由sequence-number确定这几个部分的匹配顺序,sequence-number值小的部分优先测试。

Permit表示所定义的地址前缀列表部分的匹配模式为允许模式。如果匹配模式为允许模式并且待过滤的IP地址在该部分指定的前缀范围内时,则通过该部分的过滤,如待过滤的IP地址不在该部分指定的前缀范围内,则进行下一部分测试。 Deny表示所定义的地址前缀列表部分的匹配模式为拒绝模式。如果匹配模式为拒绝模式并且待过滤的IP地址在该部分指定的前缀范围内时,则无法通过该部分的过滤,并且不会进行下一个部分的测试。

network length表示指定IP地址前缀范围(网络地址/掩码长度)。

Ge、le表示指定匹配的地址前缀范围[ge,le ]。Ge表示大于,le表示小于,取值范围为length < ge < le <= 32。

地址前缀范围有两部分,分别由length与ge、le来确定。若两部分前缀范围都被指定,则待过滤的IP必须同时匹配这两部分的前缀范围。

例如:

zxr10(config)# ip prefix-list test permit 10.1.1.0 10 ge 15 le 16

该条地址前缀列表表示,对待过滤IP地址的1~10位和15~16位与指定的IP网段10.1.1.0的1~10位和15~16位进行匹配。

作为路由策略的匹配方法,前缀列表往往不单独使用。我们通常使用前缀列表作为route-map中match语句的匹配条件。如下配置:

ip prefix-list test permit 130.81.103.0 24

route-map source-ip permit 10

match ip address prefix-list test //满足prefix-list test定义的条件的网

段的metric设置为100。

set metric 100

-10-

ZCSE-204-C1路由策略和策略路由

1.1.2.4 自治系统路径信息访问列表as-path access-list

自治系统路径信息访问列表

定义AS路径的表达式

–AS路径记录了BGP路由信息经过的AS系统

–ipas-path access-list <access-list-number>

{permit|deny} <as-regular-expression>

中兴通讯学院<本文中的所有信息归中兴通讯股份有限公司所有,未经允许,不得外传>使用as-path access-list作为定义路由策略的方法仅适用于BGP协议。路由信息中,包含自治系统路径字段。在BGP协议路由信息交互时候,路由信息经过的自治系统路径会记录在此字段中。假设200.126.0.0/16是由AS100始发的路由,AS500通过AS200学习到此路由,那么在AS500中看到的这段路由的AS路径应该是(200,100)。(200,100)就表明学习到的路由信息先后经过了AS100和AS200。 在定义as-path access-list时会使用到用于匹配路由信息的AS路径的正则表达式。AS路径的正则表达式用来定义匹配BGP路由信息的AS路径条件。AS正则表达式常用的字符如下: 字符 含义

输入字符串的结束

任意单字符

字符串的开始和结束

输入字符串的开始 $ . _ ^

使用这些常用的AS正则表达式的字符,可以灵活的表示AS路径信息。

-11

-

ZCSE-204-C1路由策略和策略路由

^$表示不经过任何AS的路径;

^100$表示源于AS100而且没有经过任何其他AS的路径;

_100$表示所有源自AS100始发的路径;

_100_表示经过AS100的路径;

^100_表示最后经过AS100的路由

作为路由策略的匹配方法,as-path access-list往往不单独使用。我们通常使用as-path access-list作为route-map中match语句的匹配条件。如下配置: route-map test permit 3

match as-path 10

set+动作

ip as-path access-list 10 permit ^$ //as-path access-list10 为允许从自己开始到

自己结束的AS路径团体属性列表

community-list

团体属性列表

定义团体属性列表的表达式

–ip community-list<community-list-number>

{permit|deny} <community-number>

与route-map的配合使用的示例

–route-map test permit 3

match community-list1

set +动作

ip community-list 1 deny 5

ip community-list 1 permit any

community-list 1表示团体5的路由之外,允许其它所有路由

中兴通讯学院<本文中的所有信息归中兴通讯股份有限公司所有,未经允许,不得外传>团体属性列表community-list仅用于BGP协议。BGP协议的路由信息包中,包含一个community属性字段。这里的团体,实际上是一种根据路由信息包发往的目的地址将其分组的方法,分组以后再对整组的路由信息作出相应的处理。

-12-

ZCSE-204-C1路由策略和策略路由

团体属性列表是一种基于community信息的访问列表,其匹配对象是BGP路由信息的团体属性域。通常团体属性列表只是作为一种匹配条件,不单独使用。如上面的例子中,团体属性列表作为route-map的匹配条件,根据满足匹配条件与否,选择相应的动作。

1.1.3 常见的路由策略应用

常见的路由策略应用

有选择的接收路由信息

–RIP和BGP对邻居发布的路由直接进行选择

–链路状态协议无法直接对LSA选择,只能在选择是

否导入路由表

有选择的发布路由信息

–neighbor 100.100.100.1 route-maptest out

route-map test permit 3

match ipaddress 10

access-list 10 permit 200.1.1.0 0.0.0.255

设置引入路由的属性

–redistribute<protocol>[metric<value>] [route-map<routemap-name>]

中兴通讯学院<本文中的所有信息归中兴通讯股份有限公司所有,未经允许,不得外传> 使用路由策略无非是为了达到以下目的:

1 有选择的接收路由信息

选择接收路由信息的时候,针对距离矢量路由协议和链路状态路由协议是不一样的。象RIP和BGP之类的距离矢量路由协议对邻居发布的路由信息直接筛选,OSPF等链路状态协议不能控制导入的LSA,只能控制是否导入路由表。 2 有选择的发布路由信息

由于安全或者网络设计的原因,需要控制发布的路由信息。上面的例子中,以访问控制列表作为匹配条件,只允许把200.1.1.0/24的路由信息发布出去。思考一下,运营商或用户可能由于地址匮乏的原因,会使用私网地址作为设备的互联地址。为了防止在对外发布路由的时候把私网路由发布出去,我们是不是可以应用路由策略的方法过滤私网路由,而只发布公网路由呢?

3 设置引入路由的属性

-13

-

ZCSE-204-C1路由策略和策略路由

使用路由策略,可以批量的把一种路由协议的路由引入到另外的路由协议中,而且在引入外部路由的时候,还可以重新设置路由的属性。这种方式可以灵活的控制转发路径。

1.1.3.1 路由策略的应用实例一

上面的组网结构中,Router-A和Router-B运行EBGP,Router-A的AS号为100, Router-B的AS号为200。Router-B需要对Router-A发布的路由进行筛选,只接收Router-A发布的20.1.1.1/32网段路由。

以下是Router B的关键配置:

router bgp 200 // 配置BGP协议

neighbor 10.1.1.1 remote-as 100

neighbor 10.1.1.1 route-map test in //只接收route-map test定义的路由 route-map test permit 3 // 配置route-map

match ip address 10

access-list 10 permit 20.1.1.1 0.0.0.0

-14-

ZCSE-204-C1路由策略和策略路由

1.1.3.2 路由策略的应用实例二

上面的组网结构中,Router-A和Router-B运行EBGP,Router-A的AS号为100, Router-B的AS号为200。Router-B和Router-A存在两条链路,Router-B可以从两个方向学到路由30.1.1.1/32。Router-B通过路由策略优先使用从10.1.1.2学习到的路由,当10.1.1.2的链路中断时,可以切换到20.1.1.2的链路,不至于导致全网中断。

以下是Router B的关键配置:

router bgp 200 //配置BGP协议

neighbor 10.1.1.1 remote-as 100

neighbor 10.1.1.1 route-map higher-pref in

neighbor 20.1.1.1 remote-as 100

neighbor 20.1.1.1 route-map lower-pref in

route-map higher-pref permit 10 //配置route-map

set local preference 200

route-map lower-pref permit 10

set local preference 100路由策略的应用实例三

-15

-

ZCSE-204-C1路由策略和策略路由

上面的组网结构中,Router-A和Router-B运行OSPF,两台路由器都在OSPF的area0中。Router-A的loopback1的地址20.1.1.1/32,loopback2的地址30.1.1.1/32。 Router-A引入直连路由20.1.1.1/32和30.1.1.1/32,在Router-B上使用路由策略来过滤30.1.1.1/32网段。

以下是Router B的关键配置:

router ospf 200 //配置OSPF协议

network 40.1.1.0 0.0.0.3 area 0

filter 30.1.1.1 255.255.255.255

注意:RIP和BGP之类的距离矢量路由协议对邻居发布的路由信息直接筛选,OSPF等链路状态协议不能控制导入的LSA,只能控制是否导入路由表。

所以上面的例子中,在route-B的LSA中是可以看见20.1.1.1/32和30.1.1.1/32相关的链路状态信息的。route-B上启用了filter命令后,将禁止20.1.1.1/32导入路由表。

-16-

ZCSE-204-C1路由策略和策略路由

1.2 策略路由

1.2.1 策略路由的作用

策略路由的作用

普通的路由方式:按照路由表进行路径选择

策略路由方式:根据策略进行路径选择,不走寻常路

路由策略:对路由信息进行控制的一种方法

中兴通讯学院<本文中的所有信息归中兴通讯股份有限公司所有,未经允许,不得外传> 普通的路由、策略路由和路由策略这些概念很容易混淆,我们对三个概念进行对比,不难看出他们的差别。

路由器最常用的工作方式就是按照路由表的内容进行路径的选择,我们称之为普通的路由转发方式。

策略路由方式和普通的路由转发有明显的差别,他可以忽视路由表的内容,按照网管人员定义的策略进行路径的选择。

路由策略是一种控制路由信息的方法,如过滤发布和接收的路由,或者修改发布和接收路由信息的某些属性。当然,控制了路由信息的内容,也就决定了包的转发路径,除非使用了策略路由的方式。

-17

-

ZCSE-204-C1路由策略和策略路由

1.2.2 策略路由的语法规则

策略路由的语法规则

route-map <map-tag>[permit|deny] [<sequence-number>]

match 匹配条件

set 动作

在接口上应用

interface ××

ippolicy route-map ××

中兴通讯学院<本文中的所有信息归中兴通讯股份有限公司所有,未经允许,不得外传> 策略路由的配置分为两大部分:定义策略和在接口上应用策略。

定义策略的方法只有route-map一种,而定义路由策略可以有四种方法。

策略路由的route-map和路由策略的route-map在语法上没有区别,都有match匹配条件和set动作。但是策略路由route-map中的match匹配条件只有访问控制列表的方式,set动作只有强制指定下一跳IP和下一跳接口两种。路由策略route-map中匹配条件有很多种,set后面都是针对路由信息属性相关的动作。路由策略中route-map的match和set语句的具体命令,请参见上文中的路由映象route-map一节。

定义策略只是完成了策略路由的一步,只有在接口上应用了定义的策略,策略路由才能真正生效。

-18-

ZCSE-204-C1路由策略和策略路由

1.2.3 策略路由典型应用

上面的组网结构中,Router-A和Router-B运行OSPF,两台路由器都在OSPF的area0中。Router-A为网络的出口,连接着两个ISP。其中202.102.11.0/24是ISP1分配的地址,222.1.0.0/24是ISP2分配的地址。现要求使用202.102.11.0/24网段的下一跳为ISP1,使用222.1.0.0/24网段的下一跳为ISP2。这种特殊的需求,只能使用策略路由才能实现。

Router-A的关键配置如下:

interface fei_1/1

ip address 61.132.77.106 255.255.255.252

//在fei_1/1接口上应用定义的策略

ip policy route-map test

access-list 101 permit ip 202.102.11.0 0.0.0.255 any

access-list 102 permit ip 222.1.0.0 0.0.0.255 any

route-map test permit 5

//满足访问控制列表定义的101,下一条指向ISP1的IP

match ip address 101

-19

-

本文来源:https://www.bwwdw.com/article/yi94.html

Top