路由策略是阿里云云网络提供的针对 BGP 路由的控制机制,支持对路由的过滤、属性修改和路径操纵。可将路由策略绑定至ECR,来控制ECR上绑定的网络实例之间的路由传播行为,实现流量调度优化、安全隔离和多链路容灾等目标。
应用场景
场景一:专线主备切换
需求:企业通过两条专线(电信 100G + 联通 10G)接入阿里云,正常情况下流量走电信链路,电信故障时自动切到联通。
方案:
在入方向路由策略中,对电信 VBR 传来的路由不修改 AS PATH
对联通 VBR 传来的路由追加AS PATH。
当电信链路故障时,电信路由撤回,流量自动切换到联通链路。
场景二:私网地址隔离
需求:防止内部私有地址段(如 10.0.0.0/8、172.16.0.0/12)的路由泄露到 IDC 或其他外部网络。
方案:
在出方向路由策略中,配置匹配条件为路由前缀包含
10.0.0.0/8和172.16.0.0/12。执行动作设置为 deny(拒绝),阻止这些路由向外发布。
场景三:基于 Community 的流量调度
需求:区分视频流量(低延迟链路)和文件传输流量(高带宽链路),分别走不同的专线。
方案:
为视频流量路由打上 Community 标记
65000:100,为文件传输路由打上65000:200。在路由策略中按 Community 匹配,将视频流量导向低延迟链路,文件传输导向高带宽链路。
工作原理
路由策略的使用分为三步:创建路由策略、添加规则、绑定到网络实例。
步骤 | 对象 | 说明 |
1. 创建路由策略 | 路由策略(RouteMap) | 规则容器,创建时需指定方向(入/出),方向创建后不可修改 |
2. 添加规则 | 规则(RouteMapRule) |
|
3. 绑定网络实例 | 关联(RouteMapAssociation) | 将路由策略绑定到具体网络实例或路由表,使策略生效 |
匹配流程
路由进入或离开网络实例时,按规则优先级从小到大逐条匹配对应方向的规则。
入方向(Inbound):控制实例路由表从关联网络实例学习哪些路由。
出方向(Outbound):控制实例向关联网络实例发布哪些路由。
匹配结果:
匹配成功:执行动作 允许(放行并修改属性)或 拒绝(丢弃路由),并退出匹配流程。
所有规则均未匹配:放行此路由。
匹配条件
一条规则可同时配置多个匹配条件,条件之间为"与"关系(全部满足才算匹配成功)。
分类 | 匹配条件 | 说明 | 示例 |
路由属性 | 路由前缀 | 匹配路由的目标 IP 前缀,支持 IPv4/IPv6,提供精确匹配和包含匹配两种模式 | 精确匹配 |
Community | 匹配 BGP Community 标记,支持精确匹配和包含匹配 |
| |
AS Path | 匹配 BGP AS 路径,支持精确匹配和包含匹配 |
| |
IP地址类型 | 匹配 IPv4 或 IPv6 |
| |
路由类型 | 匹配路由类型:暂只支持BGP |
| |
网络实例 | 源实例ID列表 | 匹配路由来源的实例 ID |
|
目的实例ID列表 | 匹配路由目标的实例 ID |
| |
源实例类型 | 匹配路由来源的实例类型 |
| |
目的实例类型 | 匹配路由目标的实例类型 |
| |
源路由表 | 匹配路由来源的路由表 ID |
| |
目的路由表 | 匹配路由目标的路由表 ID |
| |
地域 | 源地域 | 匹配路由来源的地域,最多 32 个 |
|
目的地域 | 匹配路由目标的地域,最多 32 个 |
|
执行动作
匹配成功后,执行以下动作:
允许:放行路由。
拒绝:禁止路由生效。例如在TR中的路由条目如果命中了拒绝的路由策略,该条目路由状态显示为禁止。
动作为允许时,可修改路由的 BGP 属性:
BGP属性 | 修改方式 | 说明 | 典型用途 |
AS Path | Prepend / 修改 | 在 AS 路径前追加 AS 号,或直接修改 AS 路径 | 延长 AS 路径降低路由优先级 |
Community | 添加 / 删除 | 添加或删除 BGP Community 标记 | 路由标记与分类 |
创建/管理路由策略
路由策略是规则的容器,创建时需指定名称和方向(入/出)。方向在创建后不可修改。
控制台
创建路由策略:前往CEN控制台路由策略页面,单击创建路由策略,选择策略方向和优先级。
编辑路由策略:支持修改路由策略的优先级(在目标路由策略的操作操作列单击编辑)。
删除路由策略:在目标路由策略的操作列单击删除。
删除路由策略前,需先解除该路由策略与所有网络实例的绑定关系。
API
调用 CreateRouteMap 创建路由策略。必填参数:
Name、Direction(Inbound/Outbound)。调用 DeleteRouteMap 删除路由策略。
删除路由策略前,需先解除该路由策略与所有网络实例的绑定关系。
调用 ModifyRouteMap 修改路由策略的名称或描述。
调用 DescribeRouteMaps 查询路由策略列表,支持按 ID、名称、方向过滤。
添加/管理规则
路由策略的规则(RouteMapRule)是匹配-执行单元,定义匹配条件和执行动作,按优先级顺序执行。
控制台
添加规则
编辑或删除规则
在目标规则的右上角单击编辑或删除。
API
调用 CreateRouteMapRule 创建规则。必填参数:
RouteMapId、Name、Direction。在请求中通过 MatchConditions 和 SetActions 参数指定匹配条件和执行动作。调用 DeleteRouteMapRule 删除规则。
调用 ModifyRouteMapRule 修改规则。可修改优先级、匹配条件、执行动作,但不可修改方向。
调用 DescribeRouteMapRules 查询规则列表。
绑定/解绑路由策略
通过策略关联,将路由策略绑定到ECR实例,使路由策略生效。
控制台
绑定路由策略
在ECR实例的详情页,切换到路由策略页签,单击关联路由策略。
选中目标路由策略,并选择要生效的地域,单击确认关联。
同一个资源如果绑定了多个路由策略,则这些路由策略中的所有规则优先级必须不同。
后续若需要修改生效地域,可在已关联路由策略的操作列单击编辑生效地域。
解绑路由策略
在ECR实例的详情页,切换到路由策略页签,单击解绑。
快速跳转到路由策略绑定的每个对象:在目标路由策略的详情页,切换到已绑定的资源/路由表页签,可直接单击目标实例ID跳转到详情页。
API
调用 CreateRouteMapAssociation 将路由策略绑定到网络实例。必填参数:
RouteMapId、ResourceId、ResourceType。调用 DeleteRouteMapAssociation 解除路由策略与网络实例的绑定。
调用 DescribeRouteMapAssociation 查询路由策略的关联关系。
更多信息
配额与限制
配额:
资源 | 默认限制 | 是否可提升 |
单用户可创建的路由策略数 | 100 | 否 配额名称:routemap_count_can_create_per_user |
单个路由策略可包含的规则数 | 100 | 是 配额名称:routemap_count_can_associate_per_Instance |
单个路由策略可绑定的实例数 | 100 | 否 |
单个实例/路由表可绑定的路由策略数 | 100 | 是 配额名称:routemap_max_count_rule |
路由策略限制:
路由策略创建后,不支持修改方向。
删除路由策略前,必须先解绑绑定的资源,例如ECR实例。
规则限制:
同一路由策略内不允许存在相同优先级的规则。
同一个资源如果绑定了多个路由策略,则这些路由策略中的所有规则优先级必须不同。如果因为修改规则导致优先级出现冲突,则该资源对应绑定的路由策略状态会变为关联失败。
ECR限制:
ECR 的路由策略作用范围为地域级别,您需要在绑定路由策略时指定生效地域。
ECR的 Sitelink功能和 路由禁用/启用功能 若关闭,则不传播路由。若开启,则匹配路由策略。
ECR的 AllowedPrefixes功能若配置了前缀路由,则强制发布路由(无视路由策略的拒绝动作)。若未配置,则匹配路由策略。
若 ECR 上存在跨地域的路由传播,需要对于跨地域进行相关路由策略的配置和管理。