Route-map 结合路由重分布

在两种协议之间做重分布的时候,有的时候我们需要把一些不必要的路由信息重分布进去,当然我们也可以用控制分发列表来做,但是我们还可以用另一种方法就是 Route-map 来将我们需要的路由信息挑选出来,在重分布的时候将他们分布进去。 Route-map 挑选出来的信息如果是 permit 则分布进去,否则不分布进去。 

Route-map 的语法及注意事项 
Route-map 名称 [deny| permit] [ 编号 ] 
         Match 条件 
         Set 动作

解释:就是一个数据流当满足条件的时候我们给出一个动作(如打标签等)并根据上面的 deny 或 permit 来执行,负责丢弃当有多个编号的语句的时候继续向下执行直到没有可执行的语句至此仍然没有匹配的条目则丢弃 
注意事项: 
1 在编写语句的时候我们不写编号则编号默认为 10 
2 在编写语句的时候我们不写 deny 或 permit 则默认为 permit 
3 当有多个 match 语句的时候,仅当所有的 match 语句都匹配的时候该 Route-map 语句才算匹配成功。当一个match 语句有多个条件的时候只要匹配其中的一个条件则整句 match 语句就算匹配成功 
4 当我们之前没写编号的语句,之后我们有写了编号为 10 的语句则覆盖之前的语句 
5 我们在删除 Route-map 语句的时候,没写编号则删除整个 Route-map 语句   
6 执行的时候自上而写下执行 
7 如果一条语句没有 match 则意味着匹配所有条目 
 
下面我们举几个例子说明一下

route-map ccc permit 20 
  match ip address 1 2 
  match tag 2 
这个匹配的条件就是数据流要匹配访问控制列表 1 或 2 ,并且还要匹配标签为 2 则才算匹配成功

 

下面看一下 route-map 的执行过程: 
route-map eee permit 10 
    match ip address 1 
route-map eee permit 20 
    match ip address 10 
    access-list 1 permit 1.1.1.0 
    access-list 2 permit 1.1.2.0 
a) 当有一个数据流源地址为 1.1.1.2 的时候,在 route-map 执行的时候首先查看编号为 10 的语句,结果匹配则根据编号为 10 定义的 permit 既通过,跳出 route-map 
b) 当有一个数据流源地址为 1.1.2.2 的时候,在 route-map 执行的时候首先查看编号为 10 的语句,结果不匹配再继续查看编号为 20 的语句,发现匹配根据编号为 20 定义的 permit 既通过,跳出 route-map

c) 当有一个数据流源地址为 1.1.3.2 的时候,在 route-map 执行的时候首先查看编号为 10 的语句,结果不匹配再继续查看编号为 20 的语句,发现不匹配再向下就没有了语句则这时都没有匹配的语句则丢弃