一)、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]
如例子含义:完全匹配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 匹配的是在重分发路由器中已经被通告的路由.并且不能通告直连路由。