Router Map

Route map的使用:

1、路由再分布的时候,对路由进行过滤,比使用distribute-list更灵活;

2、策略路由;

3、NAT

4、BGP路由策略的实现;

Route map的操作:

1、Router map 由一组语句组成;

2、语句的处理时自上而下的;

3、一旦找到匹配的语句,后续的操作将不再进行;

4、其中的序列号将用来指定route map的顺序,可以增加或者更改某条特定的语句;

Route-map my-map permit 10

{ match statements }

{ set statements }

Route-map my-map deny 20

{ match statements }

{set statements }

Route-map my-map permit 30

{ match statements }

{set statements }

对于上面括号中的match条件与set动作,可以两者都有,可以只包含一者,也可以一个都没有。并且设置序列号的时候,中间的间隔设置的尽量要大一些,为的就是方便以后对这个router-map的扩充,容易往里面加特殊应用的语句。

配置Router-map:

1、              设置router-map的名字和条件----

Router(config)#route-map {名字} [ permit | deny ] [sequence-number]

2、              定义匹配操作的条件----

Router(config-route-map)#match {conditions}

3、              设置匹配成功的语句的动作----

Router(config-route-map)#set {conditions}【这是一个非常强大的命令】

【match与set下面到底包含着什么东西,我们可以在设备上利用帮助命令进行查询。】

Route-map独自应用的时候非常的少,一般都是和路由重分发配合使用,或者为了实现“策略路由”!反正就是“Route-map”的功能很强大,我们在做针对路由的策略的时候,应该首先考虑到它~~~

看看下面的一个应用实例:

Route-map与路由重分发的结合使用

Router(config)# router ospf 10

Router(config-router)# redistribute rip subnets route-map redis-rip

下面显示的就是路由器上的关于Route-map的配置:

Route map redis-rip permit  10

Match ip addresss 23 29

Set metric 500

Set metric-type type-1

Route map redis-rip deny 20

Match ip address 37

Router map redis-map permit 30

Set metric 5000

Set metric-type type-2

Access-list 23 permit 10.1.0.0 0.0.255.255

Access-list 29 permit 172.16.1.0 0.0.0.255

Access-list 37 permit 10.0.0.0 0.0.0.255

现在来看下route-map的内容:第一个语句表达的非常清楚,就是将匹配访问控制列表23、29的地址的路由更新设置成类型1且度量值为500。

第二个语句
其中只包含一个match语句,但是上面的一句是:deny
20。这里的关键字“deny”也是至关重要的啊~~想要表达的意思是:和访问控制列表37匹配的路由更新包压根就不能被重分发进入到OSPF。为什么?
就是因为上面的那句“deny20”,已经被“拒绝”了。

第三个语句,这句呢,只包含set语句,没有匹配条件。想要表达的意思就
是:不满足上面的那两个语句的路由更新包,都执行我这个语句中所包含的动作吧。并且得看清楚了,这个序列号为30的语句,用的关键字可是“permit”
【有了这个关键字,即使下面包含的子语句中不包含任何的内容的话也没关系,那么表达的意思就是:OK,我允许了,你们可以重分发进来,不用采取什么特殊的
处理,你们按照你们默认的处理方式就可以了。当然了,这得是在先同意的前提下】,如果是“deny”的话,那就相当于将不符合前面两个语句的路由更新包全
都拒绝掉了。其实,如果我们只有前面的10与20,没有后面的30,系统所采取的动作也是“将不符合前面两个语句的路由更新包全局拒绝掉”。这就相当于访
问控制列表中最后一个默认的deny any any。

PBR:policy based route(基于策略的路由)

可是实现各种路由策略-----IP路由一般是基于目标地址进行路由的,而PBR可以使得路由基于源地址;

但是呢,PBR实现路由策略,需要通过调用Route-map来实现。

PBR的优点:

基于源地址的路由;

QOS;

负载分担;

PBR的配置:

Cisco(config-if)#ip policy  route-map [name of route-map]

其实就是在接口上调用一个已经设置好的route-map。

下面看一个PBR的配置实例:

看到这样的拓扑图与要求,我们一下子就该想到使用“PBR”~~~

那我们就看看路由器A的配置:

RouterA(config)# access-list 1 permit 1.1.0.0 0.0.255.255【定义特殊数据流】

RouterA (config)#access-list 2 permit 1.2.0.0 0.0.255.255【定义特殊数据流】

RouterA(config)#rouete-map equal-access permit 10【定义route map】

RouterA(config-route-map)#match ip address 1

RouerA(config-route-map)#set ip default next-hop 6.6.6.6【强制下一跳地址为ISP A的】

RouterA(config-route-map)# rouete-map equal-access permit 20

RouterA(config-route-map)#match ip address 2

RouterA(config-route-map)#set ip default next-hop 7.7.7.7【强制下一跳地址为ISP B的】

RouterA(config-route-map)# rouete-map equal-access permit 30

RouterA(config-route-map)#set default interface null 0【将其他的源地址的路由都滞空】

RouterA(config)#interface e0

RouterA(config-if)#ip address 1.1.1.1. 255.255.255.0

RouterA(config-if)# ip policy route-map equal-access【在E0上应用route-map】

RouterA(config)#interface s0

RouterA(config-if)#ip address 6.6.6.5 255.255.255.0

RouterA(config)#interface s1

RouterA(config-if)#ip address 7.7.7.6 255.255.255.0

