子网划分方法

个人博客:https://suveng.github.io/blog/

子网划分方法

1. 传统划分,取主机号,造成IP浪费。
2. CIDR划分法,防止IP浪费。老设备不支持。


ipv4地址划分
ipv4的地址是32位二进制。分四个字节,用10进制表示。
ipv4分5类地址

  • A类地址
    网络地址的最高位必须是“0”
    32位二进制前2位为0*** **** | **** **** | **** **** | **** **** *为0或1任意
    地址范围0.0.0.0-127.255.255.255
    (0段和127段不使用)

  • B类地址
    网络地址的最高位必须是“10”
    32位二进制前2位为10** **** | **** **** | **** **** | **** **** *为0或1任意
    地址范围128.0.0.1-191.255.255.255

  • C类地址
    网络地址的最高位必须是“110”
    32位二进制前2位为110* **** | **** **** | **** **** | **** **** *为0或1任意
    地址范围:192.0.0.1-223.255.255.255

  • D类地址 用于多点广播(Multicast)
    网络地址的最高位必须是“1110”
    32位二进制前2位为1110 **** | **** **** | **** **** | **** **** *为0或1任意
    地址范围224.0.0.0-239.255.255.255

  • E类地址 为将来使用保留
    32位二进制前2位为1111 **** | **** **** | **** **** | **** **** *为0或1任意

  • 以上划分只是一个类别,其中有些存在特殊ip有特殊用途。


传统子网划分

IP地址结构=网络号+主机号

每一类IP有默认的网络号

类别网络号主机号子网掩码
A类前8位32-8=24位255.0.0.0
B类前16位32-16=16位255.255.0.0
C类前24位32-24=8位255.255.255.0

划分子网就是取主机号的任意位用作网络号的扩展,后面称这几位为子网号

现在来假设取了一个C类IP地址,取2位子网号,就是从主机号取了2位。还剩下6位主机号

那么两位二进制就有4种情况。00 01 10 11,按道理来讲,可以划分4个子网,每个子网里面有 2^6=64台主机才对。 8-2=6位。

但是事实不是的,为了避免子网的网络号,广播地址重复冲突。需要去掉00 11这两种情况。具体原因在下面.


引用CSDN某位大佬的博文。但是忘了那个了,抱歉。
看看RFC950提到的原因:
假设我们有一个网络:192.168.0.0/24,我们现在需要两个子网,那么按照RFC950,应该使用/26而不是/25,得到两个可以使用的子网192.168.0.64和192.168.0.128
对于192.168.0.0/24,网络地址是192.168.0.0,广播地址是192.168.0.255
对于192.168.0.0/26,网络地址是192.168.0.0,广播地址是192.168.0.63
对于192.168.0.64/26,网络地址是192.168.0.64,广播地址是192.168.0.127
对于192.168.0.128/26,网络地址是192.168.0.128,广播地址是192.168.0.191
对于192.168.0.192/26,网络地址是192.168.0.192,广播地址是192.168.0.255
你可以看出来,对于第一个子网,网络地址和主网络的网络地址是重叠的,对于最后一个子网,广播地址和主网络的广播地址也是重叠的。这样的重叠将导致极大的混乱。比如,一个发往192.168.0.255的广播是发给主网络的还是子网的?这就是为什么在当时不建议使用全0和全1子网。


还需要计算子网掩码,因为每个子网都需要网络号和广播地址。子网掩码(一共32位)只需要将源IP的网络号+子网号置1,用上面的例子就是255.255.255.192(这是化成10进制),数据报发过来的时候只需要目标IP地址和子网掩码进行与运算,就能知道地址到底是哪个的网络,这个需要路由和交换机的知识。

整个的流程就是

  1. 拿到分配的IP地址
  2. 看需求取子网号,比如100个子网,就需要2^7=128个子网了,所以取7位子网号
  3. 求子网掩码。
  4. 求子网的网络地址。只要拿子网的ip和子网掩码进行与运算就能得到网络地址了。

CIDR划分

如果前面的都懂的话,那么这个CIDR就基本没问题了。

我们通常看见的是210.110.2.65/24这种IP地址形式,那么后面的24是什么?

很明显,这是个c类地址,所以默认的子网掩码就是24位。那么ip后面这个24就是默认的c类地址的子网掩码了。但是还会遇见210.110.2.65/26这种不是默认c类地址的掩码,那么就是上面的所说的子网划分了,划分的子网26-24=2,也就取了2位主机号。但是用cidr划分的就是4个子网而不是上面的2个子网。为什么?!

这就算是cidr的魅力,他的目的就是为了减少传统分法的ip浪费。

