学习热线

[组图]Configuring IP Access List           ★★★
Configuring IP Access List
学习热线网:http://www.xx988.com    来源:中国IT认证实验室    点击数:    更新时间:2005-5-16

    Pt.1 Introduction

    IP访问控制列表(access control list,ACL)用于过滤IP流量,其中RFC 1700定义了知名(well-known)端口号,RFC 1918定义了私有IP地址空间

    Pt.2 Understanding ACL Concepts

    Using Masks

    ACL里的掩码也叫inverse mask(反掩码)或wildcard mask(通配符掩码),由32位长的2进制数字组成,4个八位位组.其中0代表必须精确匹配,1代表任意匹配(即不关心) 反掩码可以通过使用255.255.255.255减去正常的子网掩码得到,比如要决定子网掩码为255.255.255.0的IP地址172.16.1.0的反掩码:
255.255.255.255-255.255.255.0=0.0.0.255 即172.16.1.0的反掩码为0.0.0.255

    注意:

    反掩码为255.255.255.255的0.0.0.0代表any,即任意地址

    反掩码为0.0.0.0的10.1.1.2代表主机地址10.1.1.2

    Summarizing ACLs

    下面描述的是如何汇总(summarization)一组网络地址,来达到优化ACL的目的:

192.168.32.0/24
192.168.33.0/24
192.168.34.0/24
192.168.35.0/24
192.168.36.0/24
192.168.37.0/24
192.168.38.0/24
192.168.39.0/24

    这组IP地址的前2个和最后1个八位位组是一样的,再看第3个八位位组,把它们写成2进制的形式:

32:00 10 00 00
33:00 10 00 01
34:00 10 00 10
35:00 10 00 11
36:00 10 01 00
37:00 10 01 01
38:00 10 01 10
39:00 10 01 11

    注意这组范围里的前5位都是一样的,所以这组IP地址范围可以汇总为192.168.32.0/21 255.255.248.0,那么这组IP地址范围的反掩码为255.255.255.255-255.255.248.0=0.0.7.255

    比如在做IP standard ACL的时候,就可以:

access-list 10 permit 192.168.32.0 0.0.7.255

    再来看另一组IP地范围:

192.168.146.0/24
192.168.147.0/24
192.168.148.0/24
192.168.149.0/24

    照之前的方法,把第3个八位位组写成2进制形式:

146:10 01 00 10
147:10 01 00 11
148:10 01 01 00
149:10 01 01 01

    是不是可以写成192.168.146.0/21呢?不是.因为采用/21的话将有8个子网将被考虑进去,如果在用ACL拒绝上述1组地址的时候,就有可能把另外4个地址给封杀掉.一定要考虑到精确匹配,上述地址就只能汇总成下面这2条地址:

对于192.168.146.x-192.168.147.x为:192.168.146.0/23(192.168.146.0 255.255.254.0)
对于192.168.146.8-192.168.149.x为:192.168.148.0/23(192.168.148.0 255.255.254.0)

    所以反掩码分别为:0.0.1.255和0.0.1.255

    比如在做IP standard ACL的时候,就可以:

access−list 10 permit 192.168.146.0 0.0.1.255
access−list 10 permit 192.168.148.0 0.0.1.255

Processing ACLs

    当流量经过了配置的有ACL的路由器的时候,将和ACL里的条目从上往下的进行比较,直到找到匹配的语句为止,如果没有任何匹配的语句,流量将被拒绝(deny)掉.一般在设置ACL的时候,尽可能的把permit语句放在ACL的最上部.并且要记住的是,ACL在结尾处默认隐含的有1条拒绝所有流量的deny语句,如下2个ACL,ACL 101和ACL 102是有相同的效果的:

access-list 101 permit ip 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255

access-list 102 permit ip 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255
access-list 102 deny ip any any

    ACL例子如下:

access-list 101 permit tcp host 10.1.1.2 host 172.16.1.1 eq telnet
access-list 101 permit tcp host 10.1.1.2 host 172.16.1.1
access-list 101 permit udp host 10.1.1.2 host 172.16.1.1
access-list 101 permit ip 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255

    最后1条语句就足够了,前3条语句可以不用配置.因为TCP就包括了telnet,并且IP包括了TCP和UDP.所以只需要写最后1条语句即可

Defining Ports and Message Types

    在设置ACL的时候,可能不光要设置源地址和目标地址,还要设置端口号(参阅RFC 1700)或ICMP信息类型(参阅RFC 792).当然可以在设置的时候输入?来查看提示,如下:

access-list 102 permit tcp host 10.1.1.1 host 172.16.1.1 eq ?
bgp Border Gateway Protocol (179)
chargen Character generator (19)
cmd Remote commands (rcmd, 514)

    在配置的时候,路由器同样可以把数字转化为人性化的值,比如在设置下面的ICMP类型14的时候:

access-list 102 permit icmp host 10.1.1.1 host 172.16.1.1 14

    就成了:

access-list 102 permit icmp host 10.1.1.1 host 172.16.1.1 timestamp-reply

    Applying ACLs

    当你配置了ACL的时候,不在路由器上应用它,是将不会生效的.如下图:

screen.width-500)this.style.width=screen.width-500; border=0>

    当你要阻断从source到destination的流量的时候,尽可能的把ACL设置在离源地址近的地方,即在路由器A上的E0接口(inbound)

[1] [2] [3] [4] 下一页  

  • 上一篇文章: 什么是代理ARP(proxy ARP)?

  • 下一篇文章: EIGRP特性-Stub Routing