一、Route-map概述

1.技术背景

首先来初步认识一下route-map。看上图,我们在R2上,将OSPF路由重发布进RIP,前面已经说过了,在重发布时,可以使用metric关键字来设置路由被重发布进RIP后的metric,这里设置为1,那么直接的结果是,所有被注入到RIP的OSPF路由,metric都是1。那么如果我希望做些灵活性的调整呢?例如我希望在路由被注入RIP后,192.168.1.0路由的metric为1,2.0的metric为2如此这般呢?传统的重发布是没办法做到的。

那么就可以使用route-map这个工具,也就是说,我们可以在执行重发布的时候,关联一个route-map,来实现我刚才所说的这个功能。

2.Route-map的使用场景

重分发期间进行路由过滤或执行策略

PBR(策略路由)

NAT(网络地址转换)

BGP中的策略部署

其他用途

3.Route-map初相识

首先明确一下,route-map是一个非常重要的工具,使用的范围非常广泛。在定义route-map的时候,我们采用route-map

关键字,关联一个自定义的参数,例如test来创建。一个route-map列表,由这个test字符串统一表示,你可以在一个route-map下定义多个序列,用十进制的序列号来表示,例如上图中的,10、20。

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

4.Route-map的特点

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

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

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

末尾隐含deny any

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

二、配置命令

1.创建route-map

route-map

这个全局配置命令创建一个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 ip default 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中,我们可以通过创建多个序列号语句,进而对不同的路由,设置不同的属性或动作。

例如这个例子,我们希望注入进来后,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  !! 当路由匹配ACL1时

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.0 255.255.255.0 10.1.254.1

Ip route 10.1.2.0 255.255.255.0

10.1.254.1

