以下内容摘自笔者2008年的新作——《网管员面试宝典》一书。
 
 
测试一下你对IP地址的理解能力,大家先不看题后的解答,看自己能做出多少题。
 
面试题1以下说法正确的是(   )。
A. C类地址就是局域网用的IP地址
B. A类地址的网络ID128
C. 网络ID不能以数字0127开头
D. 不能使用全0或全1主机ID
解析:
这道题考的是IP地址的划分和组成原则。
A选项说C类地址是局域网用的IP地址,肯定是错误的,因为在C类地址中只有192.168.0.0/16这个地址段才专门用于局域网,其他的仍是用于因特网的IP地址。
B选项说A地址的网络ID128个也是错误的。因为尽管A类地址的网络ID仅为第一个8位组,并且由于第一位是固定为0的,所以剩下的7位中,理论上最多是12827)。但是第一个8位全为000000000)的不能当做IP地址分配,因为它是网络地址;另一个第一个8位组中后面7位全为101111111)的也不能当做IP地址分配,因为它保留以专门用于环路测试。所以实际上可用的仅126个。
C选项说网络ID不能以数字0127开头,这正好是单播IP地址编址规则,所以是正确的。
D选项说不能使用全0或全1主机ID,这也是单播IP地址编址规则,所以也是正确的。
答案:C D
 
面试题2以下属于专用地址是(   )。
A. 10.0.0.1                  B. 172.31.254.1            C. 192.168.0.16
D. 172.33.25.220        E. 196.168.0.1
解析:
这道题考的是应试者对三类IP地址中专用于局域网的IP地址段的了解,这也是在面试中经常会考到的。
要确定某个IP地址是不是专用地址,就要看它是否属于ABC三类地址中专用局域网的IP地址段中。
A类地址10.0.0.0/810.0.0.0255.0.0.0)地址段属于专用IP地址,这是地址前缀表示形式,另一表示形式就是10.0.0.110.255.255.254
B类地址172.16.0.0/12172.16.0.0255.240.0.0)地址段属于专用IP地址,这是地址前缀表示形式,另一表示形式就是172.16.0.1172.31.255.254
C类地址192.168.0.0/16192.168.0.0255.255.0.0)地址段属于专用IP地址,这是地址前缀表示形式,另一表示形式就是192.168.0.1192.168.255.254
对照以上各选项中的IP地址,看是否在以上三个专用IP地址网段范围中即可迅速得出本题的正确答案。
答案:A B C
 
面试题3保留给自环测试的IP地址是(   )。
A. 164.0.0.0        B. 130.0.0.0        C. 200.0.0.0        D. 127.0.0.0
解析:这道题很容易得出正确答案,但只能凭记忆。
答案:D
 
