路由策略之---ACL、前缀路由、route-map

来源:互联网 发布:淘宝白菜网 编辑:程序博客网 时间:2024/06/08 07:45

一)、ACL相关

做路由条目的策略,我们方法很多。普通的一种办法可以用ACL,但是我们建议不要用序列号的,而用命名规则的,这样的好处是:可以修改,灵活、利于应用检测及排错。

那么如何对各种路由条目做到最精确的匹配呢?举例如下来总结规律:

子网:199.99.0.0/24                                           199.99.00000000.0/24                                           
           199.99.1.0/24                                          199.99.00000001.0/24                                           
           199.99.2.0/24                                           199.99.00000010.0/24 
           199.99.3.0/24                                           199.99.00000011.0/24 
    我们如何来做ACL呢,首先将子网段换算成二进制观察,那么我们可以如下来写:

acce 1 per 199.99.00000000.0 0.0.00000011.0 换算后为199.99.0.0 0.0.3.0

再看子网:199.99.0.0/24                               199.99.00000000.0/24                                           
                 199.99.1.0/24                               199.99.00000001.0/24                                           
                 199.99.2.0/24                               199.99.00000010.0/24                                           
                   199.99.3.0/24                             199.99.00000011.0/24                                           
                   199.99.16.0/24                           199.99.00010000.0/24                                           
                   199.99.17.0/24                           199.99.00010001.0/24                                           
                   199.99.18.0/24                           199.99.00010010.0/24                                           
                   199.99.19.0/24                           199.99.00010011.0/24                                           
    我们按照换算的二进制观察,我们可以这样来精确写:

acc 1 per 199.99.00000000.0 0.0.00010011.0        换算后为 199.99.0.0 0.0.19.0

我们观察是否满足,可以看后面所掩的段内有几位置1,有3位,2^3=8,正好符合上面8条数目。

此规则理解为:所有网段条目,将二进制格式内观察,前段标识写的格式为相同的位挪下来,不同的位置为0;后段标识写的格式为相同的位挪下来,不同的位置为1,将其不同的位置掩起来以确需要匹配。

按照如此规则,我们写奇数子网路由条目或偶数子网路由条目均可迎刃而解。

例子199.99.0.0/24的所有网络中,奇数子网和偶数子网的写法:

奇数:acce 1 per 199.99.00000001.0 0.0.11111110.0 换算后为199.99.1.0 0.0.254.0

偶数:acce 1 per 199.99.00000000.0 0.0.11111110.0 换算后为199.99.0.0 0.0.254.0

二)、前缀路由

但是通过ACL的标准写法或命名写法有的时候都会漏掉一部分子网,所以我们建议用前缀列表来写

前缀列表:ip prefix-list aaa permit 199.99.0.0/24 ge 25 le 32

此格式:ip prefix-list {name} [permit|deny] <network>/<length> <ge> <le>

如例子含义:完全匹配199.99.0.0前面24位网络位,而且子网掩码也要精确匹配24位掩码;

如果加上后面的ge和le来定义,那么含义因此改变,精确匹配199.99.0.0前面24位网络位,而且子网掩码匹配范围25位-32位的所有子网掩码。

但是有的情况前缀列表一样会漏掉子网,例如199.99.0.0/25 那么199.99.0.128/25就漏掉了。值得注意。

想写permit any如何写呢?格式为:ip prefix-list test permit 0.0.0.0/0 le 32

三)、route-map

关于route-map,应用范围广泛,其格式写法基本三部曲,

1,先写acces   1 per 199.99.0.0 0.0.0.255   这里需要必须用per,因为是route-map所匹配的

2,写route-map {name}[ permit | deny ] seq ,route-map test permit 10                                         
     match ip add 1 ; set metric 100

3,最后调用,如redistribute rip route-map test

如上是应用在路由重分布,进入匹配项match相关的,才进行set所设置的操做。

下来说明下route-map的PBR应用与重分布的区别:                                         
1,acc 1 per 199.99.0.0 0.0.0.255

2,route-map PBR permit 10                                         
       match ip add 1 ; set ip next-hop 193.1.1.4

3,应用在数据包入向接口:int s 0/0; ip policy route-map PBR

这里对数据的影响区别于对路由条目的影响:对路由条目的重分布,如没有被匹配,将全部执行默认deny语句;而对数据的PBR过滤,如没有被匹配,将全部按照默认的路由条目去路由数据包,而非执行默认deny语句将所有数据包drop掉。

※过滤处理顺序
入站, 过滤列表>Route-Map>distribute-list/Prefix-list
出站 distribute-list/Prefix-list>ORF接收到的前缀>过滤列表>Route-map

1.match ip address 匹配的是目的网络号地址
2.match ip route-source 匹配的是在重分发路由器中已经被通告的路由.并且不能通告直连路由。