文章里有一些自己定义的概念,大家择优选看。。
方法通用A,B,C类网络。
基础:
1> [Borrowed network bits]= prefix_len - ClassA/B/C boundary_len(8/16/24) ,如:
10.1.92.48/20[A类]
Borrowed network bits = 20-8=12
2> [Borrowed host bits] = 32- prefix_len
10.1.92.48/20[A类]
Borrowed host bits= 32-20=12
3> 熟记prefix <-> borrowed network bits的对应关系,如:
/28 <-> 借4/12/20位bit做子网位(28-24[C类],28-16[B类],28-8[A类])。
4> 如果需要在命令里配置子网掩码,还需要熟记prefix <-> subnet mask的对应关系,如:
/24 <-> 0
/25 <-> 128
/26 <-> 192
/27 <-> 224
/28 <-> 240
/29 <-> 248
/30 <-> 252
/31 <-> 254
/32 <-> 255
进阶:
1> 子网数目:
Number of Networks= 2 borrowed network bits
2> 每个子网的可用主机数:
Number of Hosts per subnet = 2 borrowed host bits – 2
3> Block size = 256-subnet_mask [对应prefix,如A类的/4=/(4+24)=/28=240]。
4> 子网地址 (主要用于判断一个IP是否合法):
Prefix对应段(subnet mask的一部分):
/6 <-> Class A <-> 99.0.0.0
/10 <-> Class B <-> 0.99.0.0
/20 <-> Class C <-> 0.0.99.0
每个条目里的99项为其在相应prefix时的,prefix对应段。
对应段子网地址 = INT(prefix对应段/block size) * block size
实例:
1> 10.200.37.96/10,指出其地址对主机是否有效。
Prefix对应段为:200
Subnet mask: /10 <-> /(10+8+8) <-> /26 <-> 192
Block size = 256-192=64
对应段子网地址 = INT(200/64)*64 = 3*64=192
即子网地址为:10.192.0.0/10,此地址有效。
2> 192.168.33.219/20,指出其地址对主机是否有效。
Prefix对应段为:33
Subnet mask: /20 <-> /(20+8) <-> /28 <-> 240
Block size = 256-240=16
对应段子网地址=INT(33/16)*16=2*16=32
即子网地址为:192.168.32.0/20,此地址有效。
3> 192.168.0.77/29,指出其地址对主机是否有效。
Prefix对应段为:77
Subnet mask: /29 <-> 248
Block size = 256-248=8
对应段子网地址=INT(77/8)*8=9*8=72
即子网地址为:192.168.0.72,此地址有效。
4> 172.16.80.0/20,指出其地址对主机是否有效。
Prefix对应段为:80
Subnet mask:/20 <-> /(20+8) <-> /28 <-> 240
Block size= 256-240=16
对应段子网地址=INT(80/16)*16=5*16=80
即子网地址为:172.16.80.0/20,因为其与子网地址相同,无效。
5> 111.143.255.255/20,指出其地址是否有效。
Prefix对应段为:143
Subnet mask: /20 <-> /(20+8) <-> /28 <-> 240
Block size=256-240=16
对应段子网地址=INT(143/16)*16=128
即子网地址为:111.128.0.0/20,因为其与子网广播地址111.143.255.255/20[111.144.0.0/20-1]相同,无效。
实例指南:
1> Prefix<=/23的地址,如192.168.3.3/20。
如果[prefix对应段]的后面所有段都为0或255,则需要判断其地址有效性,否则都有效。
2> Prefix >=/24的地址,如10.1.1.13/28。
需要注意判断地址是否是子网广播地址。
3>