route-map的原理及简单应用[通俗易懂]

route-map的原理及简单应用[通俗易懂]route-map(路由策略)

大家好,又见面了,我是你们的朋友全栈君。

Route-map

 什么是route-map

怎么说呢?你说它属于什么呢?属于路由策略?还是属于策略路由?

其实都不算,我个人理解,它只算是一个工具,上面两者都能用到

但是这个工具吧,用着还挺爽,所涉及到的范围还挺多的呢?~

 

IGP协议,BGP协议,….

Distribute,redistribute,等等,都能看到它的身影

 

初识route-map

 

1Route-map中的语句相当于acl的各行

2route-map的序列号默认为10,不会自动递增,所以需要手动的写序号

3route-map的行为默认是permit

4match——匹配条件,set——执行动作

match语句中,会有不同的表现形式

1 match X1,X2,写在一行,用,隔开时,是逻辑上的“或”关系

2 match X1  

 Match X2 写在两行时,用回车隔开,是逻辑上的“且”关系

“或”“且”想必不用多说了,很好理解 ,或,多个条件满足一个则OK

且,就是都得满足.

 

Route-map的运行方式

 route-map的原理及简单应用[通俗易懂]

 

 PS:route-map中,和ACL是一样的,最后都有一条deny 的动作,

所以,我们在部署route-map时,也要分情况的来配置一条permit

当然,是分情况哦~什么情况呢?

比如说你在做路由重分布时,只想提取某些条目,那势必要拒绝其它的

而如果在后期的BGP中,针对某些条目去施加特定属性时,就要去话茬其它没有被策略的,以保证路由条目的正常传递,

这一点在后期的各个小实验中会有明显的体现,先要清楚这个事儿~

 

实例1

 route-map的原理及简单应用[通俗易懂]

 

 如图所示,R1-R2运行RIP,R2-R3运行OSPF,在R2上进行双向重发布,

可以先来分析一下,

OSPF重分布到RIP ,需要写跳数,那请问这两个条目到达R1时的跳数是否一致?

RIP进到OSPF时,可以去修改metric-typeR3上看到的类型是否一致?

答案是肯定的,因为在重分布的时候并没有进行任何的修改,况且单独的重分布也没有办法进行设置。

而我现在的需求就是这样,OSPF进入RIP的两条,192.168.1.02跳,192.168.2.05

RIP进入OSPF172.16.1.0OE1172.16.2.0OE2

 

这时候就要请出我们的主角route-map了,

思路

