路由映射(
route map
)的基本规则
路由映射的逻辑结构有点类似于一般编程语言里的
If/Then/Else
结构。一个路由映射块可能包含多条
route-map
命令,路由器基于每条命令的序号顺序处理。每条
route-map
命令包含了匹配参数(使用
match
命令配置),如果对所有包匹配,则省略
match
命令。每条
route-map
命令还可能有
set
命令用来表示对信息的处理。路由映射的一般规则如下:
1
)每条
route-map
命令必须有一个配置好的名字,所有使用同一名字的命令组成一个路由映射块。
2
)每条
route-map
命令有一个行为选项(
permit
或者
deny
)。
3
)同一路由映射块中的每条
route-map
命令有唯一的序号,支持单条
route-map
命令的删除和插入。
4
)当路由映射用于重分发时,路由映射处理的路由来自当前的路由表。
5
)路由映射基于序号顺序处理。
6
)如果有某条路由与路由映射匹配,它不会再被余下
route-map
命令继续处理(特定于路由重分发)。
7
)当路由与
route-map
匹配时,如果
route-map
命令有
permit
选项,路由进行重分发(特定于路由重分发)。
8
)当路由与
route-map
匹配时,如果
route-map
命令有
deny
选项,路由不进行重分发(特定于路由重分发)。
●
permit
和
deny
的理解
对于路由映射而言,理解的一大难点在于路由重分发时的
permit
和
deny
。可以结合以下例子来探讨一下这个问题:
图的最开始处是该路由器连接的网络:
A
类网络
32
到
39
,考虑到它们的路由是否进行重分发。当处理第一条
route-map
命令时,因为其行为选项是
permit
,所以到与其
ACL
(
32
)匹配的网络
32
的路由进入重分发路由列表。其余未匹配的继续往下处理第二条
route-map
命令,此时其行为选项还是
permit
,所以到与其
ACL
(
d-36-p-37
)匹配的网络
37
的路由进入重分发路由列表。其余未匹配的继续流到第三条
route-map
命令,此条的行为选项为
deny
,所以到与其
ACL
(
d-38-p-39
)匹配的网络
39
的路由进入不重分发路由列表。其余未匹配的继续到第四条
route-map
命令,此条的行为选项也是
deny
,所以到与其
ACL
(
33
)匹配的网络
33
的路由进入不重分发路由列表。剩下未匹配的网络是
34, 35, 36
和
38
,因为路由映射块的默认行为选项是
deny
,所以这些未匹配的网络最后都进入不重分发路由列表。在这个过程中,注意不要将
ACL
中
deny
的网络误认为应该进入不重分发路由列表,这里
deny
的网络只是表示与该条
ACL
不匹配而已,它所
deny
的网络应该继续留待下一条
route-map
命令处理。
总起来看,路由映射的在重分发时的逻辑如下:
1
)带
permit
选项的
route-map
命令要不使一条路由重分发,要不使路由留待下一个
route-map
子句的检查。
2
)带
deny
选项的
route-map
命令要不过滤掉一条路由,要不使路由留待下一个
route-map
子句的检查。
3
)如果使用
match
命令来匹配
ACA
,
ACL
中的
deny
选项不会导致该路由被过滤,它只是表示该条路由与
route-map
子句不匹配。
4
)
route-map
命令隐含的包括一条拒绝所有的子句在最后;如果需要配置允许所有,可以使用带
permit
选项而无
match
命令的
route-map
命令。
●用于重分发的
match
命令
路由映射使用
match
命令来定义其匹配的路由。如果在一条
route-map
子句中配置了多条
match
命令,那么匹配的路由须满足所有
match
命令的要求。用于
IGP
路由重分发的
match
命令选项有:
match
命令
|
描述
|
match interface
interface-type interface-number
[…
interface-type interface-number
]
|
匹配外发接口上的路由
|
match ip address {[
access-list-number
|
access-list-name
] |
prefix-list prefix-list-name
}
|
匹配路由前缀和前缀长度
|
match ip next-hop {
access-list-number
|
access-list-name
}
|
匹配路由器的下一跳地址
|
match ip route-source {
access-list-number
|
access-list-name
}
|
匹配广播路由的路由器
IP
地址
|
match metric
metric-value
|
匹配路由的
metric
|
match route-type {internal | external [type-1 | type-2] | level-1 | level-2}
|
匹配路由类型
|
match tag
tag-value
[…
tag-value
]
|
匹配路由的标识(必须预先设好)
|
●用于重分发的
set
命令
路由映射通过
set
命令来改变某些允许重分发的路由的信息,下表列出了一些主要用于
IGP
路由重分发的
set
命令选项:
set
命令
|
描述
|
set level {level-1 | level-2 | level-1-2 | stub-area | backbone}
|
定义路由重分发后所进入的数据库
|
set metric
metric-value
|
为
OSPF
、
RIP
和
IS-IS
设置路由
metric
|
set metric
bandwidth delay reliability loading mtu
|
设置
IGRP/EIGRP
路由的
metric
|
set metric-type {internal | external | type-1 | type-2}
|
为
IS-IS
和
OSPF
设置路由类型
|
set tag
tag-value
|
设置路由的标识
|