反掩码详解.docx

上传人:b****5 文档编号:14529630 上传时间:2023-06-24 格式:DOCX 页数:17 大小:23.20KB
下载 相关 举报
反掩码详解.docx_第1页
第1页 / 共17页
反掩码详解.docx_第2页
第2页 / 共17页
反掩码详解.docx_第3页
第3页 / 共17页
反掩码详解.docx_第4页
第4页 / 共17页
反掩码详解.docx_第5页
第5页 / 共17页
反掩码详解.docx_第6页
第6页 / 共17页
反掩码详解.docx_第7页
第7页 / 共17页
反掩码详解.docx_第8页
第8页 / 共17页
反掩码详解.docx_第9页
第9页 / 共17页
反掩码详解.docx_第10页
第10页 / 共17页
反掩码详解.docx_第11页
第11页 / 共17页
反掩码详解.docx_第12页
第12页 / 共17页
反掩码详解.docx_第13页
第13页 / 共17页
反掩码详解.docx_第14页
第14页 / 共17页
反掩码详解.docx_第15页
第15页 / 共17页
反掩码详解.docx_第16页
第16页 / 共17页
反掩码详解.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

反掩码详解.docx

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

反掩码详解.docx

反掩码详解

反掩码详解

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

例:

routeospf100network192.168。

1。

00。

0。

0.255network192。

168.2.00。

0。

0。

255

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

例:

access-list1permit198.78.46。

00。

0。

11.255

正掩码和反掩码的区别:

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

C类地址子网掩码中不可以出现255.253。

255.0(二进制为11111111111111011111111100000000)这样的掩码;

而反掩码可以出现0。

0.0。

2(二进制为00000000000000000000000000000010)。

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

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

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

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

例如掩码是

255.255.255。

0wildcard—mask就是0。

0.0.255

255.255。

255.248反掩就是0。

0.0。

7

通配符掩码(wildcard—mask)

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

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

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

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

这将造成很多额外的输入和路由器大量额外的处理过程.所以地址掩码对相当有用。

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

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

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

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

通配符掩码表

  CIDR子网掩码反掩码

  /30255.255.255。

2520.0.0。

3

  /29255.255.255。

2480。

0。

0.7

  /28255.255。

255。

2400.0.0.15

  /27255。

255.255。

2240。

0。

0。

31

  /26255。

255。

255。

1920。

0。

0。

63

  /25255。

255。

255.1280。

0。

0.127

  /24255.255.255.00。

0。

0.255

  /23255.255。

254。

00。

0.1。

255

  /22255.255.252.00.0.3.255

  /21255.255.248.00.0。

7.255

  /20255。

255.240。

00。

0。

15.255

  /19255.255.224。

00。

0.31.255

  /18255.255.192.00。

0.63.255

  /17255.255。

128.00.0。

127。

255

  /16255.255.0.00。

0。

255.255

  /15255。

254.0.00.1.255。

255

  /14255.252.0.00。

3。

255.255

  /13255.248。

0.00.7。

255。

255

  /12255.240.0.00.15。

255.255

  /11255。

224。

0。

00.31。

255。

255

  /10255。

192.0。

00.63。

255。

255

  /9255.128。

0.00。

127.255。

255

/8255.0.0。

00.255.255.255

十进制通配符掩码计算方法

  用二进制来表示子网掩码值,再用广播地址求其差值,然后再算回十进制。

  即,推出公式:

通配符掩码=255-掩码.255-掩码.255—掩码。

255-掩码

举例一

  求子网掩码255。

255.255。

248通配符掩码(反掩码)

  

(1)、把子网掩码255.255。

255。

248转换成二进制为:

  11111111.11111111.11111111.11111000

  通配符掩码值为:

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

  11111111。

11111111.11111111。

11111111—11111111.11111111.11111111.11111000

  得到结果为:

  00000000。

00000000。

00000000.00000111

  转换为十进制:

  0。

0。

0.7

  

(2)、通配符掩码=255-掩码。

255-掩码.255-掩码.255-掩码,即:

  255—255。

255-255.255-255.255—248=0.0。

0。

7

举例二

  求子网掩码255.255。

128.0通配符掩码(反掩码)

  

(1)、把子网掩码255.255.128。