1 使用ACL来匹配路由条目,(使用permit

2 定义route-map条目,匹配/不匹配

3 定义match条件

4 定义动作

5 是否考虑允许其它(最后一条有deny

6 调用route-map

 

PS:还记得之前的distribute-list吗?

Distribute-list + acl,是ACL起到决策作用(deny/permit

Route-map+ ACL route-map起到了决策作用,(所以通常使用route-map时,ACL都是permit去匹配)这一点千万要记住

 

在哪里做呢?肯定是在中间那台执行了重分布设备上

 

OSPF注入到RIP中,设置不同的metric跳数

 route-map的原理及简单应用[通俗易懂]

 

 先查看一下在路由表中的具体前缀,必须按照这里的格式写才OK

由于OSPF的网络中,默认会将 loopback接口显示为一个终端,即32位的。

以及在没有配置策略之前,R1上看到的两个条目的metric

 route-map的原理及简单应用[通俗易懂]

可以看到,都是一样的。

具体部署

R2(config)#access-list 3 per 192.168.1.1 0.0.0.0    //匹配网段

R2(config)#access-list 4 per 192.168.2.1 0.0.0.0

 

R2(config)#route-map ospf 10     //定义名字ospfroute-map,序号10

R2(config-route-map)#match ip add 3   //匹配地址3(即ACL3

R2(config-route-map)#set metric 2   //执行动作,metric2

R2(config-route-map)#exit

R2(config)#route-map ospf 20

R2(config-route-map)#ma ip add 4

R2(config-route-map)#set me 5

R2(config-route-map)#exit

R2(config)#route-map ospf 30      //最后的route-map,匹配所有,即放行

R2(config-route-map)#exit        

R2(config)#router rip

R2(config-router)#redistribute ospf 1 route-map ospf   //重分布时调用route-map

 

最后再来看一下R1上的变化吧

 route-map的原理及简单应用[通俗易懂]

 

 一个变成了2跳,一个变成了5跳,成功

 

再来看另外一侧,RIP注入OSPF后显示不同metric-type

默认情况下都会是OE2,可以手动调整为OE1

但我们要求一样一个,

 route-map的原理及简单应用[通俗易懂]

 

 现在在R3上看是都一样的

 

R2上设置route-map

R2(config)#access-list 1 per 172.16.1.0 0.0.0.255

R2(config)#access-list 2 per 172.16.2.0 0.0.0.255

 

R2(config-router)#route-map rip 10

R2(config-route-map)#ma ip add 1

R2(config-route-map)#set metric-type type-1

R2(config-route-map)#exit

R2(config)#route-map rip 20

R2(config-route-map)#ma ip add 2

R2(config-route-map)#set metric-type type-2

R2(config)#route-map rip 30 

 

R2(config-router)#redistribute rip subnets route-map rip

OK

再到R3上去看一下

 route-map的原理及简单应用[通俗易懂]

 

 

看到了吗?这就是效果。

 

那有可能你会问,这么改的意义何在呢?两条路由本来就不一样,何必要这么改?

通过部署route-map路由策略,可以使收到相同路径的路由(负载均衡)时,进行策略部署,实现干预选路。从而达到我们的预期效果。

 

 

 

以上是一个简单的实例,可以很直观的看到route-map的原理以及部署过程,

route-map中可以匹配和设置的项很多

Match匹配项

 route-map的原理及简单应用[通俗易懂]

 

 set动作

 route-map的原理及简单应用[通俗易懂]

 

 

你会发现里面有好多都是关于BGP的,是的,没错,当到了后面的BGP时,会疯狂的使用route-map来部署策略。

 

所以,如果route-map学不好,那后面的BGP你也就学的那么回事儿吧!  

 

 

—————————————

CCIE成长之路 — 梅利

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154971.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Celer cBridge: 面向Layer-1和Layer-2互联未来的高速低成本价值转移网络

    Celer cBridge: 面向Layer-1和Layer-2互联未来的高速低成本价值转移网络图一:CelercBridge架构示意图我们隆重推出CelercBridge,一个支持高速低成本的跨链支付网络。用户可以通过该网络在任何以太坊Layer-2系统、以太坊主链、以及其他Layer-1或Layer-2之内或之间进行价值转移。CelercBridge的用例包括: 在以太坊各个Layer-2之间的快速低成本支付而无需通过Layer-1。这些Layer-2网络包括OptimisticRollups(如Optimism,Arbitrum和Ce…

    2022年5月4日
    44
  • 成功解决500 : Internal Server Error问题

    成功解决500 : Internal Server Error问题成功解决500:InternalServerError问题目录解决问题解决思路解决方法解决问题500:InternalServerError解决思路内部服务器错误,说明你所浏览的服务器出现了故障解决方法可知出现的bug为AttributeError:module’tornado.web’hasnoattribute’asynchronous’参考文章:成功解决Attribu…

    2022年7月12日
    21
  • 关系数据模型的三个组成部分中不包括_数据模型常用组成部分

    关系数据模型的三个组成部分中不包括_数据模型常用组成部分关系数据模型的三个组成部分(1)关系数据模型的数据结构;(2)关系数据模型的操作集合;(3)关系数据模型的完整性约束;

    2025年6月28日
    1
  • zookeeper分布式锁实现原理(分布式锁怎么实现)

       摘要:本文要使用Zookeeper来实现一个分布式锁,是一个悲观锁。  本文源码请在这里下载:https://github.com/appleappleapple/DistributeLearning一、锁设计  获取锁实现思路:1.首先创建一个作为锁目录(znode),通常用它来描述锁定的实体,称为:/lock_node2.希望获得锁的客户端在锁目录下创建zno…

    2022年4月15日
    46
  • C语言中的LARGE_INTEGER

    C语言中的LARGE_INTEGERLARGE_INTEGER是一个union:用于表示一个有符号整数值。结构定义如下typedefunion_LARGE_INTEGER{    struct{             DWORDLowPart,            LONG HighPart             };   LONGLONGQuadPart}LARGE_INTEGE

    2022年7月25日
    9
  • php递归算法-无限极分类

    php递归算法-无限极分类functiongetTree($data,$pId){$tree=”;foreach($dataas$k=>$v){if($v[‘Id’]==$pId){$v[‘Id’]=getTree($data,$v[‘cate_Id’]);…

    2022年8月11日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号