子网划分的意义以及全0全1子网段是否可用?

本文详细阐述了子网划分的目的、原理及应用实例,并对比了传统子网划分与CIDR技术在IP地址利用效率上的区别。通过具体场景分析,揭示了CIDR技术如何更高效地管理IP地址资源。

子网划分的目的:1、减少广播风暴。

                2、有效利用IP地址。

例子:现在你的学校行政楼共四层,每层60个人办公,需要给这些机器配置IP地址和子网掩码。你可能会觉得这再简单不过了,采用4C类地址段,每层一个,然后在一一配置不就搞定了。这样做理论上没错,但你有没有想到这样做很浪费,你一共浪费了(254-60*4=764IP地址,如果公用网上也照你这样做,那么Internet上的IP地址早就枯竭了。


但是CIDR应用之前子网划分并没有使IP地址的利用变高。   

子网划分并没有节约IP地址,实际导致可分配的IP地址数目减少。
例子:比如一个C类地址,不进行子网划分,实际可分配IP地址为254个。
现进行子网划分,假设借用2位主机号作为子网号,
那么现在产生的子网为01和10(00,11子网号去掉),每个子网的主机号为6位,则每个子网可分配的IP地址为2的6次方减2,即62台。(0为网段号,1为该网段广播地址)
那么两个子网可分配的IP共62*2=124个,
那么减少的IP数目为:254-124=130个。

子网号为00(全0)和11(全1)的两个子网去掉了,为何要去掉“全0全1”的子网号?

不应该使用全0全1子网这个规定是源于RFC950标准,但后来RFC950在RFC1878中被废止了。

看看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子网。

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

就目前来说,现在可以使用全0和全1子网。但我们现在学习时,还强调子网划分时要去掉全0全1,这是何道理呢?
(1)目前有些网络建设较早,设备也不更新,老设备可能不支持CIDR,那么也就不支持全0全1的子网了。
(2)我们建网时,一般是使用私有地址来分配内部主机,而配置NAT(Network Address Transtation,网络地址翻译)与外网进行通信,而私有地址是很富裕的。

内网私有地址:

   A类 10.0.0.0 --10.255.255.255

   B类 172.16.0.0--172.31.255.255

  C类 192.168.0.0--192.168.255.255 
172.16.0.0/16地址进行子网划分,可按以下方法操作: 172.16.0.0/16是一个B类地址,默认子网掩码为255.255.0.0,其网络位为16位,主机位为16位。子网划分的核心是从主机位借位作为新的网络位。 #### 确定需要划分子网数量和每个子网所需的主机数量 根据实际需求确定要划分子网数量,以及每个子网中大概需要的主机数量。例如,若要划分16个子网,由于$2^4 = 16$,则需要从原来的主机位中借用4位作为新的网络位。 #### 计算新的子网掩码和子网前缀 原来的子网掩码是255.255.0.0,借用4位后,新的子网掩码二进制表示为11111111.11111111.11110000.00000000,转换为十进制就是255.255.240.0,对应的子网前缀为/20 。 #### 计算每个子网的范围 每个子网的大小由新的主机位数决定。借用4位后,主机位还剩12位,每个子网可容纳的主机数量为$2^{12}-2 = 4094$个(减去网络地址和广播地址)。 子网划分从网络地址开始,依次递增。第一个子网的网络地址是172.16.0.0/20,其广播地址是172.16.15.255 ,可用地址范围是172.16.0.1 - 172.16.15.254 ;第二个子网的网络地址是172.16.16.0/20,广播地址是172.16.31.255 ,可用地址范围是172.16.16.1 - 172.16.31.254 ,以此类推。 以下是Python代码示例,用于计算子网划分后的各个子网信息: ```python import ipaddress network = ipaddress.ip_network('172.16.0.0/16') subnets = list(network.subnets(prefixlen_diff=4)) # 借用4位 for subnet in subnets: print(f"子网网络地址: {subnet.network_address}/{subnet.prefixlen}") print(f"可用地址范围: {subnet.network_address + 1} - {subnet.broadcast_address - 1}") print(f"广播地址: {subnet.broadcast_address}") print() ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值