在上面配置的上半部分中,实现的是route-map的配置;下半部分中,实现的是route-map在E0口上的引用【这里不是在两个串口上引用的,而是在E0口上,必须得注意!如果是用在串口上的话,就不怎么起作用了】

配置完成了以后,剩下的就是“验证PBR”了:

Show ip policy

显示接口设置的route map信息。

Show route-map [name]

显示route map信息;


实我们可以看到啊:route map的单独存在几乎是没有任何意义的,利用这个route
map呢,可以很精确的筛选出我们想要的那些数据流,但是至于对这些数据流在哪里开始进行处理,在什么情况下开始进行处理,那就是应用route
map的问题了。可是route map呢,又不能单独行动,一般都是和“重分发”或者“策略路由”来结合,才能起到作用。

当与
“重分发”结合的时候呢,实现的目的就是精确的控制“路由更新流量”的流向【这里为什么说是“精确的控制”呢?因为还有一种方法也可以实现“控制路由更新
流量”的流向。这就是“重分发列表”-----distribute
list。它一般都是直接应用在一个特定路由协议的进程下的,也是在这个路由协议的配置模式下进行设置的。它的控制精度不是很好】。

当应用于“策略路由”的时候呢,就是在一个路由器接口上对这个route map的调用。就比如ACL一样,设置了以后,你还得进行应用,如果不进行调用的话,那么它的存在时没有任何意义的。

综上所述呢,在控制“路由更新”方面,有这样几种方法:distribute listroute map与重分发协议的结合;PBR(在一个接口上对route map的调用);被动接口。

   其实就这样4种方法~~~

Router Map,布布扣,bubuko.com

时间: 2024-12-15 14:50:59

Router Map的相关文章

Vue 路由设置router

由于学习的是router1.0的设置方法,但是现在都是支持2.0的,都报错,那些方法没定义,所以只好又来研究一下router2.0. vue-router2.0对路由的设置有了很大的改变,在HTML中将之前的用a标签link path改成了直接用一个router-link标签,但是你在网页审查元素会发现它还是一个a标签,router-view没有改变,在js中也将原本的router.map 直接改成了一个数组然后在new VueRouter时直接将数组用进去,将之前的挂载由router.star

vue异步组件和vue.router异步加载

以前在使用angular进行开发时,始终没有处理好异步加载的问题,最多只能使用requirejs异步加载controller里面的内容.导致后来项目扩大的时候,性能问题十分蛋疼.最后我竟然把单页面引用拆成了多页面应用,感觉好囧... 后来尝试用vue写一个项目,配合则webpack,发现效果相当的好.但是vue的异步组件文档太误导人了,让我尝试了好久才发现怎么用.文档上是这样写的: Vue.component('async-webpack-example', function (resolve)

教你在微信中给Vue单页应用设置标题

前言 由于Vue React Angular等框架出来的应用都是SPA(single-page-application),所以就没有所谓的页面 都是router 而网页的标题 随着路由的改变而改变 也就成了一个(伪)需求 问题 在iOS的微信中 一个SPA应用 想要改变微信顶部导航栏的标题 使用document.title = xxx来改变网页标题是无效的 原因大致就是因为在微信中webview只加载网页标题一次 动态改变是无效的 除非都以新页面打开(那SPA的用户体验有什么卵用吗) 解决方案

vue1与vue2的路由 以及vue2项目大概了解

vue1的路由 1.设置根组件  Vue.extend() 2.设置局部组件  Vue.extend({template:"/home"}) 3.实例化路由   var router =new VueRouter() 4.关联路由      router.map({"./",组件名字}) 5.开启路由     router.start("根组件","#box") 6.配置默认选项  router.redirect("

关于Vue的路由、脚手架笔记

在页面引入vue-router.js文件,开始配置路由 <div id="box"> <ul><li> <a v-link="{path:'/home'}">主页</a> </li> //点击跳转路由 <li> <a v-link="{path:'/news'}">新闻</a></li> </ul> <div&

eol-last的相关知识

eslint  "eol-last":0 文件末尾强制换行(就是代码结尾处,要来个空格,相当于加一行,设置为0就可以了) ./src/main.js error  eol-last  Newline required at endoffile but notfound /Users/xxx/site/xxx/src/main.js:24:2 router.start(require('./app.vue'), '#app') ^ ?1 problem (1error, 0warning

学习Slim Framework for PHP v3 (四)

看看官网加粗的一句话: At its core, Slim is a dispatcher that receives an HTTP request, invokes an appropriate callback routine, and returns an HTTP response. That’s it. 那么它是如何分发接收到的Request的呢,这几天就来研究这个事情. 先看看为了让请求进入到index.php 需要对Apache做什么.配置如下,其实也是通常配置而已: # Dir

用python写了一个跟踪路由的小东西

转载:http://www.iteye.com/topic/550804 collect.py,  这个只能在Linux下用...#!/usr/bin/python 因为使用的是traceroute命令 import sys import os import thread import cPickle import time import re from socket import inet_ntoa from subprocess import Popen, PIPE import dpkt

emberjs

emberjs 博客:http://www.cnblogs.com/xiangbing/p/emberjs-test.html 案例:http://www.lovewebgames.com/emberjs/test/index.html 源码:https://github.com/tianxiangbing/emberjs-test 准备工作 首页我们要做的是从网上下载下来emberjs相关的文件,目前在1.x的版本中,ember是要依赖jquery(v1.7.1~2.2.0) 和handleb