子網掩碼

子網掩碼

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

子網掩碼是一個32位地址,用於禁止IP位址的一部分以區別網路標識和主機標識,並說明該IP位址是在區域網路上,還是在遠程網上。

基本介紹

定義,構成,規則,定義主機數目,計算方式,根據子網數,根據主機數,增量計算法,作用,標註方法,無子網,有子網,地址判斷,表示方法,運算示例,示例一,示例二,示例三,復用技術,編址技術,掩碼分類,掩碼變長,劃分捷徑,

定義

子網掩碼(subnet mask)是每個使用網際網路的人必須要掌握的基礎知識,只有掌握它,才能夠真正理解TCP/IP協定的設定。
子網掩碼——禁止一個IP位址的網路部分的“全1”比特模式。對於A類地址來說,默認的子網掩碼是255.0.0.0;對於B類地址來說默認的子網掩碼是255.255.0.0;對於C類地址來說默認的子網掩碼是255.255.255.0。
利用子網掩碼可以把大的網路劃分成子網,即VLSM(可變長子網掩碼),也可以把小的網路歸併成大的網路即超網

構成

要想理解什麼是子網掩碼,就不能不了解IP位址的構成。網際網路是由許多小型網路構成的,每個網路上都有許多主機,這樣便構成了一個有層次的結構。IP位址在設計時就考慮到地址分配的層次特點,將每個IP位址都分割成網路號主機號兩部分,以便於IP位址的定址操作。
IP位址的網路號主機號各是多少位呢?如果不指定,就不知道哪些位是網路號、哪些是主機號,這就需要通過子網掩碼來實現。

規則

子網掩碼的設定必須遵循一定的規則。與二進制IP位址相同,子網掩碼由1和0組成,且1和0分別連續。子網掩碼的長度也是32位,左邊是網路位,用二進制數字“1”表示,1的數目等於網路位的長度;右邊是主機位,用二進制數字“0”表示,0的數目等於主機位的長度。這樣做的目的是為了讓掩碼與ip地址做按位與運算時用0遮住原主機數,而不改變原網路段數字,而且很容易通過0的位數確定子網的主機數(2的主機位數次方-2,因為主機號全為1時表示該網路廣播地址,全為0時表示該網路的網路號,這是兩個特殊地址)。只有通過子網掩碼,才能表明一台主機所在的子網與其他子網的關係,使網路正常工作。

定義主機數目

用於子網掩碼的位數決定於可能的子網數目和每個子網的主機數目。在定義子網掩碼前,必須弄清楚本來使用的子網數和主機數目。
定義子網掩碼的步驟為:
A、確定哪些組地址歸我們使用。比如我們申請到的網路號為 “210.73.a.b”,該網路地址為c類IP位址,網路標識為“210.73.a”,主機標識為“b”。
B、根據我們所需的子網數以及將來可能擴充到的子網數,用宿主機的一些位來定義子網掩碼。比如我們需要12個子網,將來可能需要16個。用第四個位元組的前四位確定子網掩碼。前四位都置為“1”,即第四個位元組為“11110000”,這個數我們暫且稱作新的二進制子網掩碼。
C、把對應初始網路的各個位都置為“1”,即前三個位元組都置為“1”,則子網掩碼的間斷二進制形式為:“11111111.11111111.11111111.11110000” 。
D、把這個數轉化為間斷十進制形式為:“255.255.255.240” 。

計算方式

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

根據子網數

利用子網數來計算
在求子網掩碼之前必須先搞清楚要劃分的子網數目,以及每個子網內的所需主機數目。
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。

根據主機數

利用主機數來計算
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的子網掩碼。

增量計算法

子網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已經非常普及了,所以一般不需要再考慮這個問題。

作用

子網掩碼是一個32位地址,是與IP位址結合使用的一種技術。它的主要作用有兩個,一是用於禁止IP位址的一部分以區別網路標識主機標識,並說明該IP位址是在區域網路上,還是在遠程網上。二是用於將一個大的IP網路劃分為若干小的子網路。
使用子網是為了減少IP的浪費。因為隨著網際網路的發展,越來越多的網路產生,有的網路多則幾百台,有的只有區區幾台,這樣就浪費了很多IP位址,所以要劃分子網。使用子網可以提高網路套用的效率。
通過IP 地址的二進制與子網掩碼的二進制進行與運算,確定某個設備的網路地址主機號,也就是說通過子網掩碼分辨一個網路的網路部分和主機部分。子網掩碼一旦設定,網路地址主機地址就固定了。子網一個最顯著的特徵就是具有子網掩碼。與IP位址相同,子網掩碼的長度也是32位,也可以使用十進制的形式。例如,為二進制形式的子網掩碼:1111 1111.1111 1111.1111 1111.0000 0000,採用十進制的形式為:255.255.255.0。
通過計算機的子網掩碼判斷兩台計算機是否屬於同一網段的方法是,將計算機十進制的IP位址和子網掩碼轉換為二進制的形式,然後進行二進制“與”(AND)計算(全1則得1,不全1則得0),如果得出的結果是相同的,那么這兩台計算機就屬於同一網段。

