反掩码详解.docx

上传人:b****8 文档编号:28392737 上传时间:2023-07-13 格式:DOCX 页数:7 大小:21.33KB
下载 相关 举报
反掩码详解.docx_第1页
第1页 / 共7页
反掩码详解.docx_第2页
第2页 / 共7页
反掩码详解.docx_第3页
第3页 / 共7页
反掩码详解.docx_第4页
第4页 / 共7页
反掩码详解.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

反掩码详解.docx

《反掩码详解.docx》由会员分享,可在线阅读,更多相关《反掩码详解.docx(7页珍藏版)》请在冰豆网上搜索。

反掩码详解.docx

反掩码详解

反掩码详解

在配置路由协议的时候(如OSPF、EIGRP)使用的反掩码必需是连续的1即网络地址。

例:

routeospf100networknetwork

而在配置ACL的时候可以使用不连续的1,只需对应的位置匹配即可。

例:

access-list1permit

正掩码和反掩码的区别:

正掩码必须是连续的,而反掩码可以不连续,例如:

C类地址子网掩码中不可以出现(二进制为00000000)这样的掩码;

而反掩码可以出现(二进制为00000000000000000000000000000010)。

正掩码表示的路由条目,而反掩码表示的范围。

反掩码就是通配符掩码,通过标记0和1告诉设备应该匹配到哪位。

在反掩码中,相应位为1的地址在比较中忽略,为0的必须被检查.

IP地址与反掩码都是32位的数例如掩码是

wildcard-mask就是反掩就是通配符掩码(wildcard-mask)  路由器使用的通配符掩码(或反掩码)与源或目标地址一起来分辨匹配的地址范围,它跟子网掩码刚好相反。

它像子网掩码告诉路由器IP地址的哪一位属于网络号一样,通配符掩码告诉路由器为了判断出匹配,它需要检查IP地址中的多少位。

这个地址掩码对使我们可以只使用两个32位的号码来确定IP地址的范围。

这是十分方便的,因为如果没有掩码的话,你不得不对每个匹配的IP客户地址加入一个单独的访问列表语句。

这将造成很多额外的输入和路由器大量额外的处理过程。

所以地址掩码对相当有用。

  在子网掩码中,将掩码的一位设成1表示IP地址对应的位属于网络地址部分。

相反,在访问列表中将通配符掩码中的一位设成1表示IP地址中对应的位既可以是1又可以是0。

有时,可将其称作“无关”位,因为路由器在判断是否匹配时并不关心它们。

掩码位设成0则表示IP地址中相对应的位必须精确匹配。

通配符掩码表  CIDR子网掩码反掩码  /30  /29  /28  /27  /26  /25  /24  /23  /22  /21  /20  /19  /18  /17  /16  /15  /14  /13  /12  /11  /10  /9/8十进制通配符掩码计算方法  用二进制来表示子网掩码值,再用广播地址求其差值,然后再算回十进制。

  即,推出公式:

通配符掩码=255-掩码.255-掩码.255-掩码.255-掩码举例一  求子网掩码通配符掩码(反掩码)  

(1)、把子网掩码转换成二进制为:

  ...  通配符掩码值为:

广播全1(二进制)地址减去子网掩码二制制值,即:

  ...-...  得到结果为:

    转换为十进制:

    

(2)、通配符掩码=255-掩码.255-掩码.255-掩码.255-掩码,即:

  举例二  求子网掩码通配符掩码(反掩码)  

(1)、把子网掩码转换成二进制为:

  ...0000000  通配符掩码值为:

广播全1(二进制)地址减去子网掩码二制制值,即:

  ...-...0000000  得到结果为:

    转换为十进制:

    

(2)、通配符掩码=255-掩码.255-掩码.255-掩码.255-掩码,即:

  ConfiguringIPAccessList

 

   IP访问控制列表(accesscontrollist,ACL)用于过滤IP流量,其中RFC1700定义了知名(well-known)端口号,RFC1918定义了私有IP地址空间   UnderstandingACLConcepts   UsingMasks   ACL里的掩码也叫inversemask(反掩码)或wildcardmask(通配符掩码),由32位长的2进制数字组成,4个八位位组.其中0代表必须精确匹配,1代表任意匹配(即不关心) 反掩码可以通过使用减去正常的子网掩码得到,比如要决定子网掩码为的IP地址的反掩码:

 即的反掩码为    注意:

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

  反掩码为的代表主机地址   SummarizingACLs    下面描述的是如何汇总(summarization)一组网络地址,来达到优化ACL的目的:

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

32:

0010000033:

0010000134:

0010001035:

0010001136:

0010010037:

0010010138:

0010011039:

00100111    注意这组范围里的前5位都是一样的,所以这组IP地址范围可以汇总为那么这组IP地址范围的反掩码为    比如在做IPstandardACL的时候,就可以:

access-list10permit    再来看另一组IP地范围:

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

146:

10010010147:

10010011148:

10010100149:

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

对于为:

对于为:

    所以反掩码分别为:

和    比如在做IPstandardACL的时候,就可以:

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

access-list101permitipaccess-list102permitipaccess-list102denyipanyany   ACL例子如下:

