route-map的使用介绍

article/2025/10/23 10:26:22

一、关于route-map

route map可用于路由的再发布和策略路由,还经常使用在BGP中。策略路由实际上是复杂的静态路由,静态路由是基于数据包的目标地址并转发到指定的下一跳路由器,策略路由还利用和扩展IP ACL链接,以便提供更多功能的过滤和分类。

 如下图,在R2上将OSPF路由重发布进RIP,重发布时,可以使用metric关键字来设置路由被重发布进RIP后的metric,这里设置为1,直接结果是,所有被注入到RIP的OSPF路由,metric都是1。灵活的调整一下,例如在路由被注入RIP后,192.168.1.0路由的metric为1,2.0的metric为2,而传统的重发布是无法做到的。

在这里插入图片描述
在每一个序列中,可定义供策略部署的两个元素:匹配条件(match语句)和执行动作(set语句)。你也可以定义多个条件,当条件被匹配时,就会去执行set指定的相关动作(set语句并非必须,例如:若route-map仅用于匹配感兴趣流量,则不需要set语句)。route-map被调用后,匹配动作将会从最小的序列号开始执行,如果该序列号中的条件都被匹配了,则执行set命令,若条件不匹配,则切换到下一个序列号继续进行匹配动作。
四、Route-map的特点

使用match命令匹配特定的分组或路由,set修改该分组或路由相关属性。

Route-map中的每个序列号语句相当于访问控制列表中的各行。

Route-map默认为permit,默认序列号为10,序列号不会自动递增,需要指定序列号。

末尾隐含deny any。

单条match语句包括多个条件时,使用逻辑or运算;多条match语句时,使用逻辑and运算。

五、route-map配置命令

1.创建route-map

这个全局配置命令创建一个route-map,并使用自定义的字符串来表示,一个route-map下可以定义多个序列号。匹配动作时,序列号具有优先顺序。Permit/deny关键字在不同的部署场合中作用也有所不同:

route-map test permit/deny 10

match x1

match x2,x3

set Y

route-map test permit/deny 20

match x4

set Y

2.定义匹配条件

match ip address匹配访问列表或前缀列表

match length根据分组的第三层长度进行匹配

match interface匹配下一跳出接口为指定接口之一的路由

match ip next-hop匹配下一跳地址为特定访问列表中被允许的那些路由

match metric匹配具有指定度量值的路由

match route-type匹配指定类型的路由

match community匹配BGP共同体

match tag根据路由的标记进行匹配

3.定义set动作

set metric设置路由协议的度量值

set metric-type设置目标路由协议的度量值类型

set default interface指定如何发送这样的分组

set interface指定如何发送这样的分组

set ipdefault next-hop指定转发的下一跳

set ip next-hop指定转发的下一跳

set next-hop指定下一跳的地址,指定BGP的下一跳

set as-path

set community

set local-preference

set weight

set origin

set tag

default关键字优先级低于明细路由

六、路由重发布

1.路由重发布时关联route-map
  在这里插入图片描述在上图中,我们将OSPF路由注入到RIP,而传统的做法只能对所有注入进来的路由统一设置metric,但有了route-map,在配置重发布命令时,可关联一个已经定义好的route-map,在route-map中,通过创建多个序列号语句来对不同的路由设置不同的属性或动作。

如果希望OSPF路由注入到RIP后,192.168.1.0和192.168.2.0这两条路由的metric变为2跳,3.0变为3跳。

Access-list 1 permit 192.168.1.0

access-list 1 permit 192.168.2.0

access-list 2 permit 192.168.3.0

上面创建了两个ACL,分别匹配需要差分对待的路由

route-map test permit 10

match ip address 1,当路由匹配ACL 1时

set metric 2,将metric修改为2

route-map test permit 20

match ip address 2

set metric 3

!

router rip

Redistribute ospf 1 route-map test
2.路由重发布时关联route-map的经典案例
在这里插入图片描述
在这个典型案例中,假设该网络环境中有两台路由器,分别为R1、R2,连接到了服务器群,服务器群使用两台三层交换机下挂着网络的服务器,服务器中有两个子网,分别是生产服务器的10.1.1.0/24,以及办公服务器的10.1.2.0/24。R3是接入路由器,R1、R2、R3跑OSPF。

