有一台互联三个子网的路由器,这三个子网的所有接口要求具有前缀223.1.17/24,还假定子网1要求支持多达60个接口,子网2要求支持多达90个接口,子网3要求支持多达12个接口,请提供三个满足这些限制的网络地址,形式为a.b.c.d/x
首先要知道IPV4地址和子网前缀都是32位,然后要知道什么是子网前缀:子网前缀是用来划分一个 IP 地址的网络部分和主机部分的一部分。它是一个由连续的一串二进制数字组成的标识符,指示了 IP 地址的哪一部分是网络标识,哪一部分是主机标识。
在IPv4中,子网前缀的长度由子网掩码表示。例如,如果你有一个IP地址是192.168.1.1,子网掩码是255.255.255.0,那么子网前缀是24位(因为前面的255都是八个1,需要从左往右数)。表示ip地址前面的24都是网络部分,只有后8位才是主机部分,在CIDR(无类别域间路由)表示法中,这个子网可以写为192.168.1.0/24,在这个子网中,主机标识有8位,因此可以有2^8个不同的主机地址,但其中两个地址被保留,一个用于网络地址(192.168.1.0)一个用于广播地址(192.168.1.255)。因此,可用的主机地址范围是192.168.1.1 到 192.168.1.254。
另外要保证划分子网时各个子网的主机地址不会发生重叠。
子网要求支持n个接口,表示ip地址的主机部分要能够达到n个,假设主机部分是有k位,也就是要满足2^k>=n
因此由题目可以得到:
网络地址中的网络部分是固定的
现在开始划分:
我们假设子网1的网络地址的后八位是00000000-00111111(前2位属于网络部分,不能变,这里是人为设置的从00开始,方便计算),也就是0-63,网络地址一般是取第一个主机地址,所以子网1的网络地址为: 223.1.17.0/26
然后如果子网2的网络地址是从64开始的话,也就是01000000,因为子网2的主机部分是7位,所以第一位属于网络部分,不能变,所以它的范围只能到01111111,也就是127,127-64=63,无法满足题目90个接口的要求,所以不行
但是子网3是满足的,因为它只需要4位作为主机部分,我们就可以让子网3的网络地址后八位从64开始,也就是01000000,但是后八位中前面4位都是属于网络位,不能变,因此子网3的后八位取值范围就是01000000到01001111,也就是64-79,所以子网3的网络地址为223.1.17.64/28
现在剩下了子网2,子网2的网络地址后八位中是有7位是主机部分,只有第一位属于网络部分不能变,因此我们只能从10000000开始(因为第一位不能变,从80开始的话第一位是0,最大值才01111111,为127,无法满足分配90个主机的要求,因此我们只能让第一位为1,也就是从10000000开始),也就是128开始,所以子网2的网络地址就是223.1.17.128/25
综上:
子网1的网络地址为 223.1.17.0/26
子网2的网络地址为223.1.17.128/25
子网3的网络地址为223.1.17.64/28
附:看到网上有人分享答案是
子网1:223.1.17.0/26
子网2:223.1.17.128/25
子网3:223.1.17.192/28
感觉这个答案是错误的,会导致子网2和子网3的ip地址部分重叠,如果我理解错误,欢迎在评论区指正!