反掩码详解.docx_第1页
反掩码详解.docx_第2页
反掩码详解.docx_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

反掩码详解在配置路由协议的时候(如OSPF、EIGRP )使用的反掩码必需是连续的1即网络地址。 例: route ospf 100 network 55 network 55 而在配置ACL的时候可以使用不连续的1,只需对应的位置匹配即可。 例:access-list 1 permit 55正掩码和反掩码的区别: 正掩码必须是连续的,而反掩码可以不连续,例如: C类地址子网掩码中不可以出现 (二进制为11111111 11111101 11111111 00000000)这样的掩码;而反掩码可以出现(二进制为00000000 00000000 00000000 00000010)。正掩码表示的路由条目,而反掩码表示的范围。反掩码就是通配符掩码,通过标记0和1告诉设备应该匹配到哪位。 在反掩码中,相应位为1的地址在比较中忽略,为0的必须被检查. IP地址与反掩码都是32位的数 例如掩码是 wildcard-mask 就是5548 反掩就是通配符掩码(wildcard-mask)路由器使用的通配符掩码(或反掩码)与源或目标地址一起来分辨匹配的地址范围,它跟子网掩码刚好相反。它像子网掩码告诉路由器IP地址的哪一位属于网络号一样,通配符掩码告诉路由器为了判断出匹配,它需要检查IP地址中的多少位。这个地址掩码对使我们可以只使用两个32位的号码来确定IP地址的范围。这是十分方便的,因为如果没有掩码的话,你不得不对每个匹配的IP客户地址加入一个单独的访问列表语句。这将造成很多额外的输入和路由器大量额外的处理过程。所以地址掩码对相当有用。 在子网掩码中,将掩码的一位设成1表示IP地址对应的位属于网络地址部分。相反,在访问列表中将通配符掩码中的一位设成1表示I P地址中对应的位既可以是1又可以是0。有时,可将其称作“无关”位,因为路由器在判断是否匹配时并不关心它们。掩码位设成0则表示IP地址中相对应的位必须精确匹配。 通配符掩码表CIDR 子网掩码 反掩码 /30 52 /29 48 /28 40 5/27 24 1/26 92 3/25 28 27/24 55/23 55/22 55/21 55/20 55/19 55/18 55/17 55/16 55/15 55/14 55/13 55/12 55/11 55/10 55/9 55 /8 55十进制通配符掩码 计算方法用二进制来表示子网掩码值,再用广播地址求其差值,然后再算回十进制。 即,推出公式:通配符掩码=255-掩码.255-掩码.255-掩码.255-掩码 举例一求子网掩码48通配符掩码(反掩码)(1)、把子网掩码48转换成二进制为: 11111111.11111111.11111111.11111000通配符掩码值为:广播全1(二进制)地址 减去 子网掩码二制制值,即: 11111111.11111111.11111111.11111111 - 11111111.11111111.11111111.11111000得到结果为: 00000000.00000000.00000000.00000111转换为十进制: (2)、通配符掩码=255-掩码.255-掩码.255-掩码.255-掩码,即: 255-255.255-255.255-255.255-248=举例二求子网掩码通配符掩码(反掩码)(1)、把子网掩码转换成二进制为: 11111111.11111111.10000000.0000000通配符掩码值为:广播全1(二进制)地址 减去 子网掩码二制制值,即: 11111111.11111111.11111111.11111111 - 11111111.11111111.10000000.0000000得到结果为: 00000000.00000000.01111111.11111111转换为十进制: 55(2)、通配符掩码=255-掩码.255-掩码.255-掩码.255-掩码,即: 255-255.255-255.255-128.255-0=55Configuring IP Access List 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代表任意匹配(即不关心)反掩码可以通过使用55减去正常的子网掩码得到,比如要决定子网掩码为的IP地址的反掩码:55-=55即的反掩码为55注意:反掩码为55的代表any,即任意地址 反掩码为的代表主机地址 Summarizing ACLs下面描述的是如何汇总(summarization)一组网络地址,来达到优化ACL的目的:/24/24/24/24/24/24/24/24这组IP地址的前2个和最后1个八位位组是一样的,再看第3个八位位组,把它们写成2进制的形式:32:00 10 00 0033:00 10 00 0134:00 10 00 1035:00 10 00 1136:00 10 01 0037:00 10 01 0138:00 10 01 1039:00 10 01 11注意这组范围里的前5位都是一样的,所以这组IP地址范围可以汇总为/21 ,那么这组IP地址范围的反掩码为55-=55比如在做IP standard ACL的时候,就可以:access-list 10 permit 55再来看另一组IP地范围:/24/24/24/24照之前的方法,把第3个八位位组写成2进制形式:146:10 01 00 10147:10 01 00 11148:10 01 01 00149:10 01 01 01是不是可以写成/21呢?不是.因为采用/21的话将有8个子网将被考虑进去,如果在用ACL拒绝上述1组地址的时候,就有可能把另外4个地址给封杀掉.一定要考虑到精确匹配,上述地址就只能汇总成下面这2条地址:对于192.168.146.x-192.168.147.x为:/23( )对于-192.168.149.x为:/23( )所以反掩码分别为:55和55比如在做IP standard ACL的时候,就可以:accesslist 10 permit 55accesslist 10 permit 55Processing ACLs当流量经过了配置的有ACL的路由器的时候,将和ACL里的条目从上往下的进行比较,直到找到匹配的语句为止,如果没有任何匹配的语句,流量将被拒绝(deny)掉.一般在设置ACL的时候,尽可能的把permit语句放在ACL的最上部.并且要记住的是,ACL在结尾处默认隐含的有1条拒绝所有流量的deny语句,如下2个ACL,ACL 101和ACL 102是有相同的效果的:access-list 101 permit ip 55 55access-list 102 permit ip 55 55access-list 102 deny ip any any ACL例子如下:access-list 101 permit tcp host host eq telnetaccess-list 101 permit tcp host host access-list 101 permit udp host host access-list 101 permit ip 55 55最后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 host eq ?bgp Border Gateway Protocol (179)chargen Character generator (19)cmd Remote commands (rcmd, 514) 在配置的时候,路由器同样可以把数字转化为人性化的值,比如在设置下面的ICMP类型14的时候:access-list 102 permit icmp host host 14 就成了:access-list 102 permit icmp host host timestamp-reply Applying ACLs 当你配置了ACL的时候,不在路由器上应用它,是将不会生效的.如下图: 当你要阻断从source到destination的流量的时候,尽可能的把ACL设置在离源地址近的地方,即在路由器A上的E0接口(inbound) Defining in and out in和out是相对于路由器来说的.离开路由器接口的流量即为out;进入这个路由器的接口的流量即为in.在配置ACL的时候,in和out并不是绝对的.比如上面那个例子,在路由器A上设置ACL,方向就要用in,因为站在路由器A的角度上看,流量是进入路由器A的.但是同样可以把ACL设置在路由器C上的E1接口,方向为out,因为流量是离开路由器C Editing ACLs 在对ACL进行编辑的时候要特别的注意.如果你删除了ACL中某条语句,那么整个ACL也随之被删除掉了.如下:router#config trouter(config)#access-list 101 deny icmp any anyrouter(config)#access-list 101 permit ip any anyrouter(config)#Zrouter#show access-listExtended IP access list 101deny icmp any anypermit ip any anyrouter#*Mar 9 00:43:12.784: %SYS-5-CONFIG_I:Configured from console by consolerouter#config trouter(config)#no access-list 101 deny icmp any anyrouter(config)#Zrouter#show access-listrouter#*Mar 9 00:43:29.832:%SYS-5-CONFIG_I: Configured from console by console 所以如果你要修改ACL的语句的时候,可以把路由器的配置拷贝到TFTP服务器上,用文本编辑器比如notepad.exe进行编辑后,在拷贝回路由器上 当然也可以用命名访问列表的方式进行修改(稍后讲解),如下:router#config trouter(config)#ip access-list extended testrouter(config-ext-nacl)#permit ip host host router(config-ext-nacl)#permit tcp host host eq wwwrouter(config-ext-nacl)#permit icmp any anyrouter(config-ext-nacl)#permit udp host 55 eq domain 验证下ACL的设置,如下:router#show access-listExtended IP access list testpermit ip host host permit tcp host host eq wwwpermit icmp any anypermit udp host 55 eq domain 设置好ACL,进行删除和增加语句,如下:router(config)#ip access-list extended testrouter(config-ext-nacl)#no permit icmp any any /-删除1条语句-/router(config-ext-nacl)#permit gre host host /-增加1条语句-/ 修改后进行验证,如下:router#show access-listExtended IP access list testpermit ip host host permit tcp host host eq wwwpermit udp host 55 eq domainpermit gre host host 可以看到新增的语句位于ACL的结尾 当要删除整个ACL的时候,使用如下命令:interface no ip access-group in|outTroubleshooting 当要对流量进行debug的时候,首先要确认,当前设置的有ACL,但是没有应用它,并且路由器的fast-switching要关闭,步骤如下: 1.使用access-list命令捕捉需要监测的数据,比如:access-list 101 permit ip any host access-list 101 permit ip host any 2.在卷入debug过程中的接口的fast-switching功能要关闭,如果不关闭的话,将只看的到第一个经过该接口的包.在接口配置模式下使用如下命令:no ip route-cache 3.在特权模式下使用terminal monitor命令,这样debug输出的信息将被显示 4.使用debug ip packet 101 detail命令开始debug 5.debug完成以后,在特权模式下使用no debug all命令关闭debug.并且进入接口配置模式使用ip route-cache命令打开fast-switching功能 Pt.3 Types of IP ACLs Standard ACLs 标准ACL是比较古老的ACL,可以追溯到Cisco IOS Release 8.3.标准ACL(以IP访问列表为例)通过比较IP包的源地址和ACL中设置的地址来做转发或者丢弃的决定.语法如下:access-list permit|deny host |source wildcard-mask | any 在一般的IOS版本中,access-list-number的范围是1到99.在Cisco IOS Release 12.0.1中,还可以使用额外的一段1300到1999 当定义了标准ACL以后,进入接口配置模式使用如下命令进行应用:ip access-group in|out Extended ACLs 扩展ACL是在Cisco IOS Release 8.3中引入的.顾名思义,它和之前那种古老的比较方式,增加了许多额外的比较.命令如下: 对于IP:access-list dynamic dynamic-name timeout minutes deny | permit protocol source wildcard-mask destination wildcard-mask precedence precedence tos tos log | log-input time-range time-range-name 对于ICMP:access-list dynamic dynamic-name timeout minutes deny | permit icmp source wildcard-mask destination wildcard-mask icmp-type | icmp-type icmp-code | icmp-message precedenceprecedence tos tos log | log-input time-range time-range-name 对于UDP:access-list dynamic dynamic-name timeout minutes deny | permit udp source wildcard-mask operator port destination wildcard-mask operator port precedence precedence tos tos log | log-input time-range time-range-name 对于TCP:access-list dynamic dynamic-name timeout minutes deny | permit tcp source wildcard-mask operator port destination wildcard-mask operator port precedence precedence tos tos log | log-input time-range time-range-name 在一般的IOS版本里,access-list-number可以为101到199.在Cisco IOS Release 12.0.1以后,还可以额外的使用2000到2699 再接下来就要将定义好的ACL应用在接口上,命令如下(接口配置模式下):ip access-group acl-number | acl-name in|outLock and Key (Dynamic ACLs)Lock and Key(也叫动态ACL)是在Cisco IOS Release 11.1引入的.这个特性是依靠于telnet,验证(authentication,本地和远程)还有扩展ACL的 Lock and Key的配置是在应用ACL的时候进行设置的,当验证通过以后,才允许telnet,语法如下:username password interface ip access-group number|name in|out 验证之后将动态的往现有ACL里增加1条语句,语法如下:access-list dynamic permit|deny protocol source wildcard-mask|any destination wildcard-mask|any precedence precedence tos tos established log|log-input operator destination-port|destination port 接下来:line vty login local 如下就是一个Lock and Key的配置例子:username test password 0 testusername test autocommand access-enable host timeout 10 /-定义空闲超时时间为10分钟-/interface Ethernet0/0ip address ip access-group 101 inaccess-list 101 permit tcp any host eq telnetaccess-list 101 dynamic testlist timeout 15 permit ip 55 55line vty 0 4login local 当要telnet到的时候,动态ACL将被应用.当telnet连接断开以后,用户就可以访问172.16.1.x网络 IP Named ACLs 命名ACL是在Cisco IOS Release 11.2引入的,它允许用命名的方式取代数字,IP命名ACL语法如下:ip access-list extended|standard 如下是一个使用命名ACL来阻断除telnet以外到的流量的例子 interface Ethernet0/0ip address ip access-group in_to_out inip access-list extended in_to_outpermit tcp host host eq telnet:Reflexive ACLs 反身ACL是在Cisco IOS Release 11.3引入的.它只能和扩展的命名IP ACL一起定义而不能和基于数字的或标准ACL,以及其他协议的ACL一起.语法如下:ip access-list extended permit any any reflect name timeout ip access-list extended evaluate interface ip access-group number|name in|out 下面引用一个例子(原作者: alienguo 出处:雨声论坛 好,现在进行测试,在上ping ,通了,RouterB上则ping不通. 现在还余下一个问题:路由器既然已经deny了外网进来的所有流量,那么它是怎么允许内网出去的返回流量进来呢? 它是通过创建动态生成的ACL来允许返回流量的,下面看看show access-list的结果:Reflexive IP access list icmp_trafficpermit icmp host host (24 matches) (time left 196) 这些动态ACL可通过TCP的FIN/RST包来动态自动消除,对ICMP这样stateless的包来说,是通过内置的timer来消除的,这点可通过上述show access-list结果中的(time left 196)来核实. 最后再说说那另一个测试,也就是两个ACL中加的多余的东西:ip access-list extended outbound_filterpermit ip any anyip access-list extended inbound_filterdeny ip a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论