route-map 可以应用在两种不同的地方:redistribute 和 policy routing,但是区别必须搞清楚:
一、deny语句
1、route-map 中的deny语句如果匹配,redistribute时匹配的条目将不被重分发。
2、route-map 中的deny语句如果匹配,policy routing时,不再做策略路由,而交由正常路由表去转发。
二、默认的deny all
route-map 同 access-list 一样,最后都有隐含的deny all
三、route-map语句顺利号
1、在编辑 route-map 时,如不注明 permit xx ,第一句默认为 permit 10
例:
route-map cracker
match ip address 101
set ip next-hop 211.81.157.1
route-map cracker
match interface f0/0
set metric 100
相当于:
route-map cracker permit 10
match ip ad 101
set ip next-hop 211.81.157.1
route-map cracker permit 20
match int f0/0
set metric 100
2、删除某条目时,如不注明语句号,则直接删除整个route-map
例:
no route-map cracker
上面这条命令会删除整个route-map,而不是我们想删除的20语句,正确的用法是:
no route-map cracker 20
3、match 语句如果放在同一语句下,则为匹配所有:
例3-1:
route-map cracker permit 10
match ip address 101
match ip length 1500
set ip next-hop 211.81.157.1
set metric 100
上例表示,同时满足这两种条件时,设置metric并转发至211.81.157.1
例3-2:
route-map cracker permit 10
match ip address 101
set ip next-hop 211.81.157.1
route-map cracker permit 20
match ip address 102
set ip next-hop 211.81.157.2
route-map cracker permit 30
上例表示,顺序匹配各条语句,但是一旦有一条语句被匹配,则跳出route-map。
四、policy routing
策略路由要注意,只能用在路由器的入接口上!
例:4-1
如R1上的s0/0为入接口,s0/1为出接口,向外接入两个网段,分别为172.16.1.1和172.16.1.2
route-map cracker
match ip address 10
set ip next-hop 172.16.1.1
route-map cracker
match ip address 20
set ip next-hop 172.16.1.2
access-list 10 permit 172.16.6.0 0.0.0.255
access-list 20 permit 172.16.7.0 0.0.0.255
int s0/0
ip ad 172.16.8.254 255.255.255.0
ip policy route-map cracker
上例中,
如果源地址是172.16.6.0/24网段的包会被转发至172.16.1.1
172.16.7.0/24网段的包会被转发至172.16.1.2。
而8网段的包由于没有语句匹配,则转交正常路由表转发,结果一般会是负载分担,两个目的各承担一半流量。
策略路由的应用其实很广,包括匹配包大小,小包走一条链路,大包走另一条,这样不至于造成语音数据的拥塞。
还可以匹配协议类型,HTTP,FTP,TELNET,BT等协议可以区别对待,甚至可以匹配七层协议中的网址,如去往Http://blog.sina.com.cn/cisco网站的流量我们选条高带宽链路:)
六、route-map在redistribute中的应用
这样的应用同样很多,也非常重要,这是现有的市场环境导致的,许多公司一年到头都在并购,收购中运营,新加入的公司网络如何与现有网络集成,这就不得不提到重分发,redistribute。重分发可以使两个不同路由协议下的网络互相交流路由信息,但如果我们需要精确地管理,哪些条目可以被分发进来,哪些不可以,这个时候,一般可以采用两种方法, route-filter 和 route-map 。
例:
route-map cracker deny 10
match ip address 10
route-map cracker permit 20
route-map cuijian permit 20
match ip address 20
access-list 10 permit 10.1.0.0 0.0.255.255
access-list 20 permit 172.16.0.0 0.0.255.255
router ospf 1
redis rip metric 100 subnets route-map cracker
上例中,10网段的路由条目不会被重分发进ospf,注意语句是deny的,而cracker语句中的第20条,由于无match语句,将会匹配所有条目。整条语句作用是将除10.1.0.0网段的路由条目作重分发。
route-map cuijian则由于最后隐含的deny all,会将除了172.16.0.0网段的路由全都不做重分发。
其实route-map cracker和route-map cuijian在这里的作用是一样的。都不对10网段条目做重分发。
我们通过类似这样的设计可以从路由方面隔离两个域,作到基本的安全策略。