当前位置: 首页 > news >正文

路由策略/策略路由之route-policy

思科名称:route-map、match、set

Route-policy 是一个非常重要的基础性策略工具。你可以把它想象成一个拥有多个节点(node)的列表(这些 node 按编号大小进行排序)。在每个节点中,可以定义条件语句及执行语句,这就有点像程序设计里的 if-then 语句,如上图所示。

route-policy 执行的时候,是自上而下进行计算的。首先看节点 1(这里假设编号最小的节点为 1),对节点 1 中的“条件语句”进行计算,如果所有的条件都满足,则执行该节点下的“执行语句”,并且不会再继续往下一个节点进行匹配了。而如果节点 1 中,有任何一个条件不满足,则继续看下一个节点,到节点 2 中去匹配条件语句,如果全都满足则执行该节点中定义的执行语句,如果不满足,则继续往下一个节点进行,以此类推。下图就是一个 route-policy:

路由控制可以通过路由策略下 Route-Policy)实现,路策略应用灵活而广泛

  • 控制路由的发布:通过路由策略对发布的路由进行过滤,只发布满足条件的路由
  • 控制路由的接收:通过路由策略对接收的路由进行过滤,只接收满足条件的路由
  • 控制路由的引入:通过路由策略控制从其他路由协议引入的路由条目,只有满足条件的路由

配置

创建 route-policy

​[Huawei] route-policy name { permit | deny } node node​

  • Permit 关键字指定节点的匹配模式为允许。当该节点下所有的条件都被满足时,将执行该节点的 apply 子句,不进入下一个节点;如果有任何一个条件不满足,将进入下一个节点继续计算。
  • Deny 关键字指定节点的匹配模式为拒绝,这时 apply 子句不会被执行。当该节点下所有的条件都被满足时,将被拒绝通过该节点,不进入下一个节点;如果有任何一个条件不满足,将进入下一个节点继续计算。
  • 默认情况下,所有未匹配的路由将被拒绝通过 route-policy。如果 Route-Policy 中定义了一个以上的节点,则各节点中至少应该有一个节点的匹配模式是 permit。

配置 IF-math 语句

[Huawei-route-policy] if-match ?

acl 匹配ACL
cost 匹配路由信息的cost
interface 匹配路由信息的出接口
ip { next-hop | route-source | group-address }  匹配IPv4的路由信息(下一跳、源地址或组播组地址)
ip-prefix  匹配前缀列表
route-type 匹配各类型路由信息
tag 匹配路由信息的标记域
……
  • 对于同一个 route-policy 节点,命令 if-match acl 和命令 if-match ip-prefix 不能同时配置,后配置的命令会覆盖先配置的命令。
  • 对于同一个 Route-Policy 节点,在匹配的过程中,各个 if-match 子句间是“与”的关系,即路由信息必须同时满足所有匹配条件,才可以执行 apply 子句的动作。但命令 if-match route-type 和 if-match interface 除外,这两个命令的各自 if-match 子句间是“或”的关系,与其它命令的 if-match 子句间仍是“与”的关系。
  • 如不指定 if-match 子句,则所有路由信息都会通过该节点的过滤。
  • 如果多个条件在一行内显示,那么此时的关系是“与”,and。即需要同时满足这几个条件(一般不会遇到)
  • 如狗多个条件在多行内显示,那么此时的关系是“或”,or。即满足任意一个条件即可

[Huawei-route-policy] apply ?
cost  设置路由的cost
cost-type { type-1 | type-2 }  设置OSPF的开销类型
ip-address next-hop  设置IPv4路由信息的下一跳地址
preference  设置路由协议的优先级
tag 设置路由信息的标记域
……

R1 的配置:

# 定义一个acl2000,用于匹配需要放行的路由:
[R1] acl 2000
[R1-acl-basic-2000] rule permit source 172.16.1.0 0.0.0.0
[R1-acl-basic-2000] quit

# 创建一个route-policy,名字叫RP,同时配置第一个节点,节点编号为10:
[R1] route-policy RP permit node 10
[R1-route-policy] if-match acl 2000  # 在节点10中,定义了一个if-match子句,调用acl 2000
[R1-route-policy] apply cost 20 # 在节点10中,定义了一个apply子句,设置cost为20

[R1] ospf 1
[R1-ospf-1] import-route direct route-policy RP # 在ospf注入直连路由的时候调用这个route-policy

由于 route-policy 在末尾隐含“拒绝所有”的节点,因此 172.16.2.0/24 及 172.16.3.0/24 路由因为没有满足任何节点的 if-match 语句,从而不被注入到 OSPF 中。

 

 

相关文章:

  • 水下塑料垃圾识别分割数据集labelme格式2703张6类别
  • Redis实现签到功能
  • SSM智能排课系统
  • SpringBoot 自定义输出控制台图标
  • ANP协议深度解析:智能体网络协议的演进与革新
  • 完整源码停车场管理系统,含新能源充电系统,实现了停车+充电一体化
  • Java学习手册:Java反射与注解
  • 企业级JDK升级思路分享(一)JDK11升级到JDK17
  • UE5蓝图设置界面尺寸大小
  • 【小工具】定时任务执行器
  • CUDA编程高阶优化:如何突破GPU内存带宽瓶颈的6种实战策略
  • 深入详解MYSQL的MVCC机制
  • 第一章 教育与教育学
  • 提权实战!
  • Python 基础语法汇总
  • 数据运营与数据分类
  • CPU(中央处理器)
  • 28.[MRCTF2020]Xor1(保姆教程)
  • 基于PySide6与pycatia的CATIA绘图比例智能调节工具开发全解析
  • [Dify] Dify 本地部署及连接 Ollama 模型全流程指南
  • 光速晋级!2025年多哈世乒赛孙颖莎4比0战胜对手
  • 蒲慕明院士:未来数十年不是AI取代人,而是会用AI的人取代不会用的
  • 美联储官员:美国经济增速可能放缓,现行关税政策仍将导致物价上涨
  • 博物馆日|为一个展奔赴一座城!上海171家博物馆等你来
  • 国家统计局:2024年城镇单位就业人员工资平稳增长
  • 中日东三省问题的源起——《1905年东三省事宜谈判笔记》解题