標註方法

無子網

無子網的標註法
對無子網的IP位址,可寫成主機號為0的掩碼。如IP位址210.73.140.5,掩碼為255.255.255.0,也可以預設掩碼,只寫IP位址。

有子網

有子網的標註法
有子網時,一定要二者配對出現。以C類地址為例。
以下一段指定掩碼為27位(1111 1111, 1111 1111, 1111 1111, 1110 0000=>255.255.255.224
1.IP位址中的前3個位元組表示網路號,後一個位元組既表明子網號,又說明主機號,還說明兩個IP位址是否屬於同一個網段。如果屬於同一網路區間,這兩個地址間的信息交換就不通過路由器。如果不屬同一網路區間,也就是子網號不同,兩個地址的信息交換就要通過路由器進行。
例如:
對於IP位址為210.73.140.5的主機來說,其主機標識為5=>00000101,
對於IP位址為210.73.140.16的主機來說它的主機標識為16=>00010000,
以上兩個主機標識的前面三位全是000,說明這兩個IP位址在同一個網路區域中,這兩台主機在交換信息時不需要通過路由器進行。
210.73.60.1的主機標識為1=>00000001,
210.73.60.252的主機標識為252=>11111100,
這兩個主機標識的前面三位000與111不同,說明二者在不同的網路區域,要交換信息需要通過路由器。其子網上主機號各為1和252。
2.掩碼的功用是說明有子網和有幾個子網,但子網數只能表示為一個範圍,不能確切講具體幾個子網,掩碼不說明具體子網號,有子網的掩碼格式(對C類地址)。

地址判斷

子網掩碼是用來判斷任意兩台計算機的IP位址是否屬於同一子網路的根據。
最為簡單的理解就是兩台計算機各自的IP位址與子網掩碼進行AND運算後,如果得出的結果是相同的,則說明這兩台計算機是處於同一個子網路上的,可以進行直接的通訊。就這么簡單。

表示方法

子網掩碼通常有以下2種格式的表示方法:
1. 通過與IP位址格式相同的點分十進制表示
如:255.0.0.0 或255.255.255.128
2. 在IP位址後加上"/"符號以及1-32的數字,其中1-32的數字表示子網掩碼中網路標識位的長度
如:192.168.1.1/24 的子網掩碼也可以表示為255.255.255.0
子網掩碼一般為255.255.255.0

運算示例

示例一

I P 地址 192.168.0.1
子網掩碼 255.255.255.0
AND運算(AND運算法則:1 與1 = 1 ,1 與0 = 0 ,0 與1 = 0 ,0 與0 = 0 ,即當對應位均為1時結果為1,其餘為0。)
轉化為二進制進行運算:
I P 地址 11000000.10101000.00000000.00000001
子網掩碼 11111111.11111111.11111111.00000000
AND運算
11000000.10101000.00000000.00000000
轉化為十進制後為:
192.168.0.0

示例二

I P 地址 192.168.0.254
子網掩碼 255.255.255.0
AND運算
轉化為二進制進行運算:
I P 地址 11000000.10101000.00000000.11111110
子網掩碼 11111111.11111111.11111111.00000000
AND運算
11000000.10101000.00000000.00000000
轉化為十進制後為:
192.168.0.0

示例三

I P 地址 192.168.0.4
子網掩碼 255.255.255.0
AND運算
轉化為二進制進行運算:
I P 地址 11000000.10101000.00000000.00000100
子網掩碼 11111111.11111111.11111111.00000000
AND運算
11000000.10101000.00000000.00000000
轉化為十進制後為:
192.168.0.0
通過以上對三組計算機IP位址與子網掩碼的AND運算後,我們可以看到它運算結果是一樣的。均為192.168.0.0
所以計算機就會把這三台計算機視為是同一子網路,然後進行通訊的。
也許你又要問,這樣的子網掩碼究竟有多少個IP位址可以用呢?你可以這樣算。
根據上面我們可以看出,區域網路內部的ip地址是我們自己規定的(當然和其他的ip地址是一樣的),這個是由子網掩碼決定的通過對255.255.255.0的分析。可得出:
前三位IP碼由分配下來的數字就只能固定為192.168.0 所以就只剩下了最後的一位了,那么顯而易見了,ip地址只能有(2的8次方-2),即256-2=254,一般主機地址全為0或者1(二進制)有其特殊的作用。
那么你可能要問了:如果我的子網掩碼不是255.255.255.0呢?你也可以這樣做啊假設你的子網掩碼是255.255.128.0
那么你的區域網路內的ip地址的前兩位肯定是固定的了
這樣,你就可以按照下邊的計算來看看同一個子網內到底能有多少台機器
1.十進制128 = 二進制1000 0000
2.IP碼要和子網掩碼進行AND運算
3.
I P 地址 11000000.10101000.1*******.********
子網掩碼 11111111.11111111.10000000.00000000
AND運算
11000000.10101000.10000000.00000000
轉化為十進制後為:
192 . 168. 128 . 0
4.可知我們內部網可用的IP位址為:
11000000.10101000.10000000.00000000
11000000.10101000.11111111.11111111
(也可以是:11000000.10101000.00000000.00000000 到11000000.10101000.01111111.11111111)
5.轉化為十進制:
192 . 168.128.0 到192 . 168.255.255 (或者192.168.0.0到192.168.127.255)
6.0和255通常作為網路的內部特殊用途。通常不使用。
7.於是最後的結果如下:我們單位所有可用的IP位址為:
192.168.128.1-192.168.128.254
192.168.129.1-192.168.129.254
192.168.130.1-192.168.130.254
192.168.131.1-192.168.131.254
. . . . . . . . . . . . .
192.168.139.1-192.168.139.254
192.168.140.1-192.168.140.254
192.168.141.1-192.168.141.254
192.168.142.1-192.168.142.254
192.168.143.1-192.168.143.254
. . . . . . . . . . . . .
192.168.254.1-192.168.254.254
192.168.255.1-192.168.255.254
8.總數為(255-128+1)*(254-1+1) =128 * 254 = 32512
子網內包含的機器數目應該是2^n-2,比如說上面的子網掩碼是255.255.128.0,那么他的網路號是17位,主機號是15位,只要主機號不全是0或者1就是可以的,所以ip地址是192.168.192.0(11000000.10101000.11000000.00000000)也允許,除掉全0全1,結果為2^15-2*(255-128+1)=32512
9.看看的結果是否正確
(1)、設定IP位址為192.168.128.1
Ping 192.168.129.233通過測試
訪問http://192.168.129.233可以顯示出主頁
(2)、設定IP位址為192.168.255.254
Ping 192.168.255.254 通過測試
訪問http://192.168.255.254 可以顯示出主頁
10.結論
以上證明我們的結論是對的。
現 在你就可以看你的子網中能有多少台機器了
255.255.255.128
分解:
11111111.11111111.11111111.10000000
所以你的內部網路的ip地址只能是
xxxxxxxx.xxxxxxxx.xxxxxxxx.0???????
xxxxxxxx.xxxxxxxx.xxxxxxxx.01111111
子網掩碼

復用技術

子網TCP/IP網間網技術產生於大型主流機環境中,它能發展到今天的規模是當初的設計者們始料未及的。網間網規模的迅速擴展對IP位址模式的威脅並不是它不能保證主機地址的唯一性,而是會帶來兩方面的負擔:第一,巨大的網路地址管理開銷;第二,網關尋徑急劇膨脹。其中第二點尤為突出,尋徑表的膨脹不僅會降低網關尋徑效率(甚至可能使尋徑表溢出,從而造成尋徑故障),更重要的是將增加內外部路徑刷新時的開銷,從而加重網路負擔。
因此,迫切需要尋求新的技術,以應付網間網規模增長帶來的問題。仔細分析發現,網間網規模的增長在內部主要表現為網路地址的增減,因此解決問題的思路集中在:如何減少網路地址。於是IP網路地址的多重複用技術應運而生。
通過復用技術,使若干物理網路共享同一IP網路地址,無疑將減少網路地址數。

編址技術

子網編址(subnet addressing)技術,又叫子網尋徑(subnet routing),英文簡稱subnetting,是最廣泛使用的IP網路地址復用方式,已經標準化,並成為IP位址模式的一部分。一般的,32位的IP位址分為兩部分,即網路號主機號,我們分別把他們叫做IP位址的“網間網部分”和“本地部分”。子網編址技術將本地部分進一步劃分為“物理網路”部分和“主機”部分,如圖:網間網部分物理網路主機
|←網間網部分→|←————本地部分—————→|
|←物理網路→|←—主機部分——→|
其中“物理網路”用於標識同一IP網路地址下的不同物理網路即是“子網”。
(2)子網掩碼IP協定標準規定:每一個使用子網的網點都選擇一個32位的位模式,若位模式中的某位置1,則對應IP位址中的某位為網路地址(包括網間網部分和物理網路號)中的一位;若位模式中的某位置0,則對應IP位址中的某位為主機地址中的一位。例如位模式:
11111111 11111111 11111111 00000000中,前三個位元組全1,代表對應IP位址中最高的三個位元組為網路地址;後一個位元組全0,代表對應IP位址中最後的一個位元組為主機地址。這種位模式叫做子網模(subnet mask)或“子網掩碼”。
為了使用的方便,常常使用“點分整數表示法”來表示一個IP位址和子網掩碼,例如c類地址子網掩碼(11111111 11111111 11111111 00000000)為:255.255.255.0 IP協定關於子網掩碼的定義提供一種有趣的靈活性,允許子網掩碼中的“0”和“1”位不連續。但是,這樣的子網掩碼給分配主機地址和理解尋徑表都帶來一定困難,並且,極少的路由器支持在子網中使用低序或無序的位,因此在實際套用中通常各網點採用連續方式的子網掩碼。像255.255.255.64和255.255.255.160等一類的子網掩碼不推薦使用。
(3)子網掩碼與IP位址結合使用,可以區分出一個網路地址網路號和主機號。
例如:有一個C類地址為:192.9.200.13其預設的子網掩碼為:255.255.255.0則它的網路號主機號可按如下方法得到:
①將IP位址192.9.200.13轉換為二進制11000000 00001001 11001000 00001101
②將子網掩碼255.255.255.0轉換為二進制11111111 11111111 11111111 00000000
③將兩個二進制數邏輯與(AND)運算後得出的結果即為網路部分
11000000 00001001 11001000 00001101 AND 11111111 11111111 11111111 00000000
11000000 00001001 11001000 00000000結果為192.9.200.0,即網路號為192.9.200.0。
④將子網掩碼取反再與IP位址邏輯與(AND)後得到的結果即為主機部分11000000 00001001 11001000 00001101 AND 00000000 00000000 00000000 11111111 結果為00000000 00000000 00000000 00001101轉化為十進制得到0.0.0.13,即主機號為13。

掩碼分類

子網掩碼一共分為兩類。一類是預設(自動生成)子網掩碼,一類是自定義子網掩碼。預設子網掩碼即未劃分子網,對應的網路號的位都置1,主機號都置0。
A類網路預設子網掩碼:255.0.0.0
B類網路預設子網掩碼:255.255.0.0
C類網路預設子網掩碼:255.255.255.0
自定義子網掩碼是將一個網路劃分為幾個子網,需要每一段使用不同的網路號或子網號,實際上我們可以認為是將主機號分為兩個部分:子網號、子網主機號。形式如下:
子網劃分後的ip地址網路號+子網號+子網主機
也就是說ip地址在劃分子網後,以前的主機號位置的一部分給了子網號,餘下的是子網主機號。子網掩碼是32位二進制數,它的子網主機標識用部分為全“0”。利用子網掩碼可以判斷兩台主機是否在同一子網中。若兩台主機的IP位址分別與它們的子網掩碼相“與”後的結果相同,則說明這兩台主機在同一子網中。

掩碼變長

可變長子網掩碼(VLSM)的作用:節約IP位址的空間;減少路由表大小。使用VLSM時,所採用的路由協定必須能夠支持它,這些路由協定包括RIPv2,OSPF,EIGRP和BGP。關於更多的VLSM知識,可以去百度搜尋。

劃分捷徑

1.會產生多少個子網
2的x次方-2(x代表掩碼位,即2進制為1的部分,現 在的網路中,已經不需要-2,已經可以全部使用,不過需要加上相應的配置命令,例如CISCO路由器需要加上ip subnet zero命令就可以全部使用了。)
2.能有多少主機
2的y次方-2(y代表主機位,即2進制為0的部分)
3.有效子網是
有效子網號=256-10進制的子網掩碼(結果叫做block size或base number)
4.子網的廣播地址是
廣播地址=下個子網號-1
5.有效主機分別是
忽略子網內全為0和全為1的地址剩下的就是有效主機地址。最後有效1個主機地址=下個子網號-2(即廣播地址-1)

相關詞條

熱門詞條

聯絡我們