然而,人们认识到子网划分的IP地址浪费严重,后来IETF就研究出了其他一些技术,比如可变长子网掩码VLSM,该技术是在子网上进一步划分子网,可提高IP地址资源的利用率;后来在此基础上研究出了无类别域间路由CIDR,即消除了传统的A/B/C等分类以及划分子网,才是采用网络前缀和主机号的方式来分配IP地址,这使得IP地址的利用率更好。这两者的具体技术暂时不阐述。

就目前来说,现在可以使用全0和全1子网。但我们现在学习时,还强调子网划分时要去掉全0全1,这是何道理呢?我个人认为:
(1)目前有些网络建设较早,设备也不更新,老设备可能不支持CIDR,那么也就不支持全0全1的子网了。
(2)我们建企业网(单位网络)时,一般是使用私有地址来分配内部主机,小企业使用C类的192.168.0.0网络,中型企业使用172.16.0.0(私有部分)网络,如果还不够用,还有10.0.0.0网络。

既然私有地址如此丰富,为何不去掉全0全1的子网呢?因为真要使用全0全1的子网,还需要在路由器上进行一些特殊的配置。

已标记关键词 清除标记
相关推荐
划分   Internet组织机构定义了五种IP地址,用于主机的有A、B、C三类地址。其中A类网络有126个,每个A类网络可能有16,777,214台主机,它们处于同一广播域。而在同一广播域中有这么多结点是不可能的,网络会因为广播通信而饱和,结果造成16,777,214个地址大部分没有分配出去,形成了浪费。而另一方面,随着互连网应用的不断扩大,IP地址资源越来越少。为了实现更小的广播域并更好地利用主机地址中的每一位,可以把基于类的IP网络进一步分成更小的网络,每个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于类的网络地址的主机部分创建的。划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。   1. 子网掩码   RFC 950定义了子网掩码的使用,子网掩码是一个32位的2进制数,其对应网络地址的所有位都置为1,对应于主机地址的所有位都置为0。由此可知,A类网络的缺省的子网掩码是255.0.0.0,B类网络的缺省的子网掩码是255.255.0.0,C类网络的缺省的子网掩码是255.255.255.0。将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。子网掩码常用点分十进制表示,我们还可以用网络前缀法表示子网掩码,即“/<网络地址位数>”。如138.96.0.0/16表示B类网络138.96.0.0的子网掩码为255.255.0.0。   子网掩码告知路由器,地址的哪一部分是网络地址,哪一部分是主机地址,使路由器正确判断任意IP地址是否是本网段的,从而正确地进行路由。例如,有两台主机,主机一的IP地址为222.21.160.6,子网掩码为255.255.255.192,主机二的IP地址为222.21.160.73,子网掩码为255.255.255.192。现在主机一要给主机二发送数据,先要判断两个主机是否在同一网段。   主机一   222.21.160.6即:11011110.00010101.10100000.00000110   255.255.255.192即:11111111.11111111.11111111.11000000   按位逻辑与运算结果为: 11011110.00010101.10100000.00000000   主机二   222.21.160.73 即:11011110.00010101.10100000.01001001   255.255.255.192即:11111111.11111111.11111111.11000000   按位逻辑与运算结果为:11011110.00010101.10100000.01000000   两个结果不同,也就是说,两台主机不在同一网络,数据需先发送给默认网关,然后再发送给主机二所在网络。那么,假如主机二的子网掩码误设为255.255.255.128,会发生什么情况呢?   让我们将主机二的IP地址与错误的子网掩码相“与”:   222.21.160.73 即:11011110.00010101.10100000.01001001   255.255.255.128即:11111111.11111111.11111111.10000000   结果为 11011110.00010101.10100000.00000000   这个结果与主机的网络地址相同,主机与主机二将被认为处于同一网络中,数据不再发送给默认网关,而是直接在本网内传送。由于两台主机实际并不在同一网络中,数据包将在本子网内循环,直到超时并抛弃。数据不能正确到达目的机,导致网络传输错误。   反过来,如果两台主机的子网掩码原来都是255.255.255.128,误将主机二的设为255.255.255.192,主机一向主机二发送数据时,由于IP地址与错误的子网掩码相与,误认两台主机处于不同网络,则会将本来属于同一子网内的机器之间的通信当作是跨网传输,数据包都交给缺省网关处理,这样势必增加缺省网关的负担,造成网络效率下降。所以,子网掩码不能任意设置,子网掩码的设置关系到子网划分。   2. 子网划分与掩码的设置   子网划分是通过借用IP地址的若干位主机位来充当子网地址从而将原网络划分为若干子网而实现的。划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增加,而每个子网中的可用主机数逐渐减少。以C类网络为例,原有8位主机位,2的8次方即256个主机地址,默认子网掩码255.255.255.0。借用1位主机位,产生2个子网,每个子网有126个主机地址;借用2位主机位,产生4个子网,每个子网有62个主机地址……每个网
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:马嘣嘣 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值