反掩码详解.docx
- 文档编号:25843822
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:13
- 大小:26.53KB
反掩码详解.docx
《反掩码详解.docx》由会员分享,可在线阅读,更多相关《反掩码详解.docx(13页珍藏版)》请在冰豆网上搜索。
反掩码详解
反掩码详解
————————————————————————————————作者:
————————————————————————————————日期:
ﻩ
反掩码详解
在配置路由协议的时候(如OSPF、EIGRP)使用的反掩码必需是连续的1即网络地址。
例:
routeospf100 network192.168.1.00.0.0.255network 192.168.2.00.0.0.255
而在配置ACL的时候可以使用不连续的1,只需对应的位置匹配即可。
例:
access-list 1permit198.78.46.00.0.11.255
ﻫ
正掩码和反掩码的区别:
正掩码必须是连续的,而反掩码可以不连续,例如:
C类地址子网掩码中不可以出现255.253.255.0(二进制为11111111111111011111111100000000)这样的掩码;
而反掩码可以出现0.0.0.2(二进制为0000000000)。
正掩码表示的路由条目,而反掩码表示的范围。
反掩码就是通配符掩码,通过标记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表示I P地址中对应的位既可以是1又可以是0。
有时,可将其称作“无关”位,因为路由器在判断是否匹配时并不关心它们。
掩码位设成0则表示IP地址中相对应的位必须精确匹配。
ﻫﻫﻫ通配符掩码表
CIDR子网掩码反掩码ﻫ/30255.255.255.2520.0.0.3ﻫ/29255.255.255.2480.0.0.7
/28255.255.255.240 0.0.0.15ﻫ/27255.255.255.224 0.0.0.31ﻫ /26255.255.255.1920.0.0.63ﻫ /25255.255.255.1280.0.0.127
/24255.255.255.0 0.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.0 0.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ﻫ /15 255.254.0.00.1.255.255ﻫ /14255.252.0.0 0.3.255.255
/13255.248.0.00.7.255.255ﻫ /12255.240.0.0 0.15.255.255ﻫ /11255.224.0.00.31.255.255ﻫ/10255.192.0.00.63.255.255ﻫ/9 255.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
ﻫConfiguring IPAccess List
IP访问控制列表(access controllist,ACL)用于过滤IP流量,其中RFC 1700定义了知名(well-known)端口号,RFC1918定义了私有IP地址空间ﻫﻫ Pt.2UnderstandingACLConceptsﻫﻫ UsingMasksﻫﻫ ACL里的掩码也叫inverse mask(反掩码)或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:
00 100001ﻫ34:
0010 00 10ﻫ35:
0010 0011ﻫ36:
0010 0100
37:
00100101
38:
00 100110ﻫ39:
00 100111ﻫﻫ 注意这组范围里的前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.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:
100100 10ﻫ147:
10 010011
148:
1001 0100
149:
1001 0101
ﻫ 是不是可以写成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
比如在做IPstandard ACL的时候,就可以:
ﻫﻫaccess−list10permit192.168.146.00.0.1.255
access−list10permit192.168.148.0 0.0.1.255
ProcessingACLsﻫ
当流量经过了配置的有ACL的路由器的时候,将和ACL里的条目从上往下的进行比较,直到找到匹配的语句为止,如果没有任何匹配的语句,流量将被拒绝(deny)掉.一般在设置ACL的时候,尽可能的把permit语句放在ACL的最上部.并且要记住的是,ACL在结尾处默认隐含的有1条拒绝所有流量的deny语句,如下2个ACL,ACL101和ACL102是有相同的效果的:
ﻫaccess-list101permitip 10.1.1.0 0.0.0.255172.16.1.0 0.0.0.255ﻫﻫaccess-list102permitip10.1.1.00.0.0.255172.16.1.00.0.0.255
access-list102denyipany anyﻫ
ACL例子如下:
access-list101permittcp host10.1.1.2host172.16.1.1eqtelnetﻫaccess-list 101permittcphost10.1.1.2host172.16.1.1ﻫaccess-list 101permitudphost 10.1.1.2host172.16.1.1ﻫaccess-list101permitip 10.1.1.00.0.0.255 172.16.1.00.0.0.255ﻫ
最后1条语句就足够了,前3条语句可以不用配置.因为TCP就包括了telnet,并且IP包括了TCP和UDP.所以只需要写最后1条语句即可 ﻫ
DefiningPortsandMessageTypesﻫ
在设置ACL的时候,可能不光要设置源地址和目标地址,还要设置端口号(参阅RFC 1700)或ICMP信息类型(参阅RFC 792).当然可以在设置的时候输入?
来查看提示,如下:
ﻫaccess-list102permittcphost10.1.1.1 host172.16.1.1 eq?
ﻫ
bgpBorderGatewayProtocol (179)ﻫchargen Charactergenerator (19)ﻫcmdRemote commands(rcmd, 514)ﻫ
在配置的时候,路由器同样可以把数字转化为人性化的值,比如在设置下面的ICMP类型14的时候:
ﻫaccess-list 102 permit icmphost10.1.1.1host172.16.1.114
ﻫ 就成了:
ﻫaccess-list102permit icmp host10.1.1.1 host172.16.1.1 timestamp-replyﻫﻫ ApplyingACLs
当你配置了ACL的时候,不在路由器上应用它,是将不会生效的.如下图:
ﻫﻫ
当你要阻断从source到destination的流量的时候,尽可能的把ACL设置在离源地址近的地方,即在路由器A上的E0接口(inbound)ﻫ Defininginand outﻫﻫin和out是相对于路由器来说的.离开路由器接口的流量即为out;进入这个路由器的接口的流量即为in.在配置ACL的时候,in和out并不是绝对的.比如上面那个例子,在路由器A上设置ACL,方向就要用in,因为站在路由器A的角度上看,流量是进入路由器A的.但是同样可以把ACL设置在路由器C上的E1接口,方向为out,因为流量是离开路由器C
ﻫEditing ACLs
ﻫ 在对ACL进行编辑的时候要特别的注意.如果你删除了ACL中某条语句,那么整个ACL也随之被删除掉了.如下:
ﻫ
router#configt
router(config)#access-list101denyicmp anyany
router(config)#access-list101 permitipanyany
router(config)#^Z
router#showaccess-listﻫExtended IP access list 101ﻫdenyicmpanyany
permitipanyanyﻫrouter#ﻫ*Mar 900:
43:
12.784:
%SYS-5-CONFIG_I:
ﻫConfiguredfromconsolebyconsole
router#configt
router(config)#noaccess-list101denyicmpanyanyﻫrouter(config)#^Zﻫrouter#show access-list
router#
*Mar 900:
43:
29.832:
ﻫ%SYS-5-CONFIG_I:
Configuredfromconsole byconsole
ﻫ 所以如果你要修改ACL的语句的时候,可以把路由器的配置拷贝到TFTP服务器上,用文本编辑器比如notepad.exe进行编辑后,在拷贝回路由器上
ﻫ 当然也可以用命名访问列表的方式进行修改(稍后讲解),如下:
ﻫﻫrouter#configtﻫrouter(config)#ip access-list extended test
router(config-ext-nacl)#permitiphost2.2.2.2 host3.3.3.3
router(config-ext-nacl)#permittcphost 1.1.1.1host5.5.5.5eq(config-ext-nacl)#permiticmpany anyﻫrouter(config-ext-nacl)#permit udp host 6.6.6.610.10.10.00.0.0.255 eqdomain
ﻫ验证下ACL的设置,如下:
router#showaccess-list
ExtendedIPaccess listtest
permitiphost 2.2.2.2host3.3.3.3ﻫpermittcphost1.1.1.1host5.5.5.5eqicmpanyany
permitudphost6.6.6.610.10.10.0 0.0.0.255eqdomainﻫ
设置好ACL,进行删除和增加语句,如下:
ﻫrouter(config)#ipaccess-list extendedtest
router(config-ext-nacl)#nopermit icmpanyany/---------------删除1条语句---------/
router(config-ext-nacl)#permitgre host4.4.4.4host 8.8.8.8/---------------增加1条语句---------/
ﻫ 修改后进行验证,如下:
ﻫrouter#showaccess-listﻫExtendedIPaccesslisttestﻫpermitiphost2.2.2.2host 3.3.3.3ﻫpermittcphost1.1.1.1 host5.5.5.5equdphost6.6.6.610.10.10.00.0.0.255eqdomain
permitgrehost 4.4.4.4host 8.8.8.8
ﻫ 可以看到新增的语句位于ACL的结尾ﻫﻫ 当要删除整个ACL的时候,使用如下命令:
interface
noipaccess-group<aclnumber>in|outﻫ
Troubleshooting
ﻫ 当要对流量进行debug的时候,首先要确认,当前设置的有ACL,但是没有应用它,并且路由器的fast-switching要关闭,步骤如下:
ﻫﻫ 1.使用access-list命令捕捉需要监测的数据,比如:
access-list 101permitip anyhost10.2.6.6
access-list101permitiphost10.2.6.6any
ﻫ 2.在卷入debug过程中的接口的fast-switching功能要关闭,如果不关闭的话,将只看的到第一个经过该接口的包.在接口配置模式下使用如下命令:
ﻫ
noiproute-cacheﻫﻫ 3.在特权模式下使用terminal monitor命令,这样debug输出的信息将被显示
4.使用debug ippacket101[detail]命令开始debugﻫ
5.debug完成以后,在特权模式下使用nodebugall命令关闭debug.并且进入接口配置模式使用iproute-cache命令打开fast-switching功能ﻫ
Pt.3Typesof IPACLsﻫﻫ StandardACLsﻫﻫ标准ACL是比较古老的ACL,可以追溯到CiscoIOSRelease8.3.标准ACL(以IP访问列表为例)通过比较IP包的源地址和ACL中设置的地址来做转发或者丢弃的决定.语法如下:
ﻫﻫaccess-list<access-list-number> {permit|deny}{host|sourcewildcard-mask| any}ﻫ
在一般的IOS版本中,access-list-number的范围是1到99.在CiscoIOSRelease12.0.1中,还可以使用额外的一段1300到1999ﻫ
当定义了标准ACL以后,进入接口配置模式使用如下命令进行应用:
ipaccess-group {in|out}
ﻫ ExtendedACLs
ﻫ 扩展ACL是在Cisco IOS Release8.3中引入的.顾名思义,它和之前那种古老的比较方式,增加了许多额外的比较.命令如下:
ﻫﻫ 对于IP:
ﻫaccess-list ﻫ 对于ICMP: access-list 对于TCP: access-list 再接下来就要将定义好的ACL应用在接口上,命令如下(接口配置模式下)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 掩码 详解