IP子网地址的分配方法.docx
《IP子网地址的分配方法.docx》由会员分享,可在线阅读,更多相关《IP子网地址的分配方法.docx(10页珍藏版)》请在冰点文库上搜索。
IP子网地址的分配方法
2000年5月29日
—种灵活咼效的
IP子网地址分配方法
平顶山市尼龙六六盐公司梁淑范
编者按:
使用TCP/IP协议建立网络涉及到IP地址的合理分配,
它是计算机网络设计的一个重要环节。
本文介绍了一种灵活而高效地划分子网地址、充分利用地址空间的方法。
问题的提出
----一个具有相当规模的计算机网络,通常要划分为若干子网。
例如
一个大型企业,在很多地方都有分支机构或子公司,有的子公司较大,下边又设子公司,即三级公司。
这样,该企业的计算机网络就需要划分成很多子网和多级子网。
----在子网的划分中,通常采取的办法是同一级别的子网使用同样长
度的子网掩码,使得子网的规模都是同样大。
随着业务的发展,各个子网规模扩展的程度相差悬殊:
有的子网远远没有得到充分利用,造
成IP地址空间的严重浪费;有的不够用,还要再申请IP地址空间。
这样就造成了两方面的问题:
有些单位IP地址空闲;有些单位因新、老IP地址空间不连续而不能合成一个子网,使得同一单位子网之间的通信出现了问题。
子网的大小是由子网掩码确定的。
在理论上,子网掩码中各个
1”可以是不连续的,但是通常都建议将这些“1”连续,而且这些
1”要占据IP地址“主机”部分中权位高的部分(左边部分)。
相关协议中没有明确规定同一个网络中的不同子网是否可以使用不同掩码。
这种二意性导致开发出来的路由协议中有的不支持不同长度掩码(例如RIP协议)。
为了能够支持不同长度的掩码,RFC-1009
提出了解决方案,后来的路由协议就可以支持不同长度掩码(例如
OSPF协议)。
据此开发出支持不同掩码的路由器,但这还没有完全
解决子网划分的上述问题。
网络管理员必须确定每个子网的掩码,要预测每个子网将有多少主机,并据此决定每个子网的规模。
预测通常很不准确,因为有的单位IP地址浪费,而有的单位地址紧缺,这样的问题依然存在。
方案选择
子网划分是把IP地址的主机部分分成两段:
子网段和主机段。
地址分配效率低,主要原因是在设计时为了以后不再重分地址,总把子网规模估计过高。
另外,如果使用不支持不同长度子网的路由协议,每个子网都必须与最大子网具有相同的地址空间。
----我们可以考虑如下需要改变子网结构的情况:
一个网络有三个子
网AB和C,都在同一个B类地址空间中,例如都在160.200.0.0160.200.255.255。
为了简洁,把第3个字节作为子网部分,把第4
个字节作为子网中的主机。
第审疑韩辦节靭字节
161
M7
卜K
聃号謝
ifl
255
155
2SS
0
----为了讨论简洁,以下涉及地址的地方都只谈最后2个字节。
假设
A子网地址是1.0,B子网地址是2.0,C子网地址是3.0。
相应地,
在谈论掩码时也只谈最后2个字节。
----若子网B中要分配的主机数超过254台,理想情况是可以简单地
改变B的子网掩码,而不改变B中的主机地址。
如果3.0没被C占用,
B的掩码就可以从255.0(ff00)改为254.0(fe00),B子网地址空间扩
大1倍。
B已经分配的地址仍同新子网掩码符合。
但是,由于B上边
和下边的子网地址分别被A和C占用了,所以不能这样扩充。
----这样,有两种解决方案可供选择:
1.把已有子网分成二个;
----2.子网重新编码,使得子网使用较小的掩码(减少1的个数)。
----采用1方案有两种方式:
一种是在两个子网之间插入一个路由
器,这样会使成本提高,速度变慢;另一种是不插入路由器,两个子网号的主机彼此不能辨认,因而需要把报文分组发送到默认路由器上转发过去,而不是直接传递过去。
但是这种方式有局限性,不能保证
在所有主机上都能正常工作。
改B子网中所有主机与硬件地址有关的其他配置文件。
子网号的灵活分配
----如前所述,现在大多数子网都是把地址的主机部分分割成两个部
分:
子网段和主机段。
不同大小的子网,其子网段长度可以不同。
子网编号为1、2、3等。
这样,在子网段和主机段中左边的一些位都
子酿
是0这些位表示可用于扩充的空间。
主鳩
昶可以邮子网
----假设某个子网中主机数已经增加到能够允许的最大数目,但是这
子网段
个子网段还有剩余空间可用来分配更多地址,即:
主机段
----尽管主机数不能再增加了,可是整个地址空间还有增加的余地。
问题是可扩充空间所在的位置不灵活,剩余的空间只能提供给子网段进一步扩充。
----现在把子网号加1,向右扩展,于是就有了下述情况:
子网段
主机段
主机和子网都可以在这段增加
----总扩充空间同以前一样,可是主机和子网却都可以扩充。
其实,
上图还可以改变画法,如下图所示,把子网段和主机段分界线置于可扩充区域中间。
主机段
I子网段I
I1和0丨0
主机和子网都可以在这段增加
1.技术说明
----为了说明子网地址分配的这种新方法和使用的步骤,特引入并定
义如下概念:
•主机分配位(h位):
右起的连续位,可作为主机地址,不同子网可以有不同h位数。
•子网分配位(s位):
左起的连续位,它不同于h位,不同子
网的s位段值也不同,而且不同子网可以有不同的s位数。
•S掩码:
对应所有
s位的位都是1,而对应所有g位和h位的
位都是0。
都是0。
的部分或全部。
的部分或全部。
例如,地址ssggghhh的子网掩码是11110000,s
掩码是11000000,g掩码是11111000,子网段是ssgg,主机段是ghhh,主机分配位是hhh,子网分配位是ss,扩充位是ggg。
•镜像位图计数:
正规的二进制计数,即右边加1,向左进位。
这种计数用于主机值分配。
子网地址分配是左边加1,向右进位。
这
种计数位图是正常计数位图的镜像。
10
01
01
10
110
Oil
001
100
101
»
toi
*
Oil…11
■
IL.JllO
Hl…11
IL.llll
----2.应用举例
子网地址
----现在考虑添加第四个子网D而且再加上6个主机,于是:
10ggghhh
11110000
01ggghhh
11110000
110gghhh
11110000
001gghhh
11110000
掩码
A
B
C
D
----如此增加D子网后,并不需要改变原来各个子网的地址位状态,
这是因为D的子网号同其他子网号都不相同,彼此不冲突,因而轻易添加了子网D。
现在考虑再添加第五个子网E:
掩码
子网地址
----注意,强制A把它最左边的g位(位5)改变成s位,以便把子
网A和子网E分开。
把A的位5变成s位就可以避免向A中增加主机,最终达到位5变为1。
否则,A中的地址码就同E中的地址相同,这是不允许的。
还要注意,如果A和B的s掩码原来都设置成11000000,
那么加上E就将使A的s掩码变成11100000。
----现在考虑在A和C子网上再各添加8台主机,使每个子网主机总
数达到14台。
这就必须把A和C子网中每个主机g位中的最右边的
g位变成一个h位,即:
掩码都不需要改变。
如果A、B和C子网原来的掩码都设置成11111000,那么这些掩码就得改变。
F面向B子网添加足够多的主机,使得剩余的g位都变成h位。
A
100ghhhh
11110000
B
01hhhhhh
11000000
C
110ghhhh
11110000
D
001gghhh
11110000
E
101gghhh
11110000
注意,子网B的掩码已经改变,以便提供足够的
h位。
如果有
人为B分配主机地址,而这个人又不是分配网络号的人,
那么就必须
把
B的最后g
位变成一个h位,从而正确地分配其他子网号,就像
下边增加子网
F步骤那样。
A
100ghhhh
11110000
B
01hhhhhh
11000000
C
110ghhhh
11110000
D
001gghhh
11110000
----这里,F接受子网号1110而不是子网号011。
其原因有两点:
一
是011不能区别使用B掩码的B子网地址;二是由于位5已经分配给
B的主机,所以不能通过增加B掩码的办法把它们区别开来。
实际上,
在B子网中,位7和6为01的状况已经没有子网号可再分配了(除非B去掉一些主机)。
结论
本文介绍的方法不需要估计子网规模。
其要点是主机位从最低位开始分配,向最高位扩展;而子网位从高位开始分配,向低位扩展。
当子网扩大时就分配更多的主机位。
随着子网数目的增加,就可以分配更多子网位。
这个方法有时候要使用新的子网掩码,却从不需要改变主机地址。
RFC-1219中规定了实现这种方法的函数和步骤。