IP地址及子网划分不管是学习网络还是上网,IP地址都是出现频率非常高的词。Windows系统中设置IP地址的界面如图1所示,图中出现了IP地址、子网掩码、默认网关和DNS服务器这几个需要设置的地方,只有正确设置,网络才能通,那这些名词都是什么意思呢?学习IP地址的相关知识时还会遇到网络地址、广播地址、子网等概念,这些又是什么意思呢?
图1
????要解答这些问题,先看一个日常生活中的例子。如图2所示,住在北大街的住户要能互相找到对方,必须各自都要有个门牌号,这个门牌号就是各家的地址,门牌号的表示方法为:北大街+XX号。假如1号住户要找6号住户,过程是这样的,1号在大街上喊了一声:"谁是6号,请回答。",这时北大街的住户都听到了,但只有6号作了回答,这个喊的过程叫"广播",北大街的所有用户就是他的广播范围,假如北大街共有20个用户,那广播地址就是:北大街21号。也就是说,北大街的任何一个用户喊一声能让"广播地址-1"个用户听到。
图2
????从这个例中可以抽出下面几个词:
????街道地址:北大街,如果给该大街一个地址则用第一个住户的地址-1,此例为:北大街0号
????住户的号:如1号、2号等。
????住户的地址:街道地址+XX号,如北大街1号、北大街2号等
????广播地址:最后一个住户的地址+1,此例为:北大街21号
????Internet网络中,每个上网的计算机都有一个像上述例子的地址,这个地址就是IP地址,是分配给网络设备的门牌号,为了网络中的计算机能够互相访问,IP地址=网络地址+主机地址,图1中的IP地址是192.168.100.1,这个地址中包含了很多含义。如下所示:
????网络地址(相当于街道地址):192.168.100.0
????主机地址(相当于各户的门号):0.0.0.1
????IP地址(相当于住户地址):网络地址+主机地址=192.168.100.1
????广播地址:192.168.100.255
????这些地址是如何计算出来的呢?为什么计算这些地址呢?要想知道如何,先要明白一个道理,学习网络的目的就是如何让网络中的计算机相互通讯,也就是说要围绕着"通"这个字来学习和理解网络中的概念,而不是只为背几个名词。
????注:192.168.100.1是私有地址,不能直接在Internet网络中应用,上Internet要转为公有地址,详细说明见后文。
一、为什么要计算网络地址
????一句话就是让网络中的计算机能够相互通讯。先看看最简单的网络,图3中是用网线(交叉线)直接将两台计算机连起来。下面是几种IP地址设置,看看在不同设置下网络是通还是不通。
????1、对1#机和2#机的IP地址做如下设置
1号机的IP地址为192.168.0.1子网掩码为255.255.255.0;
2号机的IP地址为192.168.0.200子网掩码为255.255.255.0,
这样它们就能正常通讯。
2、如果1号机地址不变,
将2号机的IP地址改为192.168.1.200子网掩码还是为255.255.255.0,
那这两台就无法通讯。
3、设置
1号机的IP地址为192.168.0.1子网掩码为255.255.255.192,
2号机的IP地址为192.168.0.200子网掩码为255.255.255.192,
注意和第1种情况的区别在于子网掩码,1为255.255.255.0本例是255.255.255.192,这两台计算机就不能正常通讯。
图3
????第1种情况能通是因为这两台计算机处在同一网络192.168.0.0,所以能通,而2、3种情况下两台计算机处在不同的网络,所以不通。
????这里先给个结论:用网线直接连接或通过HUB或普通交换机间连接的计算机之间要能够相互通,计算机必须要在同一网络,也就是说它们的网络地址必须相同,而且主机地址必须不一样。如果不在一个网络就无法通。这就像我们上面举的例子,同是北大街的住户由于街道名称都是北大街,且各自的门牌号不同,所以能够相互找到对方。
????计算网络地址就是判断网络中的计算机是否在同一网络,在就能通,不在就不能通。注意,这里说的是否在同一网络指的是IP地址而不是物理连接。那么如何计算呢?
二、如何计算网络地址
????我们日常生活中的地址如:北大街1号,从字面上就能看出街道地址是北大街,而我们从IP地址中却难以看出网络地址,要计算网络地址,必须借助我们上边提到过的子网掩码。
????计算过程是这样的,将IP地址和子网掩码都换算成二进制,然后进行与运算,结果就是网络地址。与运算如下所示,上下对齐,1位1位的算,1与1=1,其余组合都为0
图4
????例如:计算IP地址为:202.99.160.50子网掩码是255.255.255.0的网络地址步骤如下:
????1)将IP地址和子网掩码分别换算成二进制
????202.99.160.50换算成二进制为11001010·01100011·10100000·00110010
????255.255.255.0换算成二进制为11111111·11111111·11111111·00000000
????2)将二者进行与运算
图5
????3)将运算结果换算成十进制,这就是网络地址。
????11001010·01100011·10100000·00000000换算成十进制就是202.99.160.0
????现在我们就可以解答上面三种情况的通与不通的问题了。
???1、从下面运算结果可看出两计算机的网络地址都为192.168.0.0且IP地址不同,所以可以通。
图6
????2、从下面运算结果可以看出1号机的网络地址为192.168.0.0;2号机的网络地址为192.168.1.0不在一个网络,所以不通。
图7
????3、从下面运算结果可以看出1号机的网络地址为192.168.0.0,2号机的网络地址为192.168.0.192不在一个网络,所以不通
图8
????看到这里大家应该明白为何要计算网络地址和如何计算了,但也许还有很多疑问,如IP地址为什么写成这样,子网掩码到底是怎么回事等等,别急,下面慢慢介绍。
三、IP地址的介绍
1、IP地址的表示方法
IP地址 = 网络号 + 主机号 192.168.100.1 = 192.168.100.0 + 0.0.0.1 192.168.100.3 = 192.168.100.0 + 0.0.0.3 192.168.1.100 = 192.168.1.0 + 0.0.0.100 如果把整个Internet网作为一个单一的网络,IP地址就是给每个连在Internet网的主机分配一个全世界范围内唯一的标示符,Internet管理委员会定义了A、B、C、D、E五类地址,在每类地址中,还规定了网络编号和主机编号。在TCP/IP协议中,IP地址是以二进制数字形式出现的,共32bit,1bit就是二进制中的1位,但这种形式非常不适用于人阅读和记忆。因此Internet管理委员会决定采用一种"点分十进制表示法"表示IP地址:面向用户的文档中,由四段构成的32比特的IP地址被直观地表示为四个以圆点隔开的十进制整数,其中,每一个整数对应一个字节(8个比特为一个字节称为一段)。A、B、C类最常用,下面加以介绍。本文介绍的都是版本4的IP地址,称为IPv4.
从上图可以看出:
A类地址:
A类地址的网络标识由第一组8位二进制数表示,
A类地址的特点是网络标识的第一位二进制数取值必须为"0"。
比如:
1.x.y.z = 00000001.x.y.z 10.x.y.z = 00001010.x.y.z 27.x.y.z? = 00011011.x.y.z 102.x.y.z = 01100110.x.y.z 127.x.y.z = 01111111.x.y.z 注意,127除了第一位为0,其他每位均为1。下一个更高的二进制值将在最左位上设置1,然而,其结果不是A类地址。所以,127.x.y.z是最高的A类地址。
A类地址使用第一个八位二进制比特位表示惟一性网络地址,而用其余3个八位二进制位表示该网络上的主机地址。由于第一个比特位为0,所以,在第一个八位二进制位中余下的7位用于将本网络与其他网络区分开来。而另24位由每个主机使用,作为该网上标识自己的编号。要注意重要的规则是网络地址不可以全部为0。
这就是说,只有127个A类地址可用。使人马上想到有127个网络,下面的等式提供:
27-1=127
上式中的2是每比特位可能的值(1或0),7是所用的位数量,1是7位均为0的地址(注意:网络地址不能全为0)。
对于127个网络中的每个网络,每个地址使用另24位组成自己的主机惟一性。24位的所有可能组合产生了惟一性主机IP地址的数量,可用于127个网络中的每个网络,127个A类网络的每个都有224—2=16,777,214个可能的惟一性IP地址。地址的主机部分也不能全为0,且不能全为1。这样,每个A类网的主机数量从下面公式得出:
224-2=16,777,214
减去2是因为全为1和全为0的地址是无效的。
在127个可以使用的A类网络中,有一个地址预留出来为测试使用:网络地址127.x.y.z被预留为回送地址。比如,网络管理员正测试TCP/IP安装时,测试127.0.0.1指的是被测试的主机。这样实际能使用的A类网络号只有126个。
B类地址:?
B类地址的第一个八位二进制位的十进制数是在128到191。比如:128.x.y.z
以二进制数来看,B类地址的最左两位总是10。如:
128.x.y.z = 10000000.x.y.z 151.x.y.z = 10010111.x.y.z 165.x.y.z = 10100101.x.y.z 191.x.y.z = 10111111.x.y.z 注意,191的八位二进制位的每位都是1,只有左数第2位是0。下一个比它大的二进制值将在左数第2位上设1,其结果就不是B类地址了。这样,191.x.y.z是最高的B类地址。
B类地址使用最前面的两个八位二进制位表示惟一性网络地址,并用另两个八位二进制位组成该网络上的惟一性主机地址。
因为头两位为10,所以,就用第一个字节的其余6位和第2字节的所有8位标识出本网络。主机使用16位在网络上标识自己。下式提供了B类网的数量:
214=16,384
即可以使用16,384个B类网。在这16,384个网络中的每个网上,每个地址使用另16位标识自己。16位的所有可能的组合生成惟一性主机IP地址的数量。16,384个网络的每个均可有此数量的主机IP地址。16,384个B类网络的每个网上可能有65,534个唯一性IP地址:
216-2=65,534
C类地址:
C类地址的第一个字节的十进制数在192和223之间。如:192.x.y.z
用二进制来看,?C类地址的最左三位为110。如:
192.x.y.z = 11000000.x.y.z 200.x.y.z = 11001000.x.y.z 210.x.y.z = 11010010.x.y.z 223.x.y.z = 11011111.x.y.z 注意,223除了左数第3位为0,其他位均为l。下一个比它高的二进制数将在左数第3位上设1,结果地址将不属于C类。所以,223.x.y.z是最高C类地址。
C类地址使用前三个字节表示惟一性网络地址,并用其余的一个字节表示该网上的惟一性主机地址。因为第一个字节的前三位是110,C类地址的网络部分包括第一个字节剩下的5位、第二个字节的所有8位以及第3个字节的所有8位,总共21位。主机使用剩下的8位在该网络上标识自己。C类网数量可以有:
221=2,0971,152
也就是说,可以使用的C类网共有2,097,152个。在2,097,152个网的每个网上,每个地址使用其他8位标识自己。8个位的所有可能组合生成惟一性IP地址数量,这个数量可用于2,097,152个网络的每个网上。2,097,152个C类网的每个网络有255个可能的惟一性IP地址:
28-2=254
??有些人对范围是2x不太理解,举个简单的例子加以说明。如C类网,每个网络允许有28-2=254台主机是这样来的。因为C类网的主机位是8位,变化如下:
00000000
00000001
00000010
00000011
……
11111110
11111111
??除去00000000和11111111不用外,从00000001到11111110共有254个变化,也就是28-2个。下图是IP地址的使用范围。
2、几个特殊的IP地址
1)私有地址
??上面提到IP地址在全世界范围内唯一,看到这句话你可能有这样的疑问,像192.168.0.1这样的地址在许多地方都能看到,并不唯一,这是为何?Internet管理委员会规定如下地址段为私有地址,私有地址可以自己组网时用,但不能在Internet网上用,Internet网没有这些地址的路由,有这些地址的计算机要上网必须转换成为合法的IP地址,也称为公网地址,这就像有许多的世界公园,每个公园内都可命名相同的大街,如香榭丽舍大街,但对外我们只能看到公园的地址和真正的香榭丽舍大街。下面是A、B、C类网络中的私有地址段。你自己组网时就可以用这些地址了。
??10.0.0.0~10.255.255.255
??172.16.0.0~172.31.255.255
??192.168.0.0~192.168.255.255
2)回送地址
??A类网络地址127是一个保留地址,用于网络软件测试以及本地机进程间通信,叫做回送地址(loopbackaddress)。无论什么程序,一旦使用回送地址发送数据,协议软件立即返回之,不进行任何网络传输。含网络号127的分组不能出现在任何网络上。
[小技巧]
Ping127.0.0.1,如果反馈信息失败,说明IP协议栈有错,必须重新安装TCP/IP协议。如果成功,ping本机IP地址,如果反馈信息失败,说明你的网卡不能和IP协议栈进行通信。
如果网卡没接网线,用本机的一些服务如SqlServer、IIS等就可以用127.0.0.1这个地址。
3)广播地址
??TCP/IP规定,主机号全为"1"的网络地址用于广播之用,叫做广播地址。所谓广播,指同时向同一子网所有主机发送报文。
4)网络地址
????TCP/IP协议规定,各位全为"0"的网络号被解释成"本"网络。由上可以看出:一、含网络号127的分组不能出现在任何网络上;二、主机和网关不能为该地址广播任何寻径信息。由以上规定可以看出,主机号全"0"全"1"的地址在TCP/IP协议中有特殊含义,一般不能用作一台主机的有效地址。
3、子网掩码
??从上面的例子可以看出,子网掩码的作用就是和IP地址与运算后得出网络地址,子网掩码也是32bit,并且是一串1后跟随一串0组成,其中1表示在IP地址中的网络号对应的位数,而0表示在IP地址中主机对应的位数。
1)标准子网掩码
????A类网络(1-126)缺省子网掩码:255·0·0·0
??255·0·0·0换算成二进制为11111111·00000000·00000000·00000000
??可以清楚地看出前8位是网络地址,后24位是主机地址,也就是说,如果用的是标准子网掩码,看第一段地址即可看出是不是同一网络的。如21.0.0.0.1和21.240.230.1,第一段为21属于A类,如果用的是默认的子网掩码,那这两个地址就是一个网段的。
??B类网络(128-191)缺省子网掩码:255·255·0·0
??C类网络(192-223)缺省子网掩码:255·255·255·0
??B类、C类分析同上。
2)特殊的子网掩码
??标准子网掩码出现的都是255和0的组合,在实际的应用中还有下面的子网掩码
??255·128·0·0
??255·192·0·0
??。。。。。。
??255·255·192·0
??255·255·240·0
??。。。。。。
??255·255·255·248
??255·255·255·252
??这些子网掩码又是什么意思呢?这些子网掩码的出现是为了把一个网络划分成多个子网络。
还记得上面的例子吗?如下所示:192·168·0·1和192·168·0·200如果是默认掩码255.255.255.0两个地址就是一个网络的,如果掩码变为255.255.255.192这样各地址就不属于一个网络了。下面将对子网划分作详细介绍。
当子网掩码为255·255·255·0时,通过下式计算网络地址为192.168.0.0
192·168·000·001 11000000·10101000·00000000·00000001 192·168·000·200 11000000·10101000·00000000·11001000 255·255·255·000 11111111·11111111·11111111·00000000 当子网掩码为255·255·255·192时,通过下式计算网络地址为192.168.0.192
192·168·000·001 11000000·10101000·00000000·00000001 192·168·000·200 11000000·10101000·00000000·11001000 255·255·255·192 11111111·11111111·11111111·11000000
四、通过IP地址和子网掩码与运算计算相关地址
????知道ip地址和子网掩码后可以算出:
????1、网络地址
????2、广播地址
????3、地址范围
4、本网有几台主机
5、与运算规则:1与1为1,1与0、0与1均为0
????
【例1】
[题目]下面例子IP地址为192.168.100.5子网掩码是255.255.255.0。算出网络地址、广播地址、地址范围、主机数。
[分析]
一)分步骤计算
????1)将IP地址和子网掩码换算为二进制,子网掩码连续全1的是网络地址,后面的是主机地址。虚线前为网络地址,虚线后为主机地址
网络地址(网络ID) 主机ID 192.168.100.5 11000000.10101000.01100100.00000101 255.255.255.0 11111111.11111111.11111111.00000000 与运算 结果为 192.168.100.0 11000000.10101000.01100100.00000000 2)本例中所给地址所C类地址,则IP地址和子网掩码进行与运算所得结果是网络地址
????3)将上面的网络地址中的网络地址部分不变,主机地址变为全1,结果就是广播地址。
????4)地址范围就是包含在本网段内的所有主机
????网络地址加1即为第一个主机地址,广播地址减1即为最后一个主机地址,由此可以看出
????地址范围是:网络地址+1至广播地址-1
????本例的网络范围是:192·168·100·1至192·168·100·254
????也就是说下面的地址都是一个网段的。
192·168·100·1、192·168·100·2。。。192·168·100·20。。。192·168·100·111。。。192·168·100·254
5)主机的数量
????主机的数量=2二进制的主机位数-2
????减2是因为主机地址不包括网络地址和广播地址。本例二进制的主机位数是8位。
????主机的数量=28–2=254
二)总体计算
????我们把上边的例子合起来计算一下过程如下:
例2:IP地址为128·36·199·3子网掩码是255·255·240·0。算出网络地址、广播地址、地址范围、主机数。
1)将IP地址和子网掩码换算为二进制,子网掩码连续全1的是网络地址,后面的是主机地址,虚线前为网络地址,虚线后为主机地址
2)IP地址和子网掩码进行与运算,结果是网络地址
3)将运算结果中的网络地址不变,主机地址变为1,结果就是广播地址。
4)地址范围就是含在本网段内的所有主机
网络地址+1即为第一个主机地址,广播地址-1即为最后一个主机地址,由此可以看出
地址范围是:网络地址+1至广播地址-1
本例的网络范围是:128·36·192·1至128·36·207·254
5)主机的数量
主机的数量=2二进制位数的主机-2
主机的数量=212–2=4094
减2是因为主机不包括网络地址和广播地址。
【小结】
1、从上面两个例子可以看出:不管子网掩码是标准的还是特殊的,计算网络地址、广播地址、地址数时只要把地址换算成二进制,然后从子网掩码处分清楚连续1以前的是网络地址,后是主机地址进行相应计算即可。
2、地址范围就是含在本网段内的所有主机
网络地址+1即为第一个主机地址
广播地址-1即为最后一个主机地址
由此可以看出,地址范围是:网络地址+1至广播地址-1
3、主机的数量=2二进制位数的主机-2
五、划分子网
上面的例子192.168.0.0子网掩码为255.255.255.0的这个网络中可容纳254台主机,如果想把一个网络分成两个以上的网络该如何分呢?IP地址是由网络地址+主机地址组成的,增加网络部分的长度,减少主机地址的长度就能将一个网络划分成数个网络。具体的解决办法就是增加子网掩码中连续1,这样相应的主机地址就减少了。看个具体的例子就明白了。
192·168·0·0 11000000·10101000·00000000·00000000 255·255·255·0 11111111·11111111·11111111·00000000 子网掩码由255·255·255·0变为255·255·255·192后网络位和主机位变化如下:
192·168·0·0 11000000·10101000·00000000·00000000 255·255·255·192 11111111·11111111·11111111·11000000 可看出当子网掩码从网络位从255·255·255·0变为255·255·255·192时网络位由24位变成26位,IP地址前24位是规定的网络位数,是不能改变的,而从主机借来的25、26两位是可以改变的。
11000000·10101000·00000000·00000000 11000000·10101000·00000000·01000000 11000000·10101000·00000000·10000000 11000000·10101000·00000000·11000000 如上所示:IP地址借来的两位有四种变化00、01、10、11。也就是说将一个网络分成了四个网络。我们称分出来的网络叫子网。
下面我们计算一下每个子网的网络地址、广播地址和地址范围:
子网1:
192.168.000.00011000000·10101000·00000000·00000000
255.255.255.19211111111·11111111·11111111·11000000
与运算
网络地址为:192.168.0.0011000000·10101000·00000000·00000000
广播地址为:192.168.0.6311000000·10101000·00000000·00111111
地址范围是:192.168.0.1至192.168.0.62
默认网关是:192.168.0.1
子网2:
192.168.000.06411000000·10101000·00000000·01000000
255.255.255.19211111111·11111111·11111111·11000000
与运算
网络地址为:192.168.0.06411000000·10101000·00000000·01000000
广播地址为:192.168.0.12711000000·10101000·00000000·01111111
地址范围是:192.168.0.65至192.168.0.126
默认网关是:192.168.0.65
子网3:
192.168.000.12811000000·10101000·00000000·10000000
255.255.255.19211111111·11111111·11111111·11000000
与运算
网络地址为:192.168.0.12811000000·10101000·00000000·10000000
广播地址为:192.168.0.19111000000·10101000·00000000·10111111
地址范围是:192.168.0.129至192.168.0.190
默认网关是:192.168.0.129
子网4:
192.168.000.19211000000·10101000·00000000·11000000
255.255.255.19211111111·11111111·11111111·11000000
与运算
网络地址为:192.168.0.19211000000·10101000·00000000·11000000
广播地址为:192.168.0.25511000000·10101000·00000000·11111111
地址范围是:192.168.0.193至192.168.0.254
默认网关是:192.168.0.193
从下表可以清楚看出四个子网的相关数据,这里特别需要指出的是如果所在网络中不允许使用全0和全1的网络,那子网1和4因为分别是全0和全1组合,不能使用,该网络只能分为2、3两个子网。
子网序号 网络地址 地址范围 广播地址 备注 1 192.168.0.0 192.168.0.1-192.168.0.62 192.168.0.63 全0组合一般不使用 2 192.168.0.64 192.168.0.65-192.168.0.126 192.168.0.127 3 192.168.0.128 192.168.0.129-192.168.0.190 192.168.0.191 4 192.168.0.192 192.168.0.193-192.168.0.254 192.168.0.255 全1组合一般不使用 每个子网中所含的主机数为:26–2=62
【实例1】
[题目]若ISP分配给某单位一个B类网络130·20·0·0子网掩码255·255·0·0,现在需要划分4个子网。
[解析]
计算步骤如下:
1)?根据需要的子网数计算出需要从主机位借几位
22-2=223-2=624-2=14
减2是因为去掉全0和全1组合,借两位分为2个子网,借4位分为14个子网,可见应该借3位分为6个子网。
2)根据借的位数改变子网掩码
借3位后子网掩码由原来的
255·255·0·011111111·11111111·00000000·00000000
变为255·255·224·011111111·11111111·11100000·00000000
3)计算一下每个子网的网络地址、广播地址和地址范围,下面只列出算式给出最后结果。计算方法过程同上。
变化的IP地址 10000010·00010100·00000000·00000000 10000010·00010100·00100000·00000000 10000010·00010100·01000000·00000000 10000010·00010100·01100000·00000000 10000010·00010100·10000000·00000000 10000010·00010100·10100000·00000000 10000010·00010100·11000000·00000000 10000010·00010100·11100000·00000000 改变后的子网掩码 11111111·11111111·11100000·00000000 过程省略……
本例子网的相关数据:
子网序号 网络地址 地址范围 广播地址 备注 1 130.20.0.0 130.20.0.1-130.20.31.254 130.20.31.255 全0组合一般不使用 2 130.20.32.0 130.20.32.1-130.20.63.254 130.20.63.255 3 130.20.64.0 130.20.64.1-130.20.95.254 130.20.95.255 4 130.20.96.0 130.20.96.1-130.20.127.254 130.20.127.255 5 130.20.128.0 130.20.128.1-130.20.159.254 130.20.159.255 6 130.20.160.0 130.20.160.1-130.20.191.254 130.20.191.255 7 130.20.192.0 130.20.192.1-130.20.223.254 130.20.223.255 8 130.20.224.0 130.20.224.1-130.20.255.254 130.20.255.255 全1组合一般不使用 每个子网中所含的主机数为:213-2=8190
【附录1】
下表是A、B、C类网络中常用子网划分对照表:(表中没有排除全1和全0组合)
A类网络 需要的子网数目 主机位数 子网掩码(/后面的数位全1的个数) 每个子网的主机数目 1-2 1 255.128.0.0或/9 8,388,606 3-4 2 255.192.0.0或/10 4,194,302 5-8 3 255.224.0.0或/11 2,097,150 9-16 4 255.240.0.0或/12 1,048,574 17-32 5 255.248.0.0或/13 524,286 33-64 6 255.252.0.0或/14 262,142 65-128 7 255.254.0.0或/15 131,070 129-256 8 255.255.0.0或/16 65,534 257-512 9 255.255.128.0或/17 32,766 513-1,024 10 255.255.192.0或/18 16,382 1,025-2,048 11 255.255.224.0或/19 8,190 2,049-4,096 12 255.255.240.0或/20 4,094 4,097-8,192 13 255.255.248.0或/21 2,046 8,193-16,384 14 255.255.252.0或/22 1,022 16,385-32,768 15 255.255.254.0或/23 510 32,769-65,536 16 255.255.255.0或/24 254 65,537-131,072 17 255.255.255.128或/25 126 131,073-262,144 18 255.255.255.192或/26 62 262,145-524,288 19 255.255.255.224或/27 30 524,289-1,048,576 20 255.255.255.240或/28 14 1,048,577-2,097,152 21 255.255.255.248或/29 6 2,097,153-4,194,304 22 255.255.255.252或/30 2 B类网络 需要的子网数目 主机位数 子网掩码 每个子网的主机数 1-2 1 255.255.128.0或/17 32,766 3-4 2 255.255.192.0或/18 16,382 5-8 3 255.255.224.0或/19 8,190 9-16 4 255.255.240.0或/20 4,094 17-32 5 255.255.248.0或/21 2,046 33-64 6 255.255.252.0或/22 1,022 65-128 7 255.255.254.0或/23 510 129-256 8 255.255.255.0或/24 254 257-512 9 255.255.255.128或/25 126 513-1,024 10 255.255.255.192或/26 62 1,025-2,048 11 255.255.255.224或/27 30 2,049-4,096 12 255.255.255.240或/28 14 4,097-8,192 13 255.255.255.248或/29 6 8,193-16,384 14 255.255.255.252或/30 2 C类网络 需要的子网数 主机位数 子网掩码 每个子网的主机数 1-2 1 255.255.255.128或/25 126 3-4 2 255.255.255.192或/26 62 5-8 3 255.255.255.224或/27 30 C类网络 需要的子网数 主机位数 子网掩码 每个子网的主机数 9-16 4 255.255.255.240或/28 14 17-32 5 255.255.255.248或/29 6 33-64 6 255.255.255.252或/30 2
六、为什么不使用全0和全1子网
上面提到一般不使用全0和全1子网,为什么呢?
上例中192·168·0·0掩码255.255.255.192可分成4个子网,第一个子网192.168.0.1-192.168.0.62和最后一个子网192.168.0.193-192.168.0.254通常也被保留,不能使用.原因是,第一个子网的网络地址192.168.0.0和最后一个子网的广播地址192.168.0.255具有二意性。先看这个大的C类网络地址和广播地址。192.168.0.0是它的网络地址,192.168.0.255是它的广播地址。显然,它们分别与第一个子网的网络地址和最后一个子网的广播地址相重了。
那么怎样区分192.168.0.0到底是哪个网络的网络地址呢?答案是:把子网掩码加上去。
192.168.000.000255.255.255.000中192.168.0.0是大C类网络的网络地址。
192.168.000.000255.255.255.192中192.168.0.0是第一个子网的网络地址。
192.168.000.255255.255.255.000中192.168.0.255是大C类网络的广播地址。
192.168.000.255255.255.255.192中192.168.0.255是最后一个子网的广播地址。
带上掩码,它们的二意性就不存在了。(下面这段话是从其它文章中copy过来的)
所以,在严格按照TCP/IPA、B、C、D给IP地址分类的环境下,为了避免二意性,全0和全1网段都不让使用.这种环境我们叫作Classful(ClassfulRouting有类路由)。在这种环境下,子网掩码只在所定义的路由器内有效,掩码信息到不了其它路由器.比如RIP-1,它在做路由广播时根本不带掩码信息,收到路由广播的路由器因为无从知道这个网络的掩码,只好照标准TCP/IP的定义赋予它一个掩码.比如,拿到10.X.X.X,就认为它是A类,掩码是255.0.0.0;拿到一个204.X.X.X,就认为它是C类,掩码是255.255.255.0.但在Classless(ClasslessRouting无类路由)的环境下,掩码任何时候都和IP地址成对地出现,这样,前面谈到的二意性就不会存在。
是Classful还是Classless取决于你在路由器上运行的路由协议,一个路由器上可同时运行Classful和Classless的路由协议。RIP1(RIP1以广播的方式来发现路由和维护路由表,RIP2可以广播或多点传送的方式来发现路由和维护路由表,如果网络采用CIDR方式来优化IP地址分配,就只能用RIP2,RIP1不支持CIDR)是Classful的,它在做路由广播时不带掩码信息;OSPF,EIGRP,BGP4是Classless的,它们在做路由广播时带掩码信息,它们可以同时运行在同一台路由器上。在CISCO路由器上,缺省你可以使用全1网段,但不能使用全0网段。所以,当你在CISCO路由器上给端口定义IP地址时,该IP地址不能落在全0网段上。如果你配了,你会得到一条错误信息。使用IPSUBNET-ZERO命令之后,你才能使用全0网段。另外要强调的是,使用了IPSUBNET-ZERO命令之后,如果路由协议使用的是CLASSFUL的(如RIP1),虽然你定义成功了,但那个子网掩码还是不会被RIP1带到它的路由更新报文中。即IPSUBNET-ZERO命令不会左右路由协议的工作。总之,TCP/IP协议中,全0和全1网段因为具有二意性而不能被使用。CISCO缺省使全1网段可以被使用,但全0网段只有在配置了IPSUBNET-ZERO后方可被使用。
注:Rip1与Rip2的区别
RIP1是有类路由(classful)协议,它们在宣告路由信息时不携带网络掩码
RIP2是无类路由(classless)协议,它们在宣告路由信息时携带网络掩码
RIP1是广播发送路由更新,广播地址为255.255.255.255
RIP2是组播发送路由更新,广播地址为224.0.0.9
七、无分类编址CIDR
实例:某企业需要1000个IP地址,按上面学的知识,有两种分配方案,一是分配给该校1个B类地址,地这样会造成216-2-1000=64534个地址浪费。二是分配4个C类地址,这样会造成每个路由器的路由表增加4个相应的项。
另外,上面说的子网划分的解决方案存在一个问题就是浪费地址,过多的子网会导致主机地址减少。在每个子网内,总是有两个地址用于网络地址和广播地址。如果子网过多,地址数量最多有可能会减少一半。举例说,一个C类网络通常支持254个主机。然而,把C类网络分成64个子网,这样每个子网分给主机的地址只有2个,主机地址就会从254个减少到128个。在IPv4中这样的做法是非常不可取的。
如何解决呢?方法就是丢弃分类地址概念,采用CIDR(无类型域间路由,ClasslessInter-DomainRouting)
CIDR采用13~27位可变网络ID,而不是A-B-C类网络所用的固定的1字节、2字节和3字节。CIDR消除了子网的概念,IP地址=网络前缀+主机号。使用斜线记法,在IP地址后加上一个斜线“/”,然后写上网络前缀所占的位数,如:20.1.1.1255.192.0.0按CIDR记为20.1.1.1/10,10表示连续10个1,也就是网络前缀占10位。再例如,CIDR地址200.1.1.2/24表示前24位用作网络前缀。
CIDR最大的好处就是大大缩减了路由器的路由表大小,而且减少了地址浪费。CIDR(ClasslessInter-DomainRouting,无类型域间路由)的基本思想是取消IP地址的分类结构,将多个地址块聚合在一起生成一个更大的网络,以包含更多的主机。CIDR支持路由聚合,能够将路由表中的许多路由条目合并为成更少的数目,因此可以限制路由器中路由表的增大,减少路由表项。
CIDR最主要的特点有两个:
1)CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间,并且可以在新的IPv6使用之前容许因特网的规模继续增长。
2)CIDR将网络前缀都相同的连续的IP地址组成“CIDR地址块”,地址是连续的。不然,就不可能设计出包含所需地址、但排除不需要地址的前缀。为了达到这个目的,超网块(supernetblock)即大块的连续地址就分配给ISP,然后ISP负责在用户当中划分这些地址,从而减轻了ISP自有路由器的负担。
我们回到上面的例子,ISP拥有地址块200.0.64.0/18,某企业需要大约1000个IP地址,210=1024,所占的地址位是10位,ISP分给该企业的地址块可以是:200.0.68.0/22(网络位22位,主机位10位)。
假如该企业下分四个子公司,个子公司需要的IP地址是:A公司500个、B公司250个、C公司120个、D公司120个。问如何用CIDR分配这些地址。
要解答这个问题,先分析一个不同机构的地址块。
1)ISP:200.0.64.0/18
第一个地址为:200.0.064.00011001000.00000000.01000000.00000000
最后一个地址为:200.0.127.25511001000.00000000.01111111.11111111
计算得出该ISP共有地址总数为214=16384个地址。共有26=64个C类网(6是第三段地址取6位)。
2)企业需要大约1000个IP地址,210=1024,所占的地址位是10位,网络位占22位,将ISP中的200.0.64.0/22分给企业可满足要求。
假定企业已从ISP处获得:200.0.64.0/22
第一个地址为:200.0.64.00011001000.00000000.01000000.00000000
最后一个地址为:200.0.67.25511001000.00000000.01000011.11111111
3)根据各单位计算出需要的主机和网络位数,如下表所示:
单位名称 需要地址 计算主机位数 主机位数 网络位数 A公司 500个 29=512 9位 32-9=23位 B公司 250个 28=256 8位 32-8=24位 C公司 120个 27=128 7位 32-7=25位 D公司 120个 27=128 7位 32-7=25位
根据上表可以将200.0.64.0/22再划分为:
A公司:200.0.64.0/23
第一个地址为:200.0.64.00011001000.00000000.01000000.00000000
最后一个地址为:200.0.65.25511001000.00000000.01000001.11111111
B公司:200.0.66.0/24
第一个地址为:200.0.66.00011001000.00000000.01000010.00000000
最后一个地址为:200.0.66.25511001000.00000000.01000010.11111111
C公司:200.0.67.0/25
第一个地址为:200.0.67.00011001000.00000000.01000011.00000000
最后一个地址为:200.0.67.12711001000.00000000.01000011.01111111
D公司:200.0.67.128/25
第一个地址为:200.0.67.12811001000.00000000.01000011.10000000
最后一个地址为:200.0.67.25511001000.00000000.01000011.11111111
4)当你看到CIDR的标记方法也许会想,如图1所示界面中没有“/”,其实把计算出网络位数换算成十进制就行了。如A公司的掩码为:255.255.254.0,B公司的掩码为:255.255.255.0,C和D公司的掩码为255.255.255.128
5)从上面可以清楚看出地址聚合的概念,此例ISP拥有64个C类网络,如果不用CIDR,那在与该ISP相连的每个路由器的路由表中都有64个路由项,而采用CIDR后,只需用路由聚合后的一个项目200.0.64.0/18就能找到该ISP,200.0.64.0/22就能找到该企业。这样就大大减少了路由项。关于路由的问题不是本文的重点,有不清楚的地方请参阅其它资料。另外,支持CIDR的协议可以用全0和全1的网络,这样大大节约了地址。
对于IP地址的计算是不是有点晕,我也一样,写此文时也是回忆了很久,对于原理性的东西一定要掌握,但真正的应用不用这么辛苦,就像小学生学加减乘除时一定要学会笔算,学会了就可以用计算器了。下面介绍一个非常优秀的IP地址计算工具。
八、IP地址计算的工具
IPSubnetCalculatorVersion3.2.1.0下载地址如下:
http://www.wildpackets.com/products/ipsubnetcalculator的FreeDownload
下载的文件是:IPSubnetCalc321.exe,运行该文件进行安装,运行该软件,界面如下:
九、补充
回到开始的问题,图1中出现的IP地址、子网掩码想必大家已经很清楚了,那默认网关和DNS服务器填什么呢?
答:同一子网的计算机互相访问是不需要添网关的,不同子网的计算机互相访问就需要添网关地址,该地址就是路由器和本子网连接的接口地址,网关地址一定是和本机地址在一个子网。DNS服务就是将IP地址解析成域名如www.google.com,该服务器的地址一般是ISP提供的,这个地址只要是合法的DNS服务器就行,如河北的可以添北京的DNS服务器地址。文章中有许多0、1数字,不知有没有笔误,若有请指出。
【参考文献】
1、本文载自:http://bbs.zgkw.cn/space/viewspacepost.aspx?postid=239&spaceid=8
修订者空间:http://hi.baidu.com/abc5186二次修订者空间:http://hi.baidu.com/sugangsg
3、参考了浙江工业大学的《大学计算机网络基础》课程内相关内容网址:http://www.wsncs.zjut.edu.cn/network/Artical.asp?ID=118
IP地址及子网划分和计算
118
|
|