0转换成二进制为:

  11111111.11111111.10000000。

0000000

  通配符掩码值为:

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

  11111111。

11111111。

11111111。

11111111-11111111。

11111111。

10000000.0000000

  得到结果为:

  00000000.00000000.01111111.11111111

  转换为十进制:

  0.0。

127。

255

  

(2)、通配符掩码=255—掩码.255—掩码.255-掩码。

255-掩码,即:

  255—255.255—255.255-128。

255—0=0.0。

127.255

ConfiguringIPAccessList

   IP访问控制列表(accesscontrollist,ACL)用于过滤IP流量,其中RFC1700定义了知名(well—known)端口号,RFC1918定义了私有IP地址空间

   Pt。

2UnderstandingACLConcepts

   UsingMasks

   ACL里的掩码也叫inversemask(反掩码)或wildcardmask(通配符掩码),由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

   SummarizingACLs

    下面描述的是如何汇总(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:

00100000

33:

00100001

34:

00100010

35:

00100011

36:

00100100

37:

00100101

38:

00100110

39:

00100111

    注意这组范围里的前5位都是一样的,所以这组IP地址范围可以汇总为192.168。

32.0/21255.255.248。

0,那么这组IP地址范围的反掩码为255。

255。

255。

255—255.255.248.0=0。

0。

7.255

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

access-list10permit192.168.32.00。

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:

10010010

147:

10010011

148:

10010100

149:

10010101

    是不是可以写成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.0255.255。

254。

0)

对于192。

168.146.8-192。

168。

149.x为:

192。

168。

148。

0/23(192。

168.148。

0255。

255。

254.0)

    所以反掩码分别为:

0.0.1.255和0.0。

1。

255

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

access−list10permit192。

168.146.00。

0。

1。

255

access−list10permit192。

168。

148.00.0。

1.255

ProcessingACLs

    当流量经过了配置的有ACL的路由器的时候,将和ACL里的条目从上往下的进行比较,直到找到匹配的语句为止,如果没有任何匹配的语句,流量将被拒绝(deny)掉.一般在设置ACL的时候,尽可能的把permit语句放在ACL的最上部。

并且要记住的是,ACL在结尾处默认隐含的有1条拒绝所有流量的deny语句,如下2个ACL,ACL101和ACL102是有相同的效果的:

access—list101permitip10。

1。

1.00。

0.0。

255172.16.1.00.0.0.255

access—list102permitip10.1。

1.00。

0。

0.255172。

16。

1。

00.0。

0.255

access—list102denyipanyany

   ACL例子如下:

access-list101permittcphost10。

1。

1。

2host172。

16。

1。

1eqtelnet

access—list101permittcphost10.1.1。

2host172。

16。

1。

1

access—list101permitudphost10。

1。

1。

2host172.16。

1。

1

access—list101permitip10。

1。

1.00。

0。

0.255172.16.1.00。

0。

0。

255

    最后1条语句就足够了,前3条语句可以不用配置。

因为TCP就包括了telnet,并且IP包括了TCP和UDP.所以只需要写最后1条语句即可 

DefiningPortsandMessageTypes

    在设置ACL的时候,可能不光要设置源地址和目标地址,还要设置端口号(参阅RFC1700)或ICMP信息类型(参阅RFC792)。

当然可以在设置的时候输入?

来查看提示,如下:

access—list102permittcphost10.1.1。

1host172。

16。

1。

1eq?

bgpBorderGatewayProtocol(179)

chargenCharactergenerator(19)

cmdRemotecommands(rcmd,514)

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

access—list102permiticmphost10。

1。

1.1host172。

16。

1.114

就成了:

access-list102permiticmphost10。

1。

1.1host172。

16.1.1timestamp-reply

ApplyingACLs

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

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

Defininginandout

in和out是相对于路由器来说的.离开路由器接口的流量即为out;进入这个路由器的接口的流量即为in。

在配置ACL的时候,in和out并不是绝对的。

比如上面那个例子,在路由器A上设置ACL,方向就要用in,因为站在路由器A的角度上看,流量是进入路由器A的.但是同样可以把ACL设置在路由器C上的E1接口,方向为out,因为流量是离开路由器C

EditingACLs

