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

相关文章

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

SpringShell命令行之交互式Shell应用开发方式

《SpringShell命令行之交互式Shell应用开发方式》本文将深入探讨SpringShell的核心特性、实现方式及应用场景,帮助开发者掌握这一强大工具,具有很好的参考价值,希望对大家有所帮助,如... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定

SpringRetry重试机制之@Retryable注解与重试策略详解

《SpringRetry重试机制之@Retryable注解与重试策略详解》本文将详细介绍SpringRetry的重试机制,特别是@Retryable注解的使用及各种重试策略的配置,帮助开发者构建更加健... 目录引言一、SpringRetry基础知识二、启用SpringRetry三、@Retryable注解

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