一、路由策略原理

——————————————————————————————————————————————————

路由策略概述

——————————————————————————————————————————————————

1.1.路由策略的作用

一提到路由策略,很多人就会想到策略路由,两个看似相同的技术,实际上一点也不同。路由策略(Routing Policy)是为了改变网络流量所经过的途径而修改路由信息的技术,主要是通过改变路由属性(包括可达性)来实现。策略路由(Policy Routing)是一种依据用户特定的策略进行路由选路的机制。

两者的区别:

路由策略:控制路由信息 。 基于控制平面,为路由协议和路由表服务。与路由协议结合完成策略。应用命令route-policy。

策略路由:基于策略的转发,失败后再查找FIB转发。基于转发平面,为转发策略服务。应用命令policy-based-route。

为了实现路由策略,首先要定义实施路由策略的路由信息的特征,即定义一组匹配规则。可以路由信息中的不同属性作为匹配依据进行设置,比如目的地址、发布路由信息的路由器地址等。匹配规则可以预先设置,然后将它们应用于路由的发布、接收和引入等过程的路由策略中。

路由器在运行路由协议后,通过路由协议进行路由信息的发布和接收。通常下,RIP会将自己的全部路由信息发布出去,同时接收邻居路由器发来的所有路由信息。而OSPF也会发布自己产生的LSA,并接收邻居发来的LSA,然后本地构建LSDB数据库,根据LSDB计算路由。但是有时为了控制报文的转发路径,路由器在发布与接收路由信息时,可能需要实施一些策略,以便对路由信息进行过滤,只接收或发布满足一定条件的路由信息。

如图:路由器R1发布给AR2三条路由。R2出于安全方面考虑,并不想全部路由都发布给ISP,所以在AR2路由器上部署过滤。仅仅将192.168.3.0/24发布给ISP。
在这里插入图片描述

无论在企业还是在运营商网络,路由策略应用的都比较普遍。如:某公司内网运行了路由协议,某些内部的路由信息不希望被外部所知道,这时可以采取路由过滤的方法把内部路由在网络边界上过滤掉。再如:某ISP因为某种原因,只想把某些特定的路由信息发给其客户,就可以采用路由过滤的手段。

路由过滤的另一个好处是节省设备的链路资源,甚至保护网络安全。广域网链路带宽是宝贵的网络资源,大量的路由更新会占用网络带宽。例如:ISP间的interlnet路由多大10万条,如果全更新一次,就会占用大量链路带宽,消耗设备资源。如果采用路由策略,仅将必要的路由发布,则会减少带宽的占用,减轻设备的负担。

——————————————————————————————————————————————————

1.2.路由过滤的方法

路由策略主要有两种应用方式:

1、路由引入过滤:路由协议在引入其他路由协议发现路由时,通过路由策略只引入满足条件的路由信息。

2、路由发布或接收过滤:路由协议在发布或接收路由信息时,通过路由策略对路由信息进行过滤,只接收或发布满足给定条件的路由信息。

在进行路由过滤时,通常还有以下几种过滤方法:

1、过滤路由协议报文:路由器间通过交换路由协议报文而学习路由。如果将路由协议报文过滤,则路由器间无法学习路由,也就达到了过滤路由的目的,过滤路由协议报文后,所有的路由信息都被过滤。

2、过滤路由协议报文中携带的部分路由信息:路由协议报文包含了路由信息,路由信息携带了路由属性(如目的地址、下一跳等),可以采取适当的过滤器来对其中某些路由信息进行过滤,而允许其他路由信息通过。

3、对从LSDB计算出来的路由信息进行过滤:如OSPF,首先交换LSA而生成本地LSDB数据库,通过SPF算法计算路由,再把路由加入到路由表,从而可以对从LSDB计算出的路由信息进行过滤。

——————————————————————————————————————————————————

1.3.路由过滤的工具

可以通过在路由器上使用静默接口来使路由器不发出协议报文,从而达到路由过滤的目的。也可以配置路由协议使用一些过滤器,对协议报文中的陆游信息进行过滤。

1、访问控制列表

访问控制列表包括针对IPV4报文的ACL和针对IPV6报文的ACL,用户在定义ACL时可以指定地址和子网范围,用于匹配路由信息的目的网段地址或下一跳地址。

2、地址前缀列表

地址前缀列表包括IPV4地址前缀列表和IPV6地址前缀列表。

地址前缀列表的作用类似ACL,但比它更灵活,且易于理解。在使用地址前缀列表过滤路由信息时,其匹配对象为路由信息的目的地址信息域。另外,用户可以指定gateway选项,指明只接收某些路由器发布的路由信息。

3、AS路径访问列表(AS-PATH)

AS-PATH仅用BGP。在BGP路由信息中,包含自治系统路径域。AS-PATH就是针对自治系统路径域来指定匹配条件。

4、团体属性列表(community-list)

仅用于BGP,在BGP路由信息包中,包含一个community属性域,用来标识一个团体。community-list就是针对团体属性域来指定匹配条件。

5、扩展团体属性列表(excommunity-list)