面试题411100100.10011101.10010011.111110011转换成点分十进制,将235.168.20.12地址转换成点分二进制形式。
解析:
这其实是一道二进制与十进制相互转换的题,掌握了方法很容易得出正确答案。
二进制转换成十进制的方法是对各位按对应位的2的幂次方(最低位的幂为0)取值,然后把每个8位组的2的幂次方值相加即可。如本题中的11100100.10011101.10010011.111110011就可表示为:
1×27+1×26+1×25+0×24+0×23+1×22+0×21+0×20. 1×27+0×26+0×25+1×24 +1×23+1×22+0×21+1×20. 1×27+0×26+0×25+1×24+0×23+0×22+1×21+1×20. 1×27+1×26+1×25+1×24+0×23+0×22+1×21+1×20
最终得到:(128+64+32+0+0+4+0+0.128+0+0+16+8+4+0+1.128+0+0+16+0+0+2+1.128+64+32+16+0+0+2+1=224.157.147.243
要将十进制转换成二进制,则把对应的十进制组除以2,然后把余数从后面开始排列即得到二进制。如果余数不满8位,在前面加上0填充即可。如,本题235.168.20.12中的“235”除以2的余数分别如图11-1所示,然后把余数从下往上取值,即得到11101011,恰好为8位,就不用在前面填充0了。用同样的方法可以得到后面三组的二进制分别为101010000001010000001100。以点分二进制表示为11101011 .10101000.00010100.00001100
11-1  235的二进制转换
答案:
11100100.10011101.10010011.111110011的点分十进制表示形式为224.157.147.243235.168.20.12的点分二进制形式为11101011. 10101000.00010100.00001100
 
面试题5用压缩零法表示1080:0000:0000:0000:0008: 0800:200C:123A0514:0000:0000:A001:0000:0000:0612:421F两个IPv6地址。
解析:
这是道考IPv6地址表示方式的题,不过目前在网管员的面试中,这方面的题还是很少的,毕竟现在IPv6还没有普及应用。
在表示和书写IPv6的地址时,用冒号将128位分割成816位的段,这里的128位表示在一个IPv6地址中包括128个二进制数。转换成十六进制数后,每个段包括4位的16进制数字。在IPv6地址中规则可以用用重叠冒号置换地址中的连续16位(相当于一个段都为0)的0,以减少其中的0的位数,书写和阅读都更方便。这就是本题所说的压缩零表示法。
如本题中的1080:0000:0000:0000:0008:0800:200C:123A地址中,用压缩零表示后即得到1080::0008:0800:200c:123A
0514:0000:0000:A001:0000:0000:0612:421F却不能用压缩零表示后得到0514::A001::0612:421F,而应该是0514::A001:0000:0000:0612:421F,或者0514:0000:0000:A001::0612:421F。因为压缩0表示法在一个地址中只能用一次。
答案:
1080:0000:0000:0000:0008:0800:200C:123A0514:0000:0000:A001: 0000:0000:0612:421F两个IPv6地址用压缩零表示法的表示形式分别为:1080::0008:0800:200c:123A0514::A001:0000:0000:0612:421F,或者0514:0000:0000:A001::0612:421F
 
面试题6172.16.49.31/16的网络ID和主机ID分别是(   )。
A. 17216.49.31              B. 172.1649.31
C. 172.16.4931              D. 172.16.49.31172.16.49.31
解析:
题考的是IPv4地址的地址前缀表示方法,以及对网络ID和主机ID的理解。要表示一个IP地址,可以有两种方式:一是地址+子网掩码形式,另一种就是地址前缀形式,否则就无法确认该IP地址属于哪个网络,更无法知道它的网络ID和主机ID了。
其实这是一道非常简单的题,根本不用计算,直接可以得出答案,只要理解地址前缀“/16”的意思即可。因为要求网络ID和主机ID只能是标准的三类IP地址,划分子网后的地址中,因为网络ID和主机ID都有不完整的8位组,所以不可能用十进制来表示。千万别把简单的问题复杂化,认为没这么简单。可事实上这道题就这么简单。
地址前缀值其实表示的就是地址中网络ID的位数。本题中的“/16”表示该IP地址的网络ID16位,而这个IP地址的第一个8位组值为172,正好处于BIP地址范围,所以其实172.16.49.31/16就是一个标准的B类地址。因此,很容易得出它的网络ID为前两个8位组172.16,而主机ID为后两个8位组49.31,也就是本题的正确答案为B
案:B
 
面试题7没有任何子网划分的IP地址125.3.54.56的网络地址是(   )。
A. 125.0.0.0        B. 125.3.0.0                C. 125.3.54.0    D. 125.3.54.32
解析:
因为题中已说明是没有任何子网划分,所以,只要区分ABC3个主要IP地址类型就差不多了。因为网络地址就是网络ID不变,主机ID全为0IP地址。
125.3.54.56是一个A类地址。A类地址中前一个八位组是网络ID,后面3个八位组是主机ID。于是把125.3.54.56的后面38位组全部置0就得到了它的网络地址,即125.0.0.0
答案:A
 
面试题8假定给出一个IP地址:192.168.12.43,子网掩码为:255.255.255.128 那么网络地址和广播地址分别是(   )。
A. 192.168.12.32   192.168.12.127
B. 192.168.0.0      255.255.255.255
C. 192.168.12.43   255.255.255.128
D. 192.169.12.0    192.168.12.127
解析:
这道题涉及到了子网的划分,因为子网掩码为255.255.255.128,而不是3个标准IP地址类型默认的子网掩码。
根据子网掩码255.255.255.128可以得出它是向主机ID1位形成的新子网,因为子网掩码是网络ID全置1,主机ID全置0的值,而这里的最后一个8位组为128,恰好是最高的第8位的2的幂次方值(27)。
网络地址是IP地址与子网掩码的二进制逻辑与运算结果。192.168.12.43的二进制为:11000000.10101000.00001100.00101011255.255.255.128的二进制为11111111.11111111.11111111.10000000。结果得到网络地址为192.168.12.0
广播地址是网络地址+最大的主机ID。但要注意的是,主机ID只有最后的7位,由此可以得到广播地址为192.168.12.127
答案:D
 
面试题9172.16.10.32/24代表的是(   )。
A. 网络地址        B. 主机地址        C. 组播地址    D. 广播地址
解析:
考应试者对IP地址前缀表示法的理解。
这里的“/24”表示该IP地址中前24位是网络ID部分。而按照标准的IP地址分类可以知道,172.16.10.32是一个B类地址。B类地址中网络ID是前16位,所以这是一个经过重新子网划分的IP地址,而且恰好是整八位数形式的划分(最后的32仅为主机ID)。它可以明确表示一个主机IP地址,所以正确答案是题中的B
之所以题中ACD 3个选项均不正确,那是因为172.16.10.32/24地址所在子网的网络地址是172.16.10.0,广播地址是172.16.10.255。组插地址是有专门地址的,是在224.0.0.0239.255.255.255范围中。
答案:B
 
面试题10计算IP地址为15.16.193.6,子网掩码为255.255.248.0的子网网络地址和广播地址各是多少。
解析:
这道题虽然与前面的题一样都求是网络地址和广播地址的,但是这道题的难度要大许多,因为它不是整个8位组借位的,这一点可以从其子网掩码255.255.248.0得出的。
根据IP地址15.16.193.6,子网掩码255.255.248.0可以得出,该子网是通过在第38位组中借5位形成的子网。因为子网掩码中的第38位组248的二进制为11111000
网络地址是IP地址与子网掩码的二进制位对应取值的结果。于是先把IP地址和子网掩码分别转换成二进制,然后再进行逻辑与运算。算式如下:
00001111.00010000.11000001.00000110
.AND  11111111. 11111111. 11111000.00000000
       0000111. 00010000.11000000.00000000
由此可以得出网络地址的结果为0000111. 00010000.11000000. 00000000,转换成点分十进制后即得到15.16.192.0
广播地址是由网络地址再加上最大的主机ID得到的。这里的主机ID涉及到第3个和第4个共两个8位组。直接可以在网络地址的二进制中来转换,把网络地址二进制中主机ID部分全部取1,即可到广播地址。因为网络地址为0000111. 00010000.11000000.00000000,把第38位组后面3位和第48位组全部取1,其他的不变,即得到广播地址为0000111. 00010000.11000111.11111111,转换成点分十进制后即得到15.16.199.255。这就是该子网的广播地址。
其实广播地址也可以通过它与网络地址的另一层关系得到,就是上一个子网的广播地址是与下一个子网的网络地址的前一个地址。我们已经得到该子网的网络地址为15.16.192.0,同时知道它的子网掩码为255.255.248.0,由此可见,网络地址中最后一个非全08位组为248,它与最大值256相差8,因此它的下一个子网的网络地址中,该8位组的值应为8的倍数(本子网的这个八位组的值为192,也是8的倍数)。而本IP地址为15.16.193.6,所以下一个子网的网络地址中第38位数的数肯定要大于193,同时又要是8的倍数,可以得到最接近的一个数就是200,这样就得到了下一个子网的网络地址为15.16.200.0,它的前一个IP地址就是15.16.199.255,这就是15.16.200.0所在子网的上一个子网的广播地址。
只要懂得原理,还是非常简单的,因为可以根据子网掩码直接得出下一个子网网络地址是多少的倍数,那就是最后一个非全08位组的十进制值与一个8位组中最大值256的差值。如本例为248,它与256的差就是8
答案:
IP地址为15.16.193.6,子网掩码为255.255.248.0的子网网络地址和广播地址分别为15.16.192.015.16.199.255
 
面试题11172.28.13.0/20前缀地址转换为点分十进制形式,并计算其中包括的可用IP地址范围和个数。
解析:
道题考的是应试者对IP地址前缀表示形式的理解。
这里所说的点分十进制表示形式其实就是要用IP地址+子网掩码的十进制表示形式。
172.28.13.0/20表示前20位为网络ID,后12位为主机ID。由此可以得到该地址表示的网络子网掩码为11111111.11111111.11110000. 00000000,转换成十进制后即得到255.255.240.0
这样就可以得到172.28.13.0/20的点分十进制表示形式为172.28.13.0255.255.240.0
然后根据以上结果,按照本节以上介绍的方法得出该子网的网络地址和广播地址分别为:172.28.0.0172.28.15.255
最后根据网络地址与广播地址得到地址范围和个数。
可用于主机的IP地址范围是172.28.0.1172.28.15.254,总个数是16(倒数第28位组是从015×254(倒数第18位组的所有可用主机IP地址数)=4064。这就是可用的IP地址数。
 
答案:
该子网可用的IP地址范围是172.28.0.1172.28.15.254,可用的IP地址个数为4 064个。
 
面试题12192.168.2.16/28子网中每个子网最多可以容纳(   )台主机。
A. 16         B. 8             C. 15            D. 14            E. 7
解析:
要计算出可以容纳多少台主机,就需要知道子网的子网掩码。因为主机数可以从子网掩码的主机ID位数是得出。
192.168.2.16/28是一个向第48位组借了4位而划分的子网(因为38位组一共是24位)。由此可以得到该子网的子网掩码二进制为:
11111111.11111111.11111111.11110000
转换成点分十进制后即得到255.255.255.240,这就是该子网的子网掩码。
由上面的点分二进制子网掩码可以得知子网中的主机ID位仅有4位了。最多的IP数就是24=16。然而这是包括了子网的网络地址和广播地址这两个的,最后实际上可用于主机的IP地址仅为14个,即答案D
答案:D
 
面试题13每个子网不能有多于58台计算机,最合适的子网掩码为(   )。
A. 255.255.255.192                B. 255.255.255.248
C. 255.255.255.224      D. 255.255.255.240
解析:
这道题考的也是子网划分方面的知识。首先要抓住题中要点,就是每个子网有不多于58台计算机。主机数是由主机ID位数决定的,计算公式是主机数m=2nn为主机ID位数)。
25=3226=64,在不多于58台主机的情况下,则最接近的就是主机位数为6位。也就是把一个CIP地址中的最后8位中的前2位划分为子网ID。这样可以得出该子网的子网掩码地址为11111111.11111111.11111111. 11000000,转换成十进制后即得到255.255.255.192
 
答案:A