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

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

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

Route-map

 什么是route-map,

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

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

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

 

IGP协议,BGP协议,….

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

 

初识route-map

 

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

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

3、route-map的行为默认是permit

4、match——匹配条件,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-type,R3上看到的类型是否一致?

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

而我现在的需求就是这样,OSPF进入RIP的两条,192.168.1.0为2跳,192.168.2.0为5跳

RIP进入OSPF,172.16.1.0为OE1,172.16.2.0为OE2

 

这时候就要请出我们的主角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     //定义名字ospf的route-map,序号10

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

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

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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • LNK2001:无法解析外部符号_sprintf

    LNK2001:无法解析外部符号_sprintfLNK2001:无法解析外部符号_sprintf与LNK1104:无法打开文件“kernel32.lib”_臻訾胃的博客-CSDN博客从网上下载一个VS的demo,编译之后老是报LNK2001:无法解析外部符号_sprintf的错误,找了好久,发现在项目属性->链接器->输入->附加目录依赖项添加legacy_stdio_definitions.lib即可解决问题。但不知道legacy_stdio_definitions.lib这玩意儿干啥的,有兴趣的自己百度吧..

    2022年6月28日
  • phpstorm激活码 3月最新注册码

    phpstorm激活码 3月最新注册码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
  • 科研神器(高效开发工具)

    科研神器(高效开发工具)

    2020年11月8日
  • 连接kafka报错:1 partitions have leader brokers without a matching listener「建议收藏」

    连接kafka报错:1 partitions have leader brokers without a matching listener「建议收藏」服务输出部分错误日志截图2020/12/25下午2:32:442020-12-2514:32:44.320WARN[tag-service,,,]1—[ntainer#4-0-C-1]org.apache.kafka.clients.NetworkClient:[ConsumerclientId=consumer-5,groupId=statistic-processor]1partitionshaveleaderbrokerswithoutamatchi

    2022年6月26日
  • 心形函数的几种表达式怎么求_心形曲线函数4种表达式

    心形函数的几种表达式怎么求_心形曲线函数4种表达式用两个函数表示:f(x)=sqrt(1-(abs(x)-1)^2)h(x)=-2*sqrt(1-0.5*abs(x))也可以根据图中的q(x)画出心形的内部:q(x)=(f(x)-h(x))/2*cos(200*x)+(f(x)+h(x))/2用一个函数表示,我拟合了很久才画出来的:f(x)=(0.64*sqrt(abs(x))-0.8+1.2^abs(x)*cos(200*x))*sqrt(cos(x))定义域:-pi/2<=x<=pi/2我个人觉得要比

    2022年10月9日
  • java中的递归算法_java递归算法详解

    java中的递归算法_java递归算法详解Java中的递归算法虽然简单,但想要精通也是有着一定的难度的,本篇文章我们就来详细了解下递归算法。什么是递归?一般的说,递归算法是一种直接或间接地调用自身的算法。在程序中,递归算法能够使算法的描述简洁而且易于理解。递归分几类?递归通常分为两类,直接递归和间接递归:1、直接递归称为方法自身调用自己。2、间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。递归怎么实现实现?例://递归…

    2022年7月7日

发表回复

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

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