關於子網掩碼的一點理解

2021-08-07 10:47:04 字數 2927 閱讀 1323

最近的學習中遇到乙個問題,目前使用的ip位址不夠用了,以前以為是交換機的原因,所以沒有深入了解,最近在別人的幫助下,解決了這一問題,發現這是個學習機會。特總結一下。

由於子網掩碼的位數決定於可能的子網數目和每個子網的主機數目。在定義子網掩碼前,必須弄清楚本來使用的子網數和主機數目。

1、根據子網數

利用子網數來計算

在求子網掩碼之前必須先搞清楚要劃分的子網數目,以及每個子網內的所需主機數目。

1)將子網數目轉化為二進位制來表示

2)取得該二進位制的位數,為 n

3)取得該ip位址的類子網掩碼,將其主機位址部分的前n位置1 即得出該ip位址劃分子網的子網掩碼。

如欲將b類ip位址168.195.0.0劃分成27個子網:

1)27=11011

2)該二進位制為五位數,n = 5

3)將b類位址的子網掩碼255.255.0.0的主機位址前5位置1(b類位址的主機位包括後兩個位元組,所以這裡要把第三個位元組的前5位置1),得到 255.255.248.0

即為劃分成27個子網的b類ip位址 168.195.0.0的子網掩碼(實際上是劃成了32-2=30個子網)。

這一段介紹的是舊標準下計算的方法,關於舊的標準後文在介紹,在新標準中則可以先將27減去1,因為計算機是從0開始計算的,從0到27實際上是有28個,所以說如果需要27個就需要將27減去1。

2、根據主機數

利用主機數來計算

1)將主機數目轉化為二進位制來表示

2)如果主機數小於或等於254(注意去掉保留的兩個ip位址),則取得該主機的二進位制位數,為 n,這裡肯定n<8。如果大於254,則 n>8,這就是說主機位址將佔據不止8位。

3)使用255.255.255.255來將該類ip位址的主機位址位數全部置1,然後從後向前的將n位全部置為 0,即為子網掩碼值。

如欲將b類ip位址168.195.0.0劃分成若干子網,每個子網內有主機700臺:

1) 700=1010111100

2)該二進位制為十位數,n = 10

3)將該b類位址的子網掩碼255.255.0.0的主機位址全部置1,得到255.255.255.255

然後再從後向前將後10位置0,即為: 11111111.11111111.11111100.00000000

即255.255.252.0。這就是該欲劃分成主機為700臺的b類ip位址168.195.0.0的子網掩碼。

3、增量計算法

子網id增量計算法(即計算每個子網的ip範圍)

其基本計算步驟如下:

第1步,將所需的子網數轉換為二進位制,如所需劃分的子網數為「4」,則轉換成成二進位制為00000100;

第2步,取子網數的二進位制中有效位數,即為向預設子網掩碼中加入的位數(既向主機id中借用的位數)。如前面的00000100,有效位為「100」,為3位(在新標準中只需要2位就可以了);

第3步,決定子網掩碼。如ip位址為b類129.20.0.0網路,則預設子網掩碼為:255.255.0.0,借用主機id的3位以後變為:255.255.224(11100000).0,即將所借的位全表示為1,用作子網掩碼。

第4步,將所借位的主機id的起始位段最右邊的「1」轉換為十進位制,即為每個子網id之間的增量,如前面的借位的主機id起始位段為「11100000」,最右邊的「1」,轉換成十進位制後為2^5=32(此為子網id增量)。

第5步,產生的子網id數為:2^m-2 (m為向預設子網掩碼中加入的位數),如本例向子網掩碼中新增的位數為3,則可用子網id數為:2^3-2=6個;

第6步,將上面產生的子網id增量附在原網路id之後的第乙個位段,便形成第乙個子網網路id 129.20.32.0(即第乙個子網的起始ip段);

第7步,重複上步操作,在原子網id基礎上加上乙個子網id增量,依次類推,直到子網id中的最後位段為預設子網掩碼位用主機id位之後的最後乙個位段值,這樣就可得到所有的子網網路id。如預設子網掩碼位用主機id位之後的子網id為255.255.224.0,其中的「224」為借用主機id後子網id的最後一位段值,所以當子網id通過以上增加增量的方法得到129.20.224.0時便終止,不要再新增了(只能用到129.20.192.0)。

我們知道當主機id為全0時表示網路id,全1時表示廣播位址。在rfc950標準中,不建議使用全0和全1的子網id。

例如把最後乙個位元組的前3位借給網路id,用後面的5位來表示主機id,這樣就會產生2^3=8個子網,子網id就分別為000、001、010、011、100、101、110、111這樣8個,在rfc950標準中只能使用中間的6個子網id。

這麼做的原因是:

設我們有乙個網路:192.168.0.0/24(即子網掩碼的前24位為1,255.255.255.0),我們需要兩個子網,那麼按照rfc950,應該使用/26而不是/25,得到兩個可以使用的子網192.168.0.64和192.168.0.128

對於192.168.0.0/24,網路位址是192.168.0.0,廣播位址是192.168.0.255

對於192.168.0.0/26,網路位址是192.168.0.0,廣播位址是192.168.0.63

對於192.168.0.64/26,網路位址是192.168.0.64,廣播位址是192.168.0.127

對於192.168.0.128/26,網路位址是192.168.0.128,廣播位址是192.168.0.191

對於192.168.0.192/26,網路位址是192.168.0.192,廣播位址是192.168.0.255

你可以看出來,對於第乙個子網,網路位址和主網路的網路位址是重疊的,對於最後乙個子網,廣播位址和主網路的廣播位址也是重疊的。在cidr流行以前,這樣的重疊將導致極大的混亂。比如,乙個發往192.168.0.255的廣播是發給主網路的還是子網的?這就是為什麼在當時不建議使用全0和全1子網。在今天,cidr已經非常普及了,所以一般不需要再考慮這個問題。

由於機房內的主機數比較容易確定,所以這次用的是根據主機數來計算子網掩碼。

關於子網掩碼

定義 子網掩碼 subnet mask 又叫網路掩碼 位址掩碼 子網路遮罩,它是一種用來指明乙個ip位址的哪些位標識的是主機所在的子網,以及哪些位標識的是主機的位掩碼。子網掩碼不能單獨存在,它必須結合ip位址一起使用。子網掩碼只有乙個作用,就是將某個ip位址劃分成網路位址和主機位址兩部分。子網掩碼是...

關於子網掩碼

子網掩碼是乙個32位位址,是與ip位址結合使用的一種技術。它的主要作用有兩個,一是用於遮蔽ip位址的一部分以區別網路標識和主機標識,並說明該ip位址是在區域網上,還是在遠端網上。二是用於將乙個大的ip網路劃分為若干小的子網路。使用子網是為了減少ip的浪費。因為隨著網際網路的發展,越來越多的網路產生,...

子網掩碼怎麼理解

地主老了,需要把256間房子分給4個兒子,平均分配,每個兒子可以分64間。請來一位先生主持公道,先生這麼來操作 192.168.1.0 192.168.1.63 分給大兒子 192.168.1.64 192.168.1.127 分給二兒子 192.168.1.128 192.168.1.191 分給...