【软考】IP子网划分

曾经这是一块很让我头疼的知识,仔细把书研究了一遍之后终于搞懂,世上无难事只怕有心人。


1.首先,地址分配方案,IP一共32位

网络地址:

A类:8位  0开头

B类:8+8位 10开头

C类:8+8+8位 110开头



IP范围:

B类:128.0.0.0~191.255.255.255

这个范围之前为A类,之后为C类


你知道为什么是这个范围吗?仔细看B类的网络地址和主机地址。

最小范围:10000000.00000000.00000000.00000000   即128.0.0.0

最大范围:10111111.11111111.11111111.11111111即191.255.255.255


2.IP子网划分

为什么要划分子网?

①主机太少,IP泛滥

②主机太多,IP不够


举个例子1:

135.41.128.0/17 表示前17位都是网络号

这是一个B类地址,16位网络号,16位主机号,可分的IP有2的16次方个,主机却比2的16次方少太多,所以将B类网络ID 1位子网化,前17位是网络号,15位是主机号,可用的IP数为2的15次方。占用几个主机号根据具体题目而定。


将135.41.128.0/17划分2000台主机15个子网

为什么要划分子网:这就相当于,妈妈做了一张大饼,要送给15个亲戚,至于每户亲戚怎么吃这个饼是他们自己的事

怎么划分:先把15化成2进制 ——> 1111 ,占了4位,所以将135.41.128.0/17 再从主机位拿4位做网络号 ,即前17+4 = 21 位都是网络号



这样就产生了2的4次方(16)个子网(135.41.128.0/21、...135.41.240.0/21、135.41.248.0/21)

每个子网都允许有2046(2的11次方-2 ,去掉全0和全1)个主机


举个例子2:

220.17.192.0/20  被划分为?个子网

这就是个IP不够,向网络号借主机号的情况

C类地址本有24个网络号,现在只有20个是网络号,所以有4个网络号被分出去当主机号了,所以被划分为16(2的4次方)个子网。



3.子网掩码怎么求


把网络号全部置1,主机号全部置0,就是子网掩码


比如:

135.41.248.0/4 ,子网掩码就是把前20(8+8+4)位全部置1,后面全部置0

为:255.255.240.0

细心的孩子问啦,我要是135.41.248.0/8,子网掩码是255.255.255.0 ,那不就成C类地址啦!

怎么可能呢,想多了孩子。

B类地址是10开头的,C类地址是110开头的,你忘啦?


世上无难事只怕有心人,希望能给你带来收获。

### 子网划分计算方法 子网划分是一种通过调整子网掩码来分割网络的技术,目的是优化 IP 地址资源的利用效率并提高网络安全性和管理便利性。以下是关于子网划分的具体计算方法: #### 1. 基本概念 - **IP 地址结构**:IPv4 地址由两部分组成——网络号和主机号。 - **子网掩码作用**:用于区分 IP 地址中的网络位和主机位[^1]。 #### 2. 计算步骤 ##### (1) 确定所需子网数量 根据实际需求确定需要划分子网的数量 \( N \),然后找到满足条件的最小整数 \( m \),使得 \( 2^m \geq N \)[^3]。 例如,如果需要创建 6 个子网,则 \( m = 3 \)(因为 \( 2^3 = 8 \geq 6 \))。 ##### (2) 修改子网掩码 将原子网掩码扩展 \( m \) 位作为新的子网掩码。每增加一位表示可以额外定义两个子网[^1]。 例如,原始子网掩码为 /24(即 255.255.255.0),要新增加 3 位用于子网划分,则新子网掩码变为 /27(即 255.255.255.224)。 ##### (3) 划分子网范围 对于每一个子网,其起始地址可以通过以下方式计算: \[ \text{子网地址} = (\text{IP 地址}) \& (\text{子网掩码}) \] 其中,“\(&\)” 表示按位与操作。每个子网的有效主机地址范围是从子网地址后的第一个可用地址到广播地址前的一个地址[^3]。 以 IP 地址 `192.168.1.0` 和子网掩码 `/27`为例: - 新子网掩码对应的二进制形式为 `11111111.11111111.11111111.11100000` - 可分为 8 个子网,具体如下表所示: | 子网编号 | 子网地址 | 广播地址 | 主机范围 | |----------|----------------|---------------|-----------------------| | 0 | 192.168.1.0 | 192.168.1.31 | 192.168.1.1~192.168.1.30 | | 1 | 192.168.1.32 | 192.168.1.63 | 192.168.1.33~192.168.1.62 | | ... | ... | ... | ... | ##### (4) 验证分配合理性 确保每个子网内的设备不超过允许的最大主机数,并验证是否存在冲突或浪费的情况[^2]。 --- ### 示例代码实现 下面是一个简单的 Python 实现,帮助理解如何自动完成子网划分过程: ```python import ipaddress def subnet_calculator(ip, prefix_length, subnets_needed): network = ipaddress.IPv4Network(f"{ip}/{prefix_length}", strict=False) # Calculate the new prefix length based on required subnets additional_bits = (subnets_needed - 1).bit_length() new_prefix = prefix_length + additional_bits if new_prefix > 32: raise ValueError("Too many subnets requested.") subnets = list(network.subnets(new_prefix=new_prefix)) result = [] for i, subnet in enumerate(subnets): result.append({ 'Subnet ID': str(subnet.network_address), 'Broadcast Address': str(subnet.broadcast_address), 'Usable Range': f'{subnet.network_address+1}-{subnet.broadcast_address-1}' }) return result # Example usage output = subnet_calculator('192.168.1.0', 24, 6) for entry in output: print(entry) ``` --- ### 注意事项 - 如果子网数量过多可能导致单个子网内可使用的主机地址减少,需合理规划[^2]。 - 在实际应用中还需虑路由器配置、防火墙规则等因素的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值