2022-07-02 网工进阶(十五)路由策略-Route-Policy特性、策略路由(Policy-Based Routing)、MQC(模块化QoS命令行)

本文主要是介绍2022-07-02 网工进阶(十五)路由策略-Route-Policy特性、策略路由(Policy-Based Routing)、MQC(模块化QoS命令行),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Route-Policy特性

if-match子句

没有if-match子句代表匹配所有未被匹配的。

Route-Policy匹配规则

在Route-Policy中调用的匹配工具(ACL、p-prefix)中的permit代表意思为“抓取、命中”;而deny代表意思为“忽略、跳过”。

Route-Policy中的匹配模式permit代表意思为“允许通过”;而deny代表意思为“拒绝通过”。

举例说明

假设Route-Policy的过滤范围中有2条路由。

第一个节点调用的匹配工具的规则为:第1条permit、第2条deny。

当第一个节点匹配模式为permit时:会对第1条采 取放行并执行apply子句。把第2条交给后面的节点处理,因为第1条已经被“抓取”,就不会再次被后面的节点“抓取”。如果后面的节点中的匹配工具permit了第2条,处理方式同第1条。

当第一个节点匹配模式为deny时:会对第1条采取拒绝通行的处理方式。把第2条交给后面的节点处理,因为第1条已经被“抓取”,就不会再次被后面的节点“抓取”。如果后面的节点中的匹配工具permit了第2条,将会采取放行并执行apply子句

注1:Route-Policy的匹配模式为deny的情况下不会执行apply子句。

注2:通过观察实验结果,如果笔者没有猜错,匹配工具ip-prefix的index 和 策略工具Route-Policy的node 与 匹配工具ACL的rule一样在末尾都包含一条拒绝所有通过的隐藏规则。

策略路由(Policy-Based Routing)

PBR(Policy-Based Routing,策略路由):PBR使得网络设备不仅能够基于报文的目的IP地址进行数据转发,更能基于其他元素进行数据转发,例如源IP地址源MAC地址目的MAC地址源端口号目的端口号VLAN-ID等等。

用户还可以使用ACL匹配特定的报文,然后针对该ACL进行PBR部署。

若设备部署了PBR,则被匹配的报文优先根据PBR的策略进行转发,即PBR策略的优先级高于传统路由表

PBR结构

PBR与Route-Policy类似,由多个节点组成,每个节点由匹配条件(条件语句)执行动作(执行语句)组成。

每个节点内可包含多个条件语句

节点内的多个条件语句之间的关系为“”,即匹配所有条件语句才会执行本节点内的动作。

节点之间的关系为“”,PBR根据节点编号从小到大顺序执行,匹配当前节点将不会继续向下匹配。

6185380837f44870bff90b405d983f1b.png

策略路由(PBR)与路由策略区别

名称操作对象描述
路由策略路由信息路由策略是一套用于对路由信息进行过滤属性设置等操作的方法,通过对路由的操作或控制,来影响数据报文的转发路径
策略路由数据报文PBR直接对数据报文进行操作,通过多种手段匹配感兴趣的报文,然后执行丢弃强制转发路径等操作

PBR的分类

接口PBR

接口PBR只对转发的报文起作用,对本地始发的报文无效。

接口PBR调用在接口下,对接口的入方向报文生效。缺省情况下,设备按照路由表的下一跳进行报文转发,如果配置了接口PBR,则设备按照接口PBR指定的下一跳进行转发。

本地PBR

本地PBR对本地始发的流量生效,如:本地始发的ICMP报文。

本地PBR在系统视图调用。

相关命令

创建PBR

[R1]policy-based-route 10 permit node 10

设置匹配条件(匹配ACL)

[R1-policy-based-route-10-10]if-match acl 2000

设置匹配条件(匹配报文字节长度范文)

[R1-policy-based-route-10-10]if-match packet-length 0 100

设置匹配动作(指定下一跳)

[R1-policy-based-route-10-10]apply ip-address next-hop 10.1.1.3

设置匹配动作(指定出接口,路由优先级高于指定下一跳)

[R1-policy-based-route-10-10]apply output-interface GigabitEthernet 0/0/1

调用到全局(本地)PBR

[R1]ip local policy-based-route 10

调用到接口PBR

[R1-GigabitEthernet0/0/0]ip local policy-based-route 10

MQC

MQC(Modular QoS Command-Line Interface,模块化QoS命令行)是指通过将具有某类共同特征的数据流划分为一类并为同一类数据流提供相同的服务也可以对不同类的数据流提供不同的服务

MQC包含三个要素:流分类(traffic classifier)流行为(traffic behavior)流策略(traffic policy)。

流分类:配置流分类,用于匹配感兴趣数据流。可基于VLAN Tag、DSCP、ACL规则等。

流行为:将感兴趣报文进行重定向。 可以设置重定向的下一跳IP地址或出接口。

流策略将流分类和流行为绑定,对分类后的报文执行对应流行为中定义的动作。一个流策略可以绑定多个流分类和流行为。

应用流策略:1.在接口入方向上应用流策略。 2.对属于该VLAN并匹配流分类中规则的入方向报文实施策略控制。3.在全局或板卡上应用流策略。

MQC的流行为支持重定向报文,因此可以使用MQC实现IP单播策略路由。

相关命令

创建匹配(流分类)规则ACL 3000,允许目的IP地址为3.3.3.3的数据流

[R1]acl 3000[R1-acl-adv-3000]rule 5 permit ip destination 3.3.3.3 0

创建流分类10(规则之间的关系为或),设置匹配(流分类)规则ACL 3000

[R1]traffic classifier 10 operator or[R1-classifier-10]if-match acl 3000