R1、R2与三层交换机之间,假设是静态路由环境。如果要想R3下的用户在访问生产服务器时,流量往红色虚线箭头所指示的方向流动,访问办公服务器的时候往蓝色箭头方向流动。

则首先R1及R2上,让它们能够到达服务器10.1.1.0及2.0网段,需要配置两条静态路由:

Ip route 10.1.1.0255.255.255.010.1.254.1

Ip route 10.1.2.0255.255.255.010.1.254.1

下一步,要使R3能动态学习到生产服务器和办公服务器的路由,现将这两条静态路由重发布进OSPF,重发布时也有一些技巧。

R1的配置如下:

access-list 1 permit 10.1.1.0

access-list 2 permit 10.1.2.0

route-map Cisco permit 10

match ip address 1

set metric 10

route-map cisco permit 20

match ip address 2

set metric 20

router ospf 100

redisstatic route-map cisco

R2的配置如下:

access-list 1 permit 10.1.1.0

access-list 2 permit 10.1.2.0

route-map cisco permit 10

match ip address 1

set metric 20

route-map cisco permit 20

match ip address 2

set metric 10

router ospf 100

redisstatic route-map cisco

这样就实现了需求。

七、其他细节

1.验证match interface的作用1
  在这里插入图片描述
  一个route-map语句中,如果没有match语句,则匹配所有

Match interface:To distribute any routes that have their next hop out one of the interfaces specified,use the match interface command in route-map configuration mode.用中文理解为:

match interface匹配的是下一跳出接口是这个接口的路由条目。

2.验证match interface的作用2
  3.验证set ip default next-hop
  在这里插入图片描述
  先保证R1、R3往10.1.1.0的路由,在R2上做测试:

若R2上没有任何的动、静态路由,且配置如下:

access-list 1 permit 10.1.1.00.0.0.255

route-map test permit 10

match ip address 1

set ip default next-hop 10.1.12.1

则PC ping 10.1.13.0,数据走R1;

在上述基础上,如果R2增加到R3的默认路由,则PC到10.1.13.0网络的数据仍被丢给R1,即ip defaut-next-hop的优先级高于默认路由。

否定掉上面配置的默认路由,再配置一条去往10.1.13.0网络的路由,下一跳为R3,则PC到10.1.13.0网络的数据切换到R3,证明ip default next-hop的优先级低于明细路由,高于默认路由。

再次验证,只用一条ip route 10.0.0.0255.0.0.0的汇总路由,下一跳为R3,不用明细路由,同样也走R3。因此只要不是默认路由,只要路由表中存在这么一条匹配的路由,则优先走路由,没有路由的情况下再走route-map。


http://chatgpt.dhexx.cn/article/QRljoOTE.shtml

相关文章

011mmap进程通信

LINUX学习笔记 mmap 进程通信1. mmap 函数声明及头文件包含1.1 参数说明1.2 mmap 通信demo 2. mmap 注意事项:2.1 mmap 函数的保险使用方法: 3. demo 父子进程间mmap通信4. demo 非血缘关系进程间mmap通信5. mmap通信与fifo和文件通信的差异6. 匿名映射(…

Linux mmap内存映射

一、什么是mmap mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系,函数原型如下 void *mmap(void *addr, size_t length, int prot, int flags,…

Linux下mmap

目录 一.mmap简介 二.为什么需要使用mmap 三.mmap的使用 四.mmap原理 一.mmap简介 什么是mmap了?从名字上来看是memory map也就是地址映射,是一种内存映射文件的方法。mmap是一个可以将一个文件或者其它对象映射到进程的地址空间实现磁盘的地址和进程虚…

Android 进程间通信机制(二) mmap 原理

一. 前言 Binder中一次拷贝的实现就是利用mmap(memory mapping)内存映射机制,我们来看看它的工作原理. 二. 参考文章 下面这几篇文章建议先好好阅读一下,都是总结的很好的文章, 每个人理解可能不一样 笔者也是看了好多博客文章和B站视频讲解, 然后加上自己的理解后 输出的一…

Linux mmap讲解

0 引言 Linux 提供了非常强大的 mmap(2) 系统调用; 它使开发人员能够将任何内容直接映射到进程虚拟地址空间 (VAS)。 此内容包括文件数据、硬件设备(适配器)内存区域,或只是通用内存区域。 在本文中,我们将只关注使用…

mmap内存映射

内存映射通信 一、mmap (memory_map) 1.1 简介 存储映射I/O (Memory-mapped I/O) 使一个磁盘文件与存储空间中的一个缓冲区相映射。于是当从缓冲区中取数据,就相当于读文件中的相应字节。于此类似,将数据存入缓冲区,则相应的字节就自动写入…

Linux编程之mmap示例

一、问题背景 Linux下,针对文件读写操作,一般有三个步骤: 1)把文件内容读入到内存中;调用read(系统调用),从内核态读取文件内容到虚拟内存; 2)修改内存中的内…

