大家好,又见面了,我是你们的朋友全栈君。
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的运行方式
PS:在route-map中,和ACL是一样的,最后都有一条deny 的动作,
所以,我们在部署route-map时,也要分情况的来配置一条permit
当然,是分情况哦~什么情况呢?
比如说你在做路由重分布时,只想提取某些条目,那势必要拒绝其它的
而如果在后期的BGP中,针对某些条目去施加特定属性时,就要去话茬其它没有被策略的,以保证路由条目的正常传递,
这一点在后期的各个小实验中会有明显的体现,先要清楚这个事儿~
实例1
如图所示,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跳数
先查看一下在路由表中的具体前缀,必须按照这里的格式写才OK
由于OSPF的网络中,默认会将 loopback接口显示为一个终端,即32位的。
以及在没有配置策略之前,R1上看到的两个条目的metric值
可以看到,都是一样的。
具体部署
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上的变化吧
一个变成了2跳,一个变成了5跳,成功
再来看另外一侧,RIP注入OSPF后显示不同metric-type
默认情况下都会是OE2,可以手动调整为OE1
但我们要求一样一个,
现在在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中可以匹配和设置的项很多
Match匹配项
set动作
你会发现里面有好多都是关于BGP的,是的,没错,当到了后面的BGP时,会疯狂的使用route-map来部署策略。
所以,如果route-map学不好,那后面的BGP你也就学的那么回事儿吧!
—————————————
CCIE成长之路 — 梅利
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154971.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...