接着为了让R3能够动态学习到生产及办公服务器的路由,现在需要将这两条静态路由重发布进OSPF,当然,在重发布的时候就有技巧了。(原创博文,红茶三杯http://weibo.com/vinsoney版权所有,转载请注明出处)

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

redis static 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

redis static 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.0 0.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的优先级高于默认路由。

No掉上面配置的默认路由,再配一条去往13.0网络的路由,下一跳为R3,则PC到13.0网络的数据切换到R3 证明ip

default next-hop的优先级低于明细路由,高于默认路由 。

再次验证,不用明细路由,而是用一条ip route 10.0.0.0

255.0.0.0的汇总路由,下一跳为R3,效果同上,也走R3。因此只要不是默认路由,只要路由表中存在这么一条匹配的路由,则优先走路由,没有路由的情况下走route-map。

关于route-map在NAT中,以及BGP策略中的使用,这里暂时不讨论,有兴趣的话,请查阅本人博客上的相关文档。

(原创博文,红茶三杯http://weibo.com/vinsoney版权所有,转载请注明出处)

router走差分_route相关推荐

  1. Altium Designer---------------AD15如何走差分线(最全教程)

    ** 本次教程先介绍正确用法,后面举例一些非常常见的错误用法. ** 第一步,把要走差分线的网路命名为_P,_N 然后Design->update PCB(进行DRC检查再把原理图导入PCb), ...

  2. Altium Desinger怎么走差分蛇形线、单线蛇形线

    转自:http://bbs.eeworld.com.cn/forum.php?mod = viewthread&tid = 482917&fromuid = 536508       ...

  3. allegro差分信号走线_浅谈硬件设计中的一些思路和方法(5)—信号系统,又学到了...

    房价在涨,客户需求在涨,体重在涨,房租在涨,火气在涨,唯一不涨的大概只有薪资了??? 现在客户好套路啊~我们卖的A+B,他非要让我在B上开一个兼容C的口子,然后他用C+B.问题是C不是我们的产品啊~让 ...

  4. ad 原理图差分线_Altium差分线如何从原理图到PCB布线?

    差分线是两根线同时传输信号的一种布线,这种信号一般两根线的信号振幅相同,相位相反,例如:USB的D+和D-信号,我们在设计时,要用差分线来布线. 布线时,尽量从原理图设置再导入到PCB中,为什么要在原 ...

  5. Cadence allegro PCB快速自动创建差分对

    当你需要走差分线时,需要把两个NET设置为差分对.如果你的差分对很多时,一个个设置差分对耗时费力.在原理图中,需要对差分信号合理的命名,使得能够更好地使用PCB系统自带的创建差分对的功能. 1.如何创 ...

  6. FOC——17.PCB布局和走线

    文章目录 1.布局注意事项 2.走线的注意事项 2.1.逆变桥的大电流回路尽量短(Vbus GND UVW) 2.2逆变桥和Vbus地之间的电容尽量靠近MOS管 2.3.预驱动芯片的地不能与Vbus的 ...

  7. PADS-Layout学习笔记

    PADS-Layout学习笔记 PADS-Layout设置,在画pcb之前设置好 颜色设置 无模命令快捷键 PO 切换走线层自动铺铜显示 DO 孔的显示切换 SPO 切换混合层自动铺铜显示 Q 快速测 ...

  8. Pads-Layout 流程

    EDA软件: 目前国内市场常用的三种主流PCB设计软件 1.Altium Designer (简称AD) 2.PADS 3.Cadence allegro 除了这3个软件以外,还有很多软件,如Cads ...

  9. ---Pcie基本概念普及(扫盲篇--巨适合新手)

    转发:添加链接描述 PCIE由早期得PCI扩展衍生而来并且对兼容PCI,两者得主要区别在于并行到串行得切换,且速率更快.目前主板上越来越多得设备都挂载到PCI总线下面,甚至部分硬盘也会挂载PCI总线下 ...

  10. CI框架源码阅读笔记4 引导文件CodeIgniter.php

    到了这里,终于进入CI框架的核心了.既然是"引导"文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http:// ...

最新文章

  1. 有规律格式化文本文件插入数据库
  2. JavaScript深入之执行上下文栈
  3. 5000量子比特的商用计算平台发布!D-Wave:这是商业应用的唯一选择
  4. 第五十三期:公司如何选择数据库?DynamoDB、Hadoop和MongoDB 大比拼
  5. java和网易我的世界有什么区别_网易我的世界手机版对比正版JAVA版我的世界有什么区别?...
  6. qt创建简单的单例模式
  7. 关于神经网络的调参经验技巧和调参顺序
  8. 42、最大子序和(python)
  9. 搜索神器Everything的功能技巧(非NTFS文件搜索,FTP/HTTP服务)
  10. python3 根据种子文件torrent获取磁力链接
  11. ALINETEK 2.8寸 TFTLCD驱动原理
  12. UmiJS基础UmiJS+Dva
  13. 一次函数的斜率公式_斜率K的公式?
  14. 更改项目名后出现Could not resolve type id ** into a subtype的报错
  15. 8款精致的纯CSS3按钮特效
  16. (Attention机制原文)论文阅读:Neural Machine Translation by Jointly Learning to Align and Translate
  17. 如何提高服务器并发能力
  18. 有关UEFI,GPT分区以及系统引导等问题的了解
  19. SLURM 节点状态总是drained问题
  20. python中θ符号怎么打出来_利用python打印特殊符号

热门文章

  1. 赵云传 java游戏_三国赵云传2RPG版
  2. 百度螺旋桨PaddleHelix论道“AI+生物计算”,加速推进多维价值释放
  3. 咸鱼Maya笔记—Maya 绘制多边形
  4. 戴尔服务器r720u盘装系统,DELL R720服务器U盘安装操作系统指南
  5. AST介绍:解析html生成语法树
  6. 盘点:2022年10款比较火的项目管理软件
  7. CDN学习笔记二(技术详解)
  8. 加密狗破解加密狗复制
  9. jdbc连接timesten_JDBC远程连接TimesTen
  10. 基于Linux下的英英词典