路由策略和策略路由配置管理一、路由策略简介路由策略主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所经过的路径。路由协议在发布、接收和引入路由信息时,根据实际组网需求实施一些策略,以便对路由信息进行过滤和改变路由信息的属性,如:1、控制路由的接收和发布只发布和接收必要、合法的路由信息,以控制路由表的容量,提高网络的安全性。2、控制路由的引入在一种路由协议在引入其它路由协议发现的路由信息丰富自己的路由信息时,只引入一部分满足条件的路由信息。3、设置特定路由的属性修改通过路由策略过滤的路由的属性,满足自身需要。路由策略具有以下价值:通过控制路由器的路由表规模,节约系统资源;通过控制路由的接收、发布和引入,提高网络安全性;通过修改路由属性,对网络数据流量进行合理规划,提高网络性能。二、基本原理路由策略使用不同的匹配条件和匹配模式选择路由和改变路由属性。在特定的场景中,路由策略的6种过滤器也能单独使用,实现路由过滤。若设备支持BGPtoIGP功能,还能在IGP引入BGP路由时,使用BGP私有属性作为匹配条件。图1路由策略原理图如图1,一个路由策略中包含N(N=1)个节点(Node)。路由进入路由策略后,按节点序号从小到大依次检查各个节点是否匹配。匹配条件由If-match子句定义,涉及路由信息的属性和路由策略的6种过滤器。当路由与该节点的所有If-match子句都匹配成功后,进入匹配模式选择,不再匹配其他节点。匹配模式分permit和deny两种:permit:路由将被允许通过,并且执行该节点的Apply子句对路由信息的一些属性进行设置。deny:路由将被拒绝通过。当路由与该节点的任意一个If-match子句匹配失败后,进入下一节点。如果和所有节点都匹配失败,路由信息将被拒绝通过。过滤器路由策略中If-match子句中匹配的6种过滤器包括访问控制列表ACL(AccessControlList)、地址前缀列表、AS路径过滤器、团体属性过滤器、扩展团体属性过滤器和RD属性过滤器。这6种过滤器具有各自的匹配条件和匹配模式,因此这6种过滤器在以下的特定情况中可以单独使用,实现路由过滤。1、ACLACL是将报文中的入接口、源或目的地址、协议类型、源或目的端口号作为匹配条件的过滤器,在各路由协议发布、接收路由时单独使用。在Route-Policy的If-match子句中只支持基本ACL。2、地址前缀列表(IPPrefixList)地址前缀列表将源地址、目的地址和下一跳的地址前缀作为匹配条件的过滤器,可在各路由协议发布和接收路由时单独使用。每个地址前缀列表可以包含多个索引(index),每个索引对应一个节点。路由按索引号从小到大依次检查各个节点是否匹配,任意一个节点匹配成功,将不再检查其他节点。若所有节点都匹配失败,路由信息将被过滤。根据匹配的前缀不同,前缀过滤列表可以进行精确匹配,也可以进行在一定掩码长度范围内匹配。说明:当IP地址为0.0.0.0时表示通配地址,表示掩码长度范围内的所有路由都被Permit或Deny。3、AS路径过滤器(AS_PathFilter)AS路径过滤器是将BGP中的AS_Path属性作为匹配条件的过滤器,在BGP发布、接收路由时单独使用。AS_Path属性记录了BGP路由所经过的所有AS编号。4、团体属性过滤器(CommunityFilter)团体属性过滤器是将BGP中的团体属性作为匹配条件的过滤器,在BGP发布、接收路由时单独使用。BGP的团体属性是用来标识一组具有共同性质的路由。5、扩展团体属性过滤器(ExtcommunityFilter)扩展团体属性过滤器是将BGP中的扩展团体属性作为匹配条件的过滤器,可在VPN配置中利用VPNTarget区分路由时单独使用。目前,扩展团体属性过滤器仅应用于对VPN中的VPNTarget属性的匹配。VPNTarget属性在BGP/MPLSIPVPN网络中控制VPN路由信息在各Site之间的发布和接收。6、RD属性过滤器(RouteDistinguisherFilter)RD团体属性过滤器是将VPN中的RD属性作为匹配条件的过滤器,可在VPN配置中利用RD属性区分路由时单独使用。VPN实例通过路由标识符RD实现地址空间独立,区分使用相同地址空间的前缀。BGPtoIGP功能BGPtoIGP功能使IGP能够识别BGP路由的Community、Extcommunity、AS-Path等私有属性。在IGP引入BGP路由时,可以应用路由策略。只有当设备支持BGPtoIGP功能时,路由策略中才可以使用BGP私有属性作为匹配条件。如果设备不支持BGPtoIGP功能,那么IGP就不能够识别BGP路由的私有属性,将导致匹配条件失效。三、配置路由策略1、配置过滤器1、配置地址前缀列表当需要根据路由的目的地址控制路由的发布和接收时,配置地址前缀列表。如果地址前缀列表不与路由策略中if-match语句配合使用,地址前缀列表中至少配置一个节点的匹配模式是permit,否则所有路由将都被过滤。具体配置[Huawei]ipip-prefix1permit10.1.0.016?greater-equalSetthegreater-than-or-equal-tovalueofthemasklength#掩码长度可以匹配范围的下限值less-equalSettheless-than-or-equal-tovalueofthemasklength#掩码长度可以匹配范围的上限值cr2、配置AS属性过滤器AS路径过滤器是利用BGP路由携带的AS-Path列表对路由进行过滤。在不希望接收某些AS的路由时,可以利用AS路径过滤器对携带这些AS号的路由进行过滤。当网络环境比较复杂时,如果利用ACL或者地址前缀列表过滤BGP路由,则需要定义多个ACL或者前缀列表,配置比较繁琐。这时也可以使用AS路径过滤器。具体配置[Huawei]ipas-path-filter1deny?TEXTAregular-expressionof1to255charactersformatchingAS_Pathattributes#用正则表达式来表示正则表达式的使用见正则表达式章节3、配置团体属性过滤器团体属性可以标识具有相同特征的路由,而不用考虑零散路由前缀和繁多的AS号。团体属性过滤器与团体属性配合使用,可以在不便使用地址前缀列表和AS属性过滤器时,降低路由管理难度。例如某公司一国外分部只需要接收国内总部和邻国分部的路由,不需要接收其他国外分部的路由。此时只需为各国分部分配不同的团体属性,就可以方便的实现路由管理,而不用去考虑每个国家内零散的路由前缀和繁多的AS号。团体属性过滤器有两种类型:基本团体属性过滤器和高级团体属性过滤器。高级团体属性过滤器支持正则表达式,比基本团体属性过滤器匹配团体属性更灵活。具体配置1、基本团体属性过滤[Huawei]ipcommunity-filterbasic1permit?INTEGER0-4294967295SpecifycommunitynumberSTRING3-11Specifyaa0-65535:nn0-65535internetInternet(well-knowncommunityattributes)#缺省情况下所有路由都具有此属性,可以被通告给所有的BGP对等体no-advertiseDonotadvertisetoanypeer(well-knowncommunityattributes)#具有此属性的路由在收到后不能被通告给任何其他的BGP对等体no-exportDonotexporttoexternalpeers(well-knowncommunityattributes)#具有此属性的路由在收到后不能被发布到本地AS之外no-export-subconfedDonotsendoutsideasub-confederation(well-knowncommunityattributes)#具有此属性的路由在收到后不能被发布到本地AS之外,也不能发布到联盟中的其他子AScr2、高级团体属性过滤[Huawei]ipcommunity-filteradvanced1permit?TEXTAregular-expressionof1to255charactersformatchingcommunityattributes#正则表达式4、配置扩展团体属性过滤器当VPN场景中需要根据RT属性进行过滤时,可以使用扩展团体属性过滤器。[Huawei]ipextcommunity-filter?INTEGER1-199Extendedcommunity-filternumber(basic)INTEGER200-399Extendedcommunity-filternumber(advanced)advancedAdvancedextcommunity-filterbasicBasicextcommunity-filter5、配置RD属性过滤器当VPN场景中需要根据RD属性进行过滤时,可以使用扩展团体属性过滤器。[Huawei]iprd-filter1?denySpecifyadenyrulepermitSpecifyapermitrule2、配置路由策略Route-Policy的每个节点由一组if-match子句和apply子句组成。if-match:定义节点匹配规则,即路由信息通过当前路由策略所需满足的条件。apply:路由策略动作,即满足if-match子句后所执行的一些属性配置动作,对路由的某些属性进行修改。1、创建Route-PolicyRoute-Policy中可以包含多个匹配条件和操作动作。Route-Policy中至少配置一个节点的匹配模式是permit,否则所有路由将都被过滤。具体配置[Huawei]route-policy1permitnode?INTEGER0-65535Indexofthenode2、配置If-match子句(可选)If-match子句用来定义路由策略的匹配条件,匹配对象是路由策略过滤器和路由信息的一些属性。在一个路由策略节点中,如果不配置if-match子句,则表示路由信息在该节点匹配成功。如果配置一条或多条if-match子句,则各个if-match子句之间是“与”的关系,即路由信息必须同时满足所有if-match子句,才算该节点匹配成功。但命令if-matchas-path-filter、if-matchcommunity-filter、if-matchextcommunity-filter、if-matchinterface和if-matchroute-type除外,这五个命令的各自if-match子句间是“或”的关系,与其它命令的if-match子句间仍是“与”的关系。例如在一个节点中配置多条if-matchas-path-filter子句,则if-matchas-path-filter子句间是“或”的关系,与其它命令的if-match子句间仍是“与”的关系。说明:if-match子句匹配未配置的过滤器时,默认该if-match子句匹配成功。对于同一个路由策略节点,命令if-matchacl和命令if-matchip-prefix不能同时配置,后配置的命令会覆盖先配置的命令。修改包括多条if-match子句相互配合的路由策略时,建议配置路由策略生效时间,否则不完整的策略会造成路由振荡。具体配置:1、创建路策略视图[Huawei]route-policytest1permitnode1[Huawei-route-policy]下列命令之间是并列关系,请根据实际情况配置路由策略中的if-match子句2、设置匹配规则[Huawei-route-policy]if-match?aclSpecifyanACL#基于acl的匹配规则as-path-filterBGPASpat