路由策略基本原理介绍路由策略的实现原理。
路由策略使用不同的匹配条件和匹配模式选择路由和改变路由属性。在特定的场景中,路由策略的6种过滤器也能单独使用,实现路由过滤。若设备支持BGP to IGP功能,还能在IGP引入BGP路由时,使用BGP私有属性作为匹配条件。
路由策略原理图10-1 路由策略原理图

如图10-1,一个路由策略中包含N(N>=1)个节点(Node)。路由进入路由策略后,按节点序号从小到大依次检查各个节点是否匹配。匹配条件由If-match子句定义,涉及路由信息的属性和路由策略的6种过滤器。
当路由与该节点的所有If-match子句都匹配成功后,进入匹配模式选择,不再匹配其他节点。匹配模式分permit和deny两种:
- permit:路由将被允许通过,并且执行该节点的Apply子句对路由信息的一些属性进行设置。
- deny:路由将被拒绝通过。
当路由与该节点的任意一个If-match子句匹配失败后,进入下一节点。如果和所有节点都匹配失败,路由信息将被拒绝通过。
过滤器路由策略中If-match子句中匹配的6种过滤器包括访问控制列表ACL(Access Control List)、地址前缀列表、AS路径过滤器、团体属性过滤器、扩展团体属性过滤器和RD属性过滤器。这6种过滤器具有各自的匹配条件和匹配模式,因此这6种过滤器在以下的特定情况中可以单独使用,实现路由过滤。
ACL
ACL是将报文中的入接口、源或目的地址、协议类型、源或目的端口号作为匹配条件的过滤器,在各路由协议发布、接收路由时单独使用。在Route-Policy的If-match子句中只支持基本ACL。
ACL还可以在除路由策略的其他场景使用,详细描述请参见《安全配置-ACL配置》中的“原理描述”。
地址前缀列表(IP Prefix List)
地址前缀列表将源地址、目的地址和下一跳的地址前缀作为匹配条件的过滤器,可在各路由协议发布和接收路由时单独使用。
每个地址前缀列表可以包含多个索引(index),每个索引对应一个节点。路由按索引号从小到大依次检查各个节点是否匹配,任意一个节点匹配成功,将不再检查其他节点。若所有节点都匹配失败,路由信息将被过滤。
根据匹配的前缀不同,前缀过滤列表可以进行精确匹配,也可以进行在一定掩码长度范围内匹配。
说明:当IP地址为0.0.0.0时表示通配地址,表示掩码长度范围内的所有路由都被Permit或Deny。
AS路径过滤器(AS_Path Filter)
AS路径过滤器是将BGP中的AS_Path属性作为匹配条件的过滤器,在BGP发布、接收路由时单独使用。
AS_Path属性记录了BGP路由所经过的所有AS编号。AS_Path属性的详细描述请参见《IP路由配置-BGP配置》中的“原理描述-BGP基本概念”。
团体属性过滤器(Community Filter)
团体属性过滤器是将BGP中的团体属性作为匹配条件的过滤器,在BGP发布、接收路由时单独使用。
BGP的团体属性是用来标识一组具有共同性质的路由。团体属性的详细描述请参见《IP路由配置-BGP配置》中的“原理描述-BGP基本概念”。
扩展团体属性过滤器(Extcommunity Filter)
扩展团体属性过滤器是将BGP中的扩展团体属性作为匹配条件的过滤器,可在VPN配置中利用VPN Target区分路由时单独使用。
目前,扩展团体属性过滤器仅应用于对VPN中的VPN Target属性的匹配。VPN Target属性在BGP网络中控制VPN路由信息在各Site之间的发布和接收。VPN Target属性的详细描述请参见《VPN配置-BGP配置》中的“原理描述-基本原理”。
RD属性过滤器(Route Distinguisher Filter)
RD团体属性过滤器是将VPN中的RD属性作为匹配条件的过滤器,可在VPN配置中利用RD属性区分路由时单独使用。
VPN实例通过路由标识符RD实现地址空间独立,区分使用相同地址空间的前缀。RD属性的描述请参见《VPN配置-BGP配置》中的“原理描述-基本原理”。
BGP to IGP功能BGP to IGP功能使IGP能够识别BGP路由的Community、Extcommunity、AS-Path等私有属性。
在IGP引入BGP路由时,可以应用路由策略。只有当设备支持BGP to IGP功能时,路由策略中才可以使用BGP私有属性作为匹配条件。如果设备不支持BGP to IGP功能,那么IGP就不能够识别BGP路由的私有属性,将导致匹配条件失效。
路由策略应用场景介绍路由策略的应用场景。
应用路由策略过滤特定路由如图10-2所示,运行OSPF协议的网络中,RouterA从Internet网络接收路由,并为RouterB提供了部分Internet路由。其中:
图10-2 对接收和发布的路由过滤组网图

有多种方法可以实现上述要求,下面列举常用的两种:
应用路由策略实现OSPF透传其他协议路由如图10-3所示,某自治区域运行OSPF协议,作为传输区域为其他小区域提供互联。RouterA连接的IS-IS区域的路由需要通过OSPF区域透传到Router D所连接的IS-IS区域。
图10-3 OSPF透传其他协议路由组网图

为满足上述需求,可以在RouterA上配置路由策略,为引入的IS-IS路由设置Tag值。RouterD上会根据这个Tag值从众多OSPF路由中分离出这条IS-IS路由。