access-list101permittcphosthosteqtelnetaccess-list101permittcphosthostaccess-list101permitudphosthostaccess-list101permitip    最后1条语句就足够了,前3条语句可以不用配置.因为TCP就包括了telnet,并且IP包括了TCP和UDP.所以只需要写最后1条语句即可 DefiningPortsandMessageTypes    在设置ACL的时候,可能不光要设置源地址和目标地址,还要设置端口号(参阅RFC1700)或ICMP信息类型(参阅RFC792).当然可以在设置的时候输入来查看提示,如下:

access-list102permittcphosthosteq

bgpBorderGatewayProtocol(179)chargenCharactergenerator(19)cmdRemotecommands(rcmd,514)在配置的时候,路由器同样可以把数字转化为人性化的值,比如在设置下面的ICMP类型14的时候:

access-list102permiticmphosthost14就成了:

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

当你要阻断从source到destination的流量的时候,尽可能的把ACL设置在离源地址近的地方,即在路由器A上的E0接口(inbound)Defininginandoutin和out是相对于路由器来说的.离开路由器接口的流量即为out;进入这个路由器的接口的流量即为in.在配置ACL的时候,in和out并不是绝对的.比如上面那个例子,在路由器A上设置ACL,方向就要用in,因为站在路由器A的角度上看,流量是进入路由器A的.但是同样可以把ACL设置在路由器C上的E1接口,方向为out,因为流量是离开路由器CEditingACLs在对ACL进行编辑的时候要特别的注意.如果你删除了ACL中某条语句,那么整个ACL也随之被删除掉了.如下:

router#configtrouter(config)#access-list101denyicmpanyanyrouter(config)#access-list101permitipanyanyrouter(config)#^Zrouter#showaccess-listExtendedIPaccesslist101denyicmpanyanypermitipanyanyrouter#*Mar900:

43:

:

%SYS-5-CONFIG_I:

Configuredfromconsolebyconsolerouter#configtrouter(config)#noaccess-list101denyicmpanyanyrouter(config)#^Zrouter#showaccess-listrouter#*Mar900:

43:

:

%SYS-5-CONFIG_I:

Configuredfromconsolebyconsole所以如果你要修改ACL的语句的时候,可以把路由器的配置拷贝到TFTP服务器上,用文本编辑器比如进行编辑后,在拷贝回路由器上当然也可以用命名访问列表的方式进行修改(稍后讲解),如下:

router#configtrouter(config)#ipaccess-listextendedtestrouter(config-ext-nacl)#permitiphosthostrouter(config-ext-nacl)#permittcphosthosteqwwwrouter(config-ext-nacl)#permiticmpanyanyrouter(config-ext-nacl)#permitudphosteqdomain验证下ACL的设置,如下:

router#showaccess-listExtendedIPaccesslisttestpermitiphosthostpermittcphosthosteqwwwpermiticmpanyanypermitudphosteqdomain设置好ACL,进行删除和增加语句,如下:

router(config)#ipaccess-listextendedtestrouter(config-ext-nacl)#nopermiticmpanyany/---------------删除1条语句---------/router(config-ext-nacl)#permitgrehosthost/---------------增加1条语句---------/修改后进行验证,如下:

router#showaccess-listExtendedIPaccesslisttestpermitiphosthostpermittcphosthosteqwwwpermitudphosteqdomainpermitgrehosthost可以看到新增的语句位于ACL的结尾当要删除整个ACL的时候,使用如下命令:

interfacenoipaccess-groupin|outTroubleshooting当要对流量进行debug的时候,首先要确认,当前设置的有ACL,但是没有应用它,并且路由器的fast-switching要关闭,步骤如下:

1.使用access-list命令捕捉需要监测的数据,比如:

access-list101permitipanyhostaccess-list101permitiphostany2.在卷入debug过程中的接口的fast-switching功能要关闭,如果不关闭的话,将只看的到第一个经过该接口的包.在接口配置模式下使用如下命令:

noiproute-cache3.在特权模式下使用terminalmonitor命令,这样debug输出的信息将被显示4.使用debugippacket101[detail]命令开始debug完成以后,在特权模式下使用nodebugall命令关闭debug.并且进入接口配置模式使用iproute-cache命令打开fast-switching功能TypesofIPACLsStandardACLs标准ACL是比较古老的ACL,可以追溯到CiscoIOSRelease.标准ACL(以IP访问列表为例)通过比较IP包的源地址和ACL中设置的地址来做转发或者丢弃的决定.语法如下:

access-list{permit|deny}{host|sourcewildcard-mask|any}在一般的IOS版本中,access-list-number的范围是1到99.在CiscoIOSRelease中,还可以使用额外的一段1300到1999当定义了标准ACL以后,进入接口配置模式使用如下命令进行应用:

ipaccess-group{in|out}ExtendedACLs扩展ACL是在CiscoIOSRelease中引入的.顾名思义,它和之前那种古老的比较方式,增加了许多额外的比较.命令如下:

对于IP:

access-list[dynamicdynamic-name[timeoutminutes]]{deny|permit}protocolsourcewildcard-maskdestinationwildcard-mask[precedenceprecedence][tostos][log|log-input][time-rangetime-range-name]对于ICMP:

