路由策略——Route-policy
时间:2022-07-26
本文章向大家介绍路由策略——Route-policy,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
- 概述
- Route-policy的配置
- 1.创建route-policy
- 2.配置If-match子句
- 3.配置apply子句
- Route-policy配置示例
概述
如上图所示,我们要在R2上部署RIP到OSPF的重发布,经过前面的学习,大家已经能够很轻松地给出配置,在执行重发布的命令中,可以关联cost关键字来指定路由注入ospf之后的cost。但是这是针对所有被注入的路由的。另外import-route rip
命令会将R2路由表中的RIP路由全都注入OSPF。
如果希望只注入特定的路由,或在注入过程中过滤掉某些路由呢?或者针对不同的路由在注入后设置不同的OSPF cost呢?这个时候就可以使用到route-policy了。
Route-policy是一个非常重要的基础性策略工具。你可以把它想象成一个拥有多个节点(node)的列表(这些node按编号大小进行排序)。在每个节点中,可以定义条件语句及执行语句,这就有点像程序设计里的if-then语句,如上图所示。
route-policy执行的时候,是自上而下进行计算的。首先看节点1(这里假设编号最小的节点为1),对节点1中的“条件语句”进行计算,如果所有的条件都满足,则执行该节点下的“执行语句”,并且不会再继续往下一个节点进行匹配了。而如果节点1中,有任何一个条件不满足,则继续看下一个节点,到节点2中去匹配条件语句,如果全都满足则执行该节点中定义的执行语句,如果不满足,则继续往下一个节点进行,以此类推。下图就是一个route-policy:
Route-policy的配置
1.创建route-policy
[Huawei] route-policy name { permit | deny } node node
- Permit关键字指定节点的匹配模式为允许。当该节点下所有的条件都被满足时,将执行该节点的apply子句,不进入下一个节点;如果有任何一个条件不满足,将进入下一个节点继续计算。
- Deny关键字指定节点的匹配模式为拒绝,这时apply子句不会被执行。当该节点下所有的条件都被满足时,将被拒绝通过该节点,不进入下一个节点;如果有任何一个条件不满足,将进入下一个节点继续计算。
- 默认情况下,所有未匹配的路由将被拒绝通过route-policy。如果Route-Policy中定义了一个以上的节点,则各节点中至少应该有一个节点的匹配模式是permit。
2.配置If-match子句
[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-matchinterface
除外,这两个命令的各自if-match子句间是“或”的关系,与其它命令的if-match子句间仍是“与”的关系。 - 如不指定if-match子句,则所有路由信息都会通过该节点的过滤。
3.配置apply子句
[Huawei-route-policy] apply ?
cost 设置路由的cost
cost-type { type-1 | type-2 } 设置OSPF的开销类型
ip-address next-hop 设置IPv4路由信息的下一跳地址
preference 设置路由协议的优先级
tag 设置路由信息的标记域
……
Route-policy配置示例
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中。
- 连AI都在看《英雄联盟》游戏直播
- MAC使用adb工具
- 并发编程之master-worker模式
- Android WebView全面总结
- Url参数中出现+、空格、=、%、&、#等字符的解决办法
- 解决CSS垂直居中的几种方法(基于绝对定位,基于视口单位,Flexbox方法)
- Go语言学习之cgo(golang与C语言相互调用)
- golang之旅--数据类型之字符串
- Android保存图片到系统图库
- 基于Vue.js的大型报告页项目实现过程及问题总结(二)
- 使用Hexo搭建专属Blog
- Android项目中文字乱码问题
- golang中发送http请求的几种常见情况
- 注册中心 Eureka 源码解析 —— Eureka-Server 启动(一)之 ServerConfig
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- UOS修改盘符名称(像windows的C、D、E盘)
- 【原创】Java并发编程系列29 | ConcurrentLinkedQueue
- UOS系统安装-配置Qt环境
- C++控制台程序接收、解析参数及被如何调用、调试
- C++11标准常用特性---统一初始化
- QPainter的fillRect函数-QGradient-Preset渐变颜色预设值
- 深度学习|Tensorflow2.0进阶
- Mumble——简介及搭建
- 网站开启HSTS增强安全性
- 形式化分析工具(六):HLPSL Tutorial(Example 4,other)
- Typecho回复可见功能
- 微信小程序开发实战(13):图像组件(image)
- Typecho文章代码高亮功能
- “数据分析师”面试最怕被问到的SQL优化问题(下)
- 普通小程序的订阅消息不再限制时间