在对ACL进行编辑的时候要特别的注意.如果你删除了ACL中某条语句,那么整个ACL也随之被删除掉了。

如下:

router#configt

router(config)#access—list101denyicmpanyany

router(config)#access—list101permitipanyany

router(config)#^Z

router#showaccess-list

ExtendedIPaccesslist101

denyicmpanyany

permitipanyany

router#

*Mar900:

43:

12.784:

%SYS—5-CONFIG_I:

Configuredfromconsolebyconsole

router#configt

router(config)#noaccess—list101denyicmpanyany

router(config)#^Z

router#showaccess—list

router#

*Mar900:

43:

29。

832:

%SYS—5—CONFIG_I:

Configuredfromconsolebyconsole

所以如果你要修改ACL的语句的时候,可以把路由器的配置拷贝到TFTP服务器上,用文本编辑器比如notepad.exe进行编辑后,在拷贝回路由器上

当然也可以用命名访问列表的方式进行修改(稍后讲解),如下:

router#configt

router(config)#ipaccess-listextendedtest

router(config-ext—nacl)#permitiphost2。

2.2.2host3。

3。

3。

3

router(config—ext—nacl)#permittcphost1。

1。

1。

1host5。

5。

5.5eqwww

router(config-ext-nacl)#permiticmpanyany

router(config—ext—nacl)#permitudphost6.6。

6.610。

10。

10。

00。

0。

0。

255eqdomain

验证下ACL的设置,如下:

router#showaccess—list

ExtendedIPaccesslisttest

permitiphost2。

2.2.2host3。

3。

3。

3

permittcphost1。

1.1.1host5。

5。

5。

5eqwww

permiticmpanyany

permitudphost6.6.6。

610。

10。

10.00.0。

0。

255eqdomain

设置好ACL,进行删除和增加语句,如下:

router(config)#ipaccess—listextendedtest

router(config-ext-nacl)#nopermiticmpanyany/---—-—---—-————删除1条语句-—-—-——-—/

router(config—ext-nacl)#permitgrehost4。

4。

4。

4host8。

8。

8.8/-—-—-—--——----—增加1条语句—-——-—-——/

修改后进行验证,如下:

router#showaccess-list

ExtendedIPaccesslisttest

permitiphost2.2.2。

2host3。

3。

3.3

permittcphost1.1。

1.1host5.5。

5。

5eqwww

permitudphost6.6.6.610。

10.10.00.0.0。

255eqdomain

permitgrehost4.4.4。

4host8。

8.8。

8

可以看到新增的语句位于ACL的结尾

当要删除整个ACL的时候,使用如下命令:

interface〈interface〉

noipaccess-groupin|out

Troubleshooting

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

1。

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

access-list101permitipanyhost10。

2.6.6

access—list101permitiphost10。

2。

6.6any

2.在卷入debug过程中的接口的fast-switching功能要关闭,如果不关闭的话,将只看的到第一个经过该接口的包。

在接口配置模式下使用如下命令:

noiproute—cache

3.在特权模式下使用terminalmonitor命令,这样debug输出的信息将被显示

4。

使用debugippacket101[detail]命令开始debug

5。

debug完成以后,在特权模式下使用nodebugall命令关闭debug。

并且进入接口配置模式使用iproute-cache命令打开fast—switching功能

Pt。

3TypesofIPACLs

StandardACLs

标准ACL是比较古老的ACL,可以追溯到CiscoIOSRelease8.3.标准ACL(以IP访问列表为例)通过比较IP包的源地址和ACL中设置的地址来做转发或者丢弃的决定。

语法如下:

access—list{permit|deny}{host|sourcewildcard—mask|any}

在一般的IOS版本中,access—list-number的范围是1到99.在CiscoIOSRelease12.0。

1中,还可以使用额外的一段1300到1999

当定义了标准ACL以后,进入接口配置模式使用如下命令进行应用:

ipaccess-group〈access-list-number〉{in|out}

ExtendedACLs

扩展ACL是在CiscoIOSRelease8.3中引入的。

顾名思义,它和之前那种古老的比较方式,增加了许多额外的比较。

命令如下:

对于IP:

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

对于ICMP:

access-list

对于UDP:

access—list

对于TCP:

access-list〈access-list—number〉[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.在CiscoIOS

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2