Biny

网络知识:如何计算子网掩码(subnet mask)

Biny 2017-02-15 15:45:34    202539 次浏览

一.为何要使用subnet mask

在IPv4的协定下,IP位址是由4个8位元组成的数字来表达,如200.1.1.130。

一个IP位址分为网路位址(Network Address) 主机位址(Host Address),依网路位址所占的位元数不同而分为A/B/C/D级网路。

IP数字的0及255是预设的主机及广播位址无法使用,所以每个数字可用的IP位址变化只有254个(256-2),这也就是一般C级网段的Gateway IP都预设xxx254的缘故。

IPv4的位址因为ABCD型网段的配法而无法完全应用到254四次方那样多的可用IP值,随着世界上主机数递增,IP位址渐渐不够用了!

在IPv6的应用尚未完全普及之时,就得利用切分子网路(Subnet)的方式来有效分配IP位址。

将同一个IP位址等级的网路再切割成数个子网路,如此网路规模较小,避免降低网路效能。

切割后的子网路可正常与其他网路互相连接。

 

二.如何计算 subnet mask

某台网路主机,它的IP及子网路表示法为200.1.1.130/28,从这样简短的字句,你该立刻看出什么呢?

1.子网路的遮罩位址为何?

该数字28是代表遮罩IP位址的网路位址所占位元数,即:11111111.11111111.11111111.11110000,遮罩位元为1者是让IP通过(合法),0者为阻挡,所以从上述

的32位元分布,我们得知它的网段型态是属于C型位址,因此十进位的遮罩位址就是255.255.255.240(只需要求算右边那四个1),即128 64

32 16 = 240

2.可切成几个子网路?

数字1是让IP通过,所以只要注意1的位元变化组合(因为后面的0怎么变化都会被挡住),(1111)= 2^4 = 16,共有16种变化。

3.每个子网段有几个IP值?

子网路ip数为 256/16 = 16 (有效IP为14,因为头尾IP要去除)

4.每个子网路的IP起迄位址?

200.1.1.0-15,200.1.1.16-31,200.1.1.32-48,...,200.1.1.240-255

例如,主机IP为200.1.1.130/28的所在子网路起迄IP为: 130/16 = 8, 16 * 8 = 128,故在 200.1.1.128-143媕Y。

假如上述你都了解的话,让我们反过来思考,用子网路IP起迄位址,反推出它的IP/Subnet表达格式?

例如,我们要让某C级网段(192.83.184.*)下的IP合法通过,这组子网路该怎么用IP/Subnet格式表示呢?

首先,第四个IP值不遮封,因此遮罩IP位址的2进位是: 11111111.11111111.11111111.00000000 (255.255.255.0),其网路位址位元数共24个,因此写法是: 192.83.184.0

/24,依此类推,B级网段就是192.84.0.0/16,全部开放就是: 0.0.0.0/0。

所以,从IP位址的二进位表示法的位元分布,就可看出其背后的隐藏资讯,只要您能了解这些概念就可直接看出来,不需再作IP(192.83.184.0)转二

进位的运算(江湖一点诀)。

 

三.结论

(结论的部份,是我自己综合网路上关于子网路遮罩教学的文章,自己归纳出来的简单算法,不晓得是不是真的完全适用,欢迎指教!)

如果要从IP资料反推出 subnet mask 的话,只要用256减去自己所配发到的IP总数,就可以知道自己的 subnet mask 是多少 (适用于class c 的网段)

例如:

分配到的IP为 200.1.1.128-143 共 16 个 IP,那么用 256-16 = 240 即 subnet mask 就是 255.255.255.240

 

参考资料:

http://tw.group.knowledge.yahoo.com/computer-skill/listitem/view?iid=104

http://ithelp.ithome.com.tw/question/10007321

http://ithelp.ithome.com.tw/question/10016571

http://jangmt.com/wiki/index.php?title=Ccna_introduction_3#.E5.AD.90.E7.B6.B2.E8.B7.AF.E5.88.87.E5.89.B2.E7.9A

.84.E5.9F.BA.E7.A4.8E

写得很好的范例

http://www.homeweb.idv.tw/148?category=9

内容加载中