仅用于BGP。BGP扩展团体属性有两种:1、用于VPN的Route-Target扩展团体,另一种则是Source Of Origin扩展团体。

6、路由策略(Route Policy)

路由策略是一种比较复杂的过滤器,不仅可以匹配路由信息的某些属性,还可以在条件满足时改变路由信息的属性。路由策略可以使用前面几种过滤器来定义自己的匹配规则。

一个路由策略可以由多个节点(node)构成,每个节点匹配检查的一个单元。在匹配过程中,系统按节点序号升序依次检查各个节点。每个节点可以由一组if-match和apply子句组成。if-match子句定义匹配规则,匹配对象是路由信息的一些属性。同一节点中不同的if-match子句是与的关系,只有满足节点内所有子句指定的匹配条件,才能通过该节点的匹配测试。apply子句指定动作,也就是通过节点匹配后,对路由信息的一些属性进行设置。

一个路由策略的不同节点间是或的关系,如果通过了其中一节点,就意味着通过该路由策略,不再对其他节点进行匹配测试。

——————————————————————————————————————————————————

1.4.使用静默接口过滤路由

静默接口(Silent-interface)又称为被动接口(Passive interface)。在路由器上配置静默接口是一种简单易用的过滤路由手段,通常在局域网,主机并不需要接收路由器发出的协议报文,为了安全起见,管理员也不希望路由器发送协议报文给不相干的设备或区域。

如图:AR2与ISP相连的接口设置为静默接口,使AR2在连接ISP的接口上不发送路由协议报文,意味着ISP学不到任何路由,从而过滤全部路由。

在这里插入图片描述
RIP中配置后,接口不发送路由更新;OSPF-ISIS配置后,接口不发送HELLO报文,不建立邻居关系。但协议仍然把直连网络的路由信息从其他接口发送出去。

RIP/OSPF命令:silent-interface。
ISIS命令:isis silent。

——————————————————————————————————————————————————

1.5.地址前缀列表

地址前缀列表其实就是ACL。。。。。

例: ip ip-prefix abc index 10 permit 1.0.0.0 8
ip ip-prefix abc index 20 permit 2.2.2.0 24
ip ip-prefix abc index 30 deny 3.0.0.0 8

这里要说的就是掩码,指定掩码,和掩码范围。

可以进行掩码范围的设置,范围关系:

如果只配置了greater-equal,则掩码范围在greater-equal和32之间。greater-equal(大于等于)。
如果只配置了less-equal,则掩码范围在mask-length和less-equal之间。(小于等于)
如果同时配置了greater-equal,less-equal,则掩码范围就在greater-equal,less-equal之间。

如:指定ipaddress mask-length为0.0.0.0,只匹配默认路由。
指定ip-address mask-length为10.1.1.1 16,匹配网段10.1.0.0。
指定地址前缀范围是0.0.0.0 0 less-equal32,匹配所有路由。
指定地址前缀范围是10.1.1.0 16 greater-equal 24,则匹配10.1.0.0.网段内,掩码长度24~32之间路由。
指定地址前缀范围是10.1.1.0 16 less-equal24,则匹配10.1.0.0网段内,掩码长度16~24之间路由。
指定地址前缀范围是10.1.1.0 16 greater-equal 18 less-equal 30,则匹配10.1.0.0网段内,掩码长度18-30之间路由。

——————————————————————————————————————————————————

1.6.地址前缀列表应用

定义了前缀列表,要对其进行应用才生效。

1、Route-Policy过滤器可以引用地址前缀列表作为匹配条件。

2、各路由协议可应用filter-policy命令引用地址前缀列表(也可以引用ACL列表),对接收和发布的路由进行过滤。
过滤接收的路由:fiter-policy import ,过滤发布:fiter-policy export。

对于距离矢量和链路状态路由协议,fiter-policy命令操作过程不同。

距离矢量:基于路由表生成路由的,因此过滤器会影响:从邻居接收的路由,向邻居发送的路由。

链路状态:基于链路状态数据库生成的,fiter-policy不影响链路状态通告或链路状态数据库的完整性,因此im和ex的影响也不同。
import:只能决定哪些路由从协议路由表加入到本地IP路由表,即只影响本地IP路由表,而不影响协议路由表。
export:用来控制是否发布协议引入其他路由协议的路由,但不影响向其他路由器发布的链路状态通告。

—————————————————————————————————————————————————

1.7.Filter-policy

Filter-policy又称为过滤策略,是一种路由过滤器。在路由协议发送或接收路由时,通过在入口或出口使用Filter-policy,可以对路由进行过滤。Filter-policy可以使用访问控制列表或地址前缀列表来定义自己的匹配规则。

如图:AR1发布3条路由给AR2,出于安全考虑,AR2只能将3.0段路由发布给ISP。这时可以使用Filter-policy在AR2上,通过入接口策略过滤掉AR1发来的路由。也可以通过出接口策略不向ISP发送1.0/2.0路由。
在这里插入图片描述

路由过滤器通常应用在两种情况。

1.对接收和发布的路由进行过滤。