【mmap】深度分析mmap:是什么 为什么 怎么用 性能总结

目录 有什么用? 1、文件映射 2、分配内存(匿名文件映射) mmap基础概念 mmap内存映射原理 mmap和常规文件操作的区别 mmap优点总结 mmap相关函数 mmap使用细节 性能总结 效率对比 有什么用? 将一个文件或者其它对象映射…

mmap使用

linux进程虚拟地址空间中存在一段称为mmap的内存区,当申请用户内存较大时,如大于128kb,系统一般会通过mmap系统调用直接映射一片内存区,使用结束后再通过ummap系统调用归还。关于mmap的原理网上有很多文档,这里不再赘述…

MMAP技术

1. mmap 基础概念 mmap 即 memory map,也就是内存映射。 mmap 是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后&#xff…

mmap在嵌入式中的应用

大概雍正皇帝怎么也不会想到,自己在西历2022年的男生和女生眼里,会是截然不同的两种形象。 1 以我对身边同学朋友的观察,男生们大多爱看《雍正王朝》,他们眼中的雍正,大约是个推行了“火耗归公”、“摊丁入亩”等遏制…

Linux mmap原理

Linux mmap原理 前言Linux段页式内存管理mmapmmap内存映射原理文字概述mmap函数参数介绍源码解析1. 文件映射2. 缺页异常 mmap 和常规文件操作的区别mmap 使用的细节 小结 前言 mmap是linux操作系统提供给用户空间调用的内存映射函数,很多人仅仅只是知道可以通过mm…

Linux内存管理之mmap

目录 一. mmap系统调用 1. mmap系统调用 2. 系统调用munmap() 3. 系统调用msync() 二. 系统调用mmap()用于共享内存的两种方式: 三. mmap进行内存映射的原理 一. mmap系统调用 1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多…

Linux内核黑科技——mmap实现详解

前言:故事的开始是这样的,某天在脉脉上看到有人发了下面的帖子: 想不到 mmap 都成了黑科技了,为了让大家都能了解这个黑科技,所以还是写篇文章来详细介绍一下 mmap 的实现吧。 其实,源码分析是比较难写的&…

【Linux】Linux编程之 mmap解析

前言 虚拟内存系统通过将虚拟内存分割为称作虚拟页(Virtual Page,VP)大小固定的块,一般情况下,每个虚拟页的大小默认是4096字节。同样的,物理内存也被分割为物理页(Physical Page,PP),也为4096字节。 一、…

讲一讲什么是 MMAP

1. mmap 基础概念 mmap 即 memory map,也就是内存映射。 mmap 是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后&#xff…

人工神经网络的应用有哪些方面,人工神经网络在生活中的应用

人工神经网络的应用 人工神经网络(Artificial Neural Network,简称ANN ),以数学模型模拟神经元活动,是基于模仿大脑神经网络结构和功能而建立的一种信息处理系统。人工神经网络具有自学习、自组织、自适应以及很强的非…

人工神经网络有哪些算法,神经网络都有哪些算法

人工神经网络分类方法 从20世纪80年代末期,人工神经网络方法开始应用于遥感图像的自动分类。 目前,在遥感图像的自动分类方面,应用和研究比较多的人工神经网络方法主要有以下几种:(1)BP(BackP…

深度学习-人工神经网络概述

人工神经网络 简述 很多术语听起来很唬人,“人工神经网络”就属于其中之一。在很多人看来,我们对人类的神经系统还没有研究透彻,这就来了一个“人工的”神经网络,人脑这样复杂,那么人工神经网络一定相当高深莫测。如果…

人工神经网络的应用实例,人工神经网络实际应用

神经网络算法实例说明有哪些? 在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用系统,例如,完成某种信号处理或模式识别的功能、构作专家系统、制成机器人、复杂系统控制等等。 纵观当代新兴科学技术的发展历史&…