创建流行为10,设置行为为指定下一跳

[R1]traffic behavior 10[R1-behavior-10]redirect ip-nexthop 10.1.2.2

创建流策略11,并绑定流分类10与流行为10

[R1]traffic policy 11[R1-trafficpolicy-11]classifier 10 behavior 10

在接口的入方向应用流策略11

[R1-GigabitEthernet0/0/0]traffic-policy 11 inbound 

PBR MQC配置举例

R2 配置MQC

创建匹配(流分类)规则ACL 3000,匹配目的IP地址为1.1.1.1和10.1.1.1的数据流[R2]acl 3000 
[R2-acl-adv-3000]rule 5 permit ip destination 1.1.1.1 0
[R2-acl-adv-3000]rule 10 permit ip destination 10.1.1.1 0创建流分类10(规则之间的关系为或),设置匹配(流分类)规则ACL 3000[R2]traffic classifier 10 operator or 
[R2-classifier-10]if-match acl 3000创建流行为10,设置行为为指定下一跳[R2]traffic behavior 10 
[R2-behavior-10]redirect ip-nexthop 10.1.4.4创建匹配(流分类)规则ACL 3001,匹配目的IP地址为3.3.3.3和10.1.3.3的数据流[R2]acl 3001
[R2-acl-adv-3001]rule 5 permit ip destination 3.3.3.3 0
[R2-acl-adv-3001]rule 10 permit ip destination 10.1.3.3 0创建流分类20(规则之间的关系为或),设置匹配(流分类)规则ACL 3001[R2]traffic classifier 20 operator or 
[R2-classifier-20]if-match acl 3001创建流行为20,设置行为为指定下一跳[R2]traffic behavior 20 
[R2-behavior-20]redirect ip-nexthop 10.1.2.4创建流策略11,并绑定流分类10与流行为10,绑定流分类20与流行为20[R2]traffic policy 11 
[R2-trafficpolicy-11]classifier 10 behavior 10
[R2-trafficpolicy-11]classifier 20 behavior 20在接口的入方向应用流策略11[R2-GigabitEthernet0/0/0]traffic-policy 11 inbound 
[R2-GigabitEthernet0/0/1]traffic-policy 11 inbound

R4 配置PBR

配置匹配规则ACL 3000,匹配R1的ip[R4]acl 3000
[R4-acl-adv-3000]rule 5 permit ip destination 1.1.1.1 0
[R4-acl-adv-3000]rule 10 permit ip destination 10.1.1.1 0创建PBR10 节点10[R4]policy-based-route 10 permit node 10设置匹配条件(匹配ACL 3000)[R4-policy-based-route-10-10]if-match acl 3000设置匹配动作(指定出接口g0/0/0)[R4-policy-based-route-10-10]apply output-interface GigabitEthernet 0/0/0配置匹配规则ACL 3001,匹配R3的ip[R4]acl 3001
[R4-acl-adv-3001]rule 5 permit ip destination 3.3.3.3 0
[R4-acl-adv-3001]rule 10 permit ip destination 10.1.3.3 0创建PBR10 节点20[R4]policy-based-route 10 permit node 20设置匹配条件(匹配ACL 3001)[R4-policy-based-route-10-20]if-match acl 3001设置匹配动作(指定出接口g0/0/1)[R4-policy-based-route-10-20]apply output-interface GigabitEthernet 0/0/1调用到全局(本地)PBR
[R4]ip local policy-based-route 10

模拟器拓扑文件

https://download.csdn.net/download/x629242/87581389

这篇关于2022-07-02 网工进阶(十五)路由策略-Route-Policy特性、策略路由(Policy-Based Routing)、MQC(模块化QoS命令行)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/203987

相关文章

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

sqlite3 命令行工具使用指南

《sqlite3命令行工具使用指南》本文系统介绍sqlite3CLI的启动、数据库操作、元数据查询、数据导入导出及输出格式化命令,涵盖文件管理、备份恢复、性能统计等实用功能,并说明命令分类、SQL语... 目录一、启动与退出二、数据库与文件操作三、元数据查询四、数据操作与导入导出五、查询输出格式化六、实用功

深度解析Python装饰器常见用法与进阶技巧

《深度解析Python装饰器常见用法与进阶技巧》Python装饰器(Decorator)是提升代码可读性与复用性的强大工具,本文将深入解析Python装饰器的原理,常见用法,进阶技巧与最佳实践,希望可... 目录装饰器的基本原理函数装饰器的常见用法带参数的装饰器类装饰器与方法装饰器装饰器的嵌套与组合进阶技巧

SpringBoot中4种数据水平分片策略

《SpringBoot中4种数据水平分片策略》数据水平分片作为一种水平扩展策略,通过将数据分散到多个物理节点上,有效解决了存储容量和性能瓶颈问题,下面小编就来和大家分享4种数据分片策略吧... 目录一、前言二、哈希分片2.1 原理2.2 SpringBoot实现2.3 优缺点分析2.4 适用场景三、范围分片

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

利用Python实现时间序列动量策略

《利用Python实现时间序列动量策略》时间序列动量策略作为量化交易领域中最为持久且被深入研究的策略类型之一,其核心理念相对简明:对于显示上升趋势的资产建立多头头寸,对于呈现下降趋势的资产建立空头头寸... 目录引言传统策略面临的风险管理挑战波动率调整机制:实现风险标准化策略实施的技术细节波动率调整的战略价

golang实现动态路由的项目实践

《golang实现动态路由的项目实践》本文主要介绍了golang实现动态路由项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习... 目录一、动态路由1.结构体(数据库的定义)2.预加载preload3.添加关联的方法一、动态路由1