应用于各协议中的Filter-policy命令引用ACL和地址前缀列表,对出入方向的路由进行过滤。仅接收或发布满足条件的部分路由。

(1)距离矢量协议:基于路由表生成路由,因此过滤器会影响从邻居接收和向邻居发布的路由。意思就是这种路由协议直接对IP路由表进行过滤。

(2)链路状态协议:基于链路状态数据库生成路由,所以不影响数据库,而影响最终生成的路由。路由过滤只能在ABR、ASBR上进行,因为只有在这种设备上传递的是路由信息而非链路状态LSA。

2、引入外部路由时应用策略

(1)应用各协议的import-route命令,在各协议中引入所需要的外部路由,同时可以对引入的路由应用路由策略。

(2)在引入外部路由后,可以应用filter-policy export命令对引入的路由信息在向外发布时,进行过滤。

——————————————————————————————————————————————————

1.8.Filter-policy配置

以OSPF为例,配置OSPF路由对接收的路由进行过滤

ospf 1
filter-policy { acl-number | ip-prefix ip-prefx-name } import,配置对接收的路由进行过滤。

以BGP协议为例,配置BGP路由器对发布的路由进行过滤。

bgp 200
ipv4-family unicast 进入IPV4单播地址簇视图
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ protocol [ protocol-id ] ] ,对引入的路由信息进行过滤。

BGP对引入的路由信息进行过滤后,会将符合条件的路由信息发布给BGP对等体。

指定protocol参数,可以只对特定路由协议的信息进行过滤。如未指定,则对所有要发布的BGP路由信息进行过滤,包含引入和Network

——————————————————————————————————————————————————

1.9.Route-policy

路由策略是为了改变网络流量所经过的途径而修改路由信息的技术,主要通过改变路由属性来实现。

一个Router-policy可以由一组带有编号(node-number)的节点(node)构成,每个节点只匹配检查一个单元。在匹配过程中,按照节点编号依次顺序检查各个节点。number值越小,优先级越高。

每一个节点由一组if-match和apply子句组成。一个定义节点的匹配规则。一个定义动作。节点的匹配有允许和拒绝模式。

if-match子句定义了匹配规则,匹配对象是路由信息属性。常用的属性包括:目的地址范围、下一跳地址、出接口、开销、标记等。

对OSPF、ISIS等协议来说,路由属性还包括路由类型route-type,而对于BGP来说,路由属性还包括团体、AS路径等。以上这些路由属性都可以作为匹配规则。由if-match子句定义。

apply子句定义动作,对通过节点的路由信息属性进行设置。包括:下一跳地址、优先级、标记、开销等进行设定。对于OSPF可以设定路由的开销类型,以将通过过滤的路由改变为type 1路由或Type 2路由。对于ISIS路由,通过设定路由开销类型,可以将通过过滤的路由改变为ISIS外部路由或内部路由。

——————————————————————————————————————————————————

1.10.Route-policy配置

1、创建路由策略

router-policy route-policy-name { permit | deny } node mode。创建路由策略的节点,进入策略路由视图。

2、配置if-match子句

router-policy route-policy-name { permit | deny } node mode。进入路由策略视图。

(1)if-match acl acl-number 。配置路由策略中的if-match,匹配ACL。

(2)if-match cost cost 。配置路由信息的路由权值。

(3)if-match interface interface-type interface-number 。匹配路由信息的出接口。

(4)if-match ip { next-hop | route-source } { acl acl-number |ip-prefix ip-prefix-name}。匹配IPV4的路由信息下一跳或源地址。

(5)if-match ip-prefix ip-prefix-name。匹配地址前缀列表。

(6)if-match route-type { external-type1 | external-type 1 or 2 | external-type2 | internal | nssa-external-type 1 | nssa-external-type 1 or2 | nssa-external-type 2} 。匹配OSPF各类型路由信息。

(7)if-match tag tag。匹配OSPF路由信息的标记域。

以上各个命令之间无顺序关系。在一个节点中,可以没有if-match子句,也可以有多个if-match子句。

对于同一个route-policy节点,在匹配过程中,各个if-match子句是与的关系,同时满足所有匹配条件,才可以执行apply子句的动作。
但命令if-match route-type和if-match interface除外,这两个命令各自的子句间是或关系。

如果不指定if-match子句,则所有的路由信息都会通过该节点的过滤。

3、配置Apply子句

router-policy route-policy-name { permit | deny } node mode

执行完可以配置路由策略中的apply子句。

(1)apply backup-interface interface-type interface-number。设置备份出接口。

(2)apply backup-nexthop { ip-address | auto }。设备备份下一跳。

(3)apply cost [ + | - ] cost 。设置路由信息的开销值。

(4)apply cost-type { type-1 | type-2 }。设置OSPF的开销类型。

(5)apply ip-address next-hop ipv4-address。设置IPV4路由信息的下一跳地址。

(6)apply ospf { backbone | stub-area } 。设置OSPF路由信息的区域。

(7)apply preference preference 。设置路由协议的优先级。

(8)apply tag tag。设置路由信息的标记域。

以上命令之间没有顺序关系。

——————————————————————————————————————————————————

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值