[Lab4-1]抓路由练习题
问题1:
用ACL抓取172.18.0.0/16----172.29.0.0/16的路由
答案: 172.16.0.0 0.15.255.255,看上去很完美,但实际上框的范围有些大.
R1(f0/0)—(f0/0)R2
R1上的接口地址:
R1#sh ip int b
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 12.1.1.1 YES NVRAM up up
Loopback0 172.16.0.1 YES NVRAM up up
Loopback1 172.17.0.1 YES NVRAM up up
Loopback2 172.18.0.1 YES NVRAM up up
Loopback3 172.19.0.1 YES NVRAM up up
Loopback4 172.20.0.1 YES NVRAM up up
Loopback5 172.21.0.1 YES NVRAM up up
Loopback6 172.22.0.1 YES NVRAM up up
Loopback7 172.23.0.1 YES NVRAM up up
Loopback8 172.24.0.1 YES NVRAM up up
Loopback9 172.25.0.1 YES NVRAM up up
Loopback10 172.26.0.1 YES NVRAM up up
Loopback11 172.27.0.1 YES NVRAM up up
Loopback12 172.28.0.1 YES NVRAM up up
Loopback13 172.29.0.1 YES NVRAM up up
Loopback14 172.30.0.1 YES NVRAM up up
Loopback15 172.31.0.1 YES NVRAM up up
R2上ACL抓精确路有
R2#sh access-lists
Standard IP access list 10
10 permit 172.18.0.0, wildcard bits 0.1.255.255 (10 matches)
20 permit 172.20.0.0, wildcard bits 0.3.255.255 (20 matches)
30 permit 172.24.0.0, wildcard bits 0.3.255.255 (20 matches)
40 permit 172.28.0.0, wildcard bits 0.1.255.255 (10 matches)
R2:上配置
router rip
version 2
network 0.0.0.0
distribute-list 10 in FastEthernet0/0
no auto-summary
具体分析过程:
题目分享: http://yun.baidu.com/share/link?shareid=2380926901&uk=4093942124
问题2:
怎么用抓以下路由或该网段?
192.168.0.1/24
192.168.1.1/25
192.168.2.1/26
192.168.3.1/27
解题思路,用prefix-list:
R1(f0/0)----(f0/0)R2
(全网跑rip)
ip prefix-list 10: 2 entries
seq 5 deny 192.168.0.0/16 ge 24 le 27
seq 10 permit 0.0.0.0/0 le 32
R2(config-router)#distribute-list prefix 10 in f0/0
试验结果: R2 上只有一条打R的路由
R2#sh ip route rip
R 172.31.0.0/16 [120/1] via 12.1.1.1, 00:00:18, FastEthernet0/0
除了 用前缀列表,我们也可以用扩展ACL来抓,但一般来说扩展列表需要被router-map调用时才生效 (rip中没有该关键字)
分析过程:
===================================
192.168.0.1
255.255.255.0 X.X.X. 0000 0000
192.168.1.1
255.255.255.128 X.X.X. 1000 0000
192.168.2.1
255.255.255.192 X.X.X. 1100 0000
192.168.3.1
255.255.255.224 X.X.X. 1110 0000
===================================
前缀部分: 192.168.0.0 0.0.3.0
掩码部分: x.x.x. 1110 0000
: 255.255.255.0 0.0.0.224
我们在R2 上做重分法并且过滤掉 上面的网段
access-list 100 permit ip 192.168.0.0 0.0.3.0 255.255.255.0 0.0.0.224
route-map lab deny 10
match ip address 100
!
route-map lab permit 20
router ospf 110
router-id 0.0.0.2
log-adjacency-changes
redistribute rip subnets route-map lab
network 23.1.1.0 0.0.0.255 area 0
在R3 上看ospf的路由表只有一条:
http://pan.baidu.com/s/1eQ946kE \\下载试验
前缀列表书写规范:
ip prefix-list 1 permit 192.168.16.0/[mask] ge [value] le [value]
Len(mask)<ge-value<=le-value
前缀列表会先根据掩长度码范围进行匹配(也就是说,不看IP,先看掩码)
ge[value] 表示 大于等于 [value]
le[value] 表示 小于等于 [value]
再按期望的mask值进行匹配(使IP与MASK进行比较匹配)
len=mask(期望的mask值)
mask(前缀固定位)是如何进行匹配的?
192.168.00010000.0
192.168.00010010.0
255.255.11111101.0
mask = 22
我们只需把两个ip不同的位 置0,所得的结果就是我们所期待的前缀掩码
比如我们希望匹配
192.168.16.0 /24和192.168.18.0/24两条路由
那么我们的前缀列表应写为
ip prefix-list 1 permit 192.168.16.0/22 ge 24 le 24
以上命令的意思表示先把/24掩码的路由筛选出来,然后再按照mask值/22进行匹配
如果范围空着不写的话会有一些缺省值:
不写ge和le那么ge=le=mask
只写le不写ge那么ge=mask
只写ge不写le那么le=32 (隐藏的命令)
例:/24 le 32 表示掩码在24-32之间
/24 ge 26 表示掩码在26到32之间
/24 ge 26 le 30 表示掩码在 26到30之间
/24 表示掩码等于24的路由去匹配/24的掩码
和ACL比Prefix-list的好处:
access-list 1 permit 192.168.16.0 0.0.2.0
以上ACL可以过滤192.168.16.0和18.0两条路由,但ACL不能准确的描述掩码
比如我们还有一条192.168.16.0/30的路由
那么ACL会把/24和/30的一起过滤掉
而前缀列表只会过滤掉/24的路由
附:在router-map里匹配前缀列表的写法
map# match ip address prefix-list [list num]
比如我们希望匹配
192.168.16.0 /24和192.168.18.0/24
那么我们的前缀列表应写为
ip prefix-list 1 permit 192.168.16.0/22 ge 24 le 24
匹配A类地址,且掩码大于16小于24(A类前缀0~127是0,B类128~191是10,C类是110,D类是1110)
ip prefix-list 1 permit 0.0.0.0/1 ge 16 le 24
不同于用于匹配流量的IP访问列表,IP前缀列表主要是用来指定具体的网络可达的。前缀列表用来匹配前缀(网段)和前缀长度(子网掩码)。前缀列表有两个参数很难理解。
下面是普通的前缀列表的参数:
ip prefix-list [name] [permit | deny] [prefix]/[len]
name为任意的名字或者数字,prefix是指定的路由前缀(网段),len是指定的前缀长度(子网掩码)。例子如下:
ip prefix-list LIST permit 1.2.3.0/24
上面的例子中指定匹配网段1.2.3.0,并且指定子网掩码为255.255.255.0,这个列表不匹配1.2.0.0/24,也不匹配1.2.3.4/32
ip prefix-list LIST permit 0.0.0.0/0
上面的例子指定匹配网段0.0.0.0和子网掩码0.0.0.0。这个列表用来匹配默认路由。
通常情况下,在使用前缀列表的时候加上“GE”(大于或等于)和“LE”(小于或等于)时比较容易发生混淆。这是因为当使用“GE”和“LE”时,列表的长度(len)发生了改变。
另外一种前缀列表的参数:
ip prefix-list [name] [permit | deny] [prefix]/[len] ge [min_length] le [max_length]
name为任意的名字或者数字,prefix是将要进行比较的路由前缀(网段),len是指从最左边开始的比特位,min_length为最小的子网掩码的值,max_length为最大的子网掩码的值
使用GE和LE,必须满足下面的条件:
len < GE <= LE
上面的参数很容易混淆,简单的说就是一个匹配前缀或子网的地址的范围。
看下面的例子:
ip prefix-list LIST permit 1.2.3.0/24 le 32
上面的例子表示前缀1.2.3.0前面的24位必须匹配。此外,子网掩码必须小于或等于32位
ip prefix-list LIST permit 0.0.0.0/0 le 32
上面的例子意味着0位需要匹配,此外子网掩码必须小于或等于32位。一位所有的网段的掩码都小于或等于32位,并且一位都不用匹配,所以这句话等于permit any
ip prefix-list LIST permit 10.0.0.0/8 ge 21 le 29
上面的例子说明网段10.0.0.0的前8位必须匹配,此外子网掩码必须在21位和29位之间。
注意:
使用前缀列表不能像访问列表那样匹配具体的应用流。
前缀列表也不能用来具体匹配奇数或偶数的前缀,或什么可以被15整除的前缀
在前缀列表中,比特位必须是连续的,并且从左边开始
ip prefix-list fuck permit 0.0.0.0/0 表示默认路由
ip prefix-list fuck permit 0.0.0.0/0 ge 1 表示除了默认路由外的所有路由
ip prefix-list test16 seq 5 permit 0.0.0.0/1 ge 8 le 8 配置A类地址
ip prefix-list test16 seq 10 permit 128.0.0.0/2 ge 16 le 16 配置B类地址
ip prefix-list test16 seq 15 permit 192.0.0.0/3 ge 24 le 24 配置C类地址