解决方案
Route-Policy 也是个策略工具,用于过滤路由信息。与 Filter Policy 不同,Route Polocy 能为过滤后(允许通过)的路由信息设置路由属性。
Route-Policy 主要用于路由条目过滤,辅以设置路由属性。
语法格式
格式概览:
配置示例:
route-policy test permit node 10 if-match x1 if-match x2 apply y1 route-policy test permit node 20 if-match x3 x4 apply y2 ...... route-policy test permit node N if-match xn apply yn
permit / deny
指定 Route-Policy Node 的匹配模式为允许或拒绝,决定路由条目是否通过;
permit:指定 Route-Policy 节点的匹配模式为允许。如果路由与节点所有的 if-match 子句匹配成功,则执行此节点 apply 子句;否则,进行下一节点。
deny:指定 Route-Policy 节点的匹配模式为拒绝。如果路由与节点所有的 if-match 子句匹配成功,则该路由将被拒绝通过;否则进行下一节点。
node
指定 Route-Policy 的节点号。整数形式,取值范围是 0~65535;
Route-Policy 由单个或多个 Node(节点)构成,按照编号从小到大的顺序排列。Node 间的关系为“或”,Route Policy 根据 Node 编号,大小从小到大顺序执行,当某个 Node 匹配时,将不会继续向下匹配。
if-match / apply
每个 Node 由条件语句(匹配条件,if-match)及执行语句(执行动作,apply)组成。每个 Node 可包含多个 if-match,在 Node 内的多个 if-match 间的关系为“与”,即匹配所有条件语句才会执行本节点内的动作。
if-match 子句:定义该节点的匹配条件。通常是对 ACL、IP Prefix 的引用;
apply 子句:定义针对被匹配路由执行的操作。Permit 时,才使用 apply 子句,否则 apply 是无意义的。apply 用来为路由策略指定动作,用来设置匹配成功的路由的属性。在 Node 中,如果没有配置apply子句,则该节点仅起过滤路由的作用。如果配置一个或多个apply子句,则通过节点匹配的路由将执行所有apply子句。
匹配顺序
虽然 Route Policy 默认拒绝通过(但是这仅限于在路由过滤时生效。如果在 [OSPF] preference 中修改属性,则 Route Policy 仅用于匹配和执行规则,而不会触发路由过滤)
配置命令
// 创建路由策略并进入Route-Policy视图。 [Huawei] route-policy route-policy-name { permit | deny } node node // (可选)配置if-match子句 [Huawei-route-policy] if-match ? acl 匹配基本ACL cost 匹配路由信息的cost interface 匹配路由信息的出接口 ip-prefix 匹配前缀列表 …… // (可选)配置apply子句 [Huawei-route-policy] apply ? cost 设置路由的cost cost-type {type-1 | type-2} 设置OSPF的开销类型 ip-address next-hop 设置IPv4路由信息的下一跳地址 preference 设置路由协议的优先级 tag 设置路由信息的标记域 ……