access-list[dynamicdynamic-name[timeoutminutes]]{deny|permit}icmpsourcewildcard-maskdestinationwildcard-mask[icmp-type|[[icmp-typeicmp-code]|[icmp-message]][precedenceprecedence][tostos][log|log-input][time-rangetime-range-name]对于UDP:

access-list[dynamicdynamic-name[timeoutminutes]]{deny|permit}udpsourcewildcard-mask[operator[port]]destinationwildcard-mask[operator[port]][precedenceprecedence][tostos][log|log-input][time-rangetime-range-name]对于TCP:

access-list[dynamicdynamic-name[timeoutminutes]]{deny|permit}tcpsourcewildcard-mask[operator[port]]destinationwildcard-mask[operator[port]][precedenceprecedence][tostos][log|log-input][time-rangetime-range-name]在一般的IOS版本里,access-list-number可以为101到199.在CiscoIOSRelease以后,还可以额外的使用2000到2699再接下来就要将定义好的ACL应用在接口上,命令如下(接口配置模式下):

ipaccess-group{acl-number|acl-name}{in|out}LockandKey(DynamicACLs)LockandKey(也叫动态ACL)是在CiscoIOSRelease引入的.这个特性是依靠于telnet,验证(authentication,本地和远程)还有扩展ACL的LockandKey的配置是在应用ACL的时候进行设置的,当验证通过以后,才允许telnet,语法如下:

usernamepasswordinterfaceipaccess-group{number|name}{in|out}验证之后将动态的往现有ACL里增加1条语句,语法如下:

access-listdynamic{permit|deny}[protocol]{sourcewildcard-mask|any}{destinationwildcard-mask|any}[precedenceprecedence][tostos][established][log|log-input][operatordestination-port|destinationport]接下来:

linevtyloginlocal如下就是一个LockandKey的配置例子:

usernametestpassword0testusernametestautocommandaccess-enablehosttimeout10/-----定义空闲超时时间为10分钟---/interfaceEthernet0/0ipaddressipaccess-group101inaccess-list101permittcpanyhosteqtelnetaccess-list101dynamictestlisttimeout15permitiplinevty04loginlocal当要telnet到的时候,动态ACL将被应用.当telnet连接断开以后,用户就可以访问网络IPNamedACLs命名ACL是在CiscoIOSRelease引入的,它允许用命名的方式取代数字,IP命名ACL语法如下:

ipaccess-list{extended|standard}如下是一个使用命名ACL来阻断除telnet以外到的流量的例子interfaceEthernet0/0ipaddressipaccess-groupin_to_outinipaccess-listextendedin_to_outpermittcphosthosteqtelnet:

ReflexiveACLs反身ACL是在CiscoIOSRelease引入的.它只能和扩展的命名IPACL一起定义而不能和基于数字的或标准ACL,以及其他协议的ACL一起.语法如下:

ipaccess-listextendedpermitanyanyreflectname[timeout]ipaccess-listextendedevaluateinterfaceipaccess-group{number|name}{in|out}下面引用一个例子(原作者:

alienguo出处:

雨声论坛好,现在进行测试,在上ping通了,RouterB上则ping不通现在还余下一个问题:

路由器既然已经deny了外网进来的所有流量,那么它是怎么允许内网出去的返回流量进来呢?

它是通过创建动态生成的ACL来允许返回流量的,下面看看showaccess-list的结果:

……ReflexiveIPaccesslisticmp_trafficpermiticmphosthost(24matches)(timeleft196)……这些动态ACL可通过TCP的FIN/RST包来动态自动消除,对ICMP这样stateless的包来说,是通过内置的timer来消除的,这点可通过上述showaccess-list结果中的(timeleft196)来核实.最后再说说那另一个测试,也就是两个ACL中加的多余的东西:

ipaccess-listextendedoutbound_filterpermitipanyanyipaccess-listextendedinbound_filterdenyipanyanylog我在上发起一个到的TELNET连接,这个流量到了S0口后由ACLoutbound_filter中的permitipanyany检测后放行.到了RouterB后,RouterB进行处理然后返回流量,这个流量到了S0口后由inbound_filter检测,因为evaluateicmp_traffic中并没有包含对TCP类型流量的检测,这个包由denyipanyanylog一句处理后丢弃并生成日志:

00:

24:

28:

%SEC-6-IPACCESSLOGP:

listinbound_filterdeniedtcp->1packetTime-BasedACLsUsingTimeRanges基于时间的ACL是在CiscoIOS中引入的,顾名思义,它对流量的控制可以是基于时间的.命令如下:

1.定义timerange(时间范围):

time-range2.定义时间周期:

periodic[days-of-the-week]hh:

mmto[days-of-the-week]hh:

mm或,定义绝对时间:

absolute[starttimedate][endtimedate]3.把timerange使用在ACL中:

ipaccess-listtime-range例子如下:

time-rangeEVERYOTHERDAYperiodicMondayWednesdayFriday8:

00to17:

00access-list101permittcpeqtelnettime

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 节日庆典

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1