我們先假定一個環境,一個小小的公司中,目前有5個部門A至E,其中:A部門有10臺PC(Host,主機),B部門20臺,C部門30臺,D部門15臺,E部門20臺,然後CIO分配了一個總的網段192.168.2.0/24給你,作爲ADMIN,你的任務是爲每個部門劃分單獨的網段,你該怎樣做呢?
解:
根據題目,提煉已知條件得:
子網數<=5;主機數<=30;網段爲C類地址;
由此我們知道該地址段的默認子網掩碼爲:255.255.255.0;
轉換爲二進制得:(11111111.11111111.11111111.00000000)
而我們知道在進行子網劃分時,是犧牲主機的數量來轉換爲子網數,
因此,根據已知條件,以子網進行計算
假設,我們將n爲主機二進制數轉換爲子網,則得:
2n>=5
求得:n>=3,由此意味着我們將犧牲主機數量的三位二進制數轉換爲子網數:
子網掩碼應爲:(11111111.11111111.11111111.00000000)
爲求證該子網結構是否符合要求,計算當前子網主機數應爲25-2=30>=30
符合網絡的需求;所以依據所算子網掩碼,進行排列組合得到以下8個自子網:
(1)11111111.11111111.11111111.00000000 不能用
(2)11111111.11111111.11111111.00100000
(3)11111111.11111111.11111111.01000000
(4)11111111.11111111.11111111.01100000
(5)11111111.11111111.11111111.10000000
(6)11111111.11111111.11111111.10100000
(7)11111111.11111111.11111111.11000000
(8)11111111.11111111.11111111.11100000 不能用
同時,在網絡地址分配中,全爲1和全爲0的不用,則轉換爲十進制後得到6個子網,分別是:
(1)255.255.255.32
(2)255.255.255.64
(3)255.255.255.96
(4)255.255.255.128
(5)255.255.255.160
(6)255.255.255.192
同樣,我們依據C類地址192.168.2.0可計算出在每個子網下的第一個IP地址和最後一個IP地址,它們分別是:
(1)255.255.255.32: 192.168.2.33~ 192.168.2.62
(2)255.255.255.64: 192.168.2.65~ 192.168.2.94
(3)255.255.255.96: 192.168.2.97~ 192.168.2.126
(4)255.255.255.128: 192.168.2.129~ 192.168.2.158
(5)255.255.255.160: 192.168.2.161~ 192.168.2.190
(6)255.255.255.192: 192.168.2.193~ 192.168.2.222
6 IP地址和子網掩碼
不瞭解二進制的人請自己補習數學知識,我不在這裏重複二進制了。稍微有點網絡常識的人都知道IP地址其實是二進制的網絡地址,換算成10進制是爲了方便記憶。而如果想要理解子網掩碼的原理我們必須把IP地址換算成二進制來研究。
首先,我們都知道“與或非”邏輯運算原理吧。(不知道的去補數學)。那麼我們來簡單的舉個實例。IP地址192.168.1.8 子網掩碼255.255.255.0 是什麼意思呢,192.168.1.8換算成二進制是11000000.10101000.00000001.00001000而子網掩碼的二進制則是11111111.11111111.11111111.00000000,兩者“與”運算得到11000000.10101000.00000001.00000000,換算成十進制得到192.168.1.0。這樣我們就得到了一個網絡地址,也就是說192.168.1.0網絡內包括了從192.168.1.1到192.168.1.254這些地址的主機(.255作爲廣播地址不能分配到主機上),192.168.1.8僅僅是這其中的一臺。注意192.168.1.0在這個例子中被稱爲網絡地址,192.168.1.8則被稱爲主機地址。子網掩碼有的時候也能用1所佔總位數表示。比如這個例子中 192.168.1.8 255.255.255.0 也可以寫爲192.168.2.8/24,/24就代表了子網掩碼的位數
那麼爲什麼要使用子網掩碼呢?因爲路由器在轉發數據的時候是不檢查主機位地址的,通過“與”運算後得出網絡地址,路由器就會按照網絡地址發送數據,至於發送到哪臺主機上路由器並不關心。另外說的複雜些,有些較大的網絡內會包含若干個子網,如192.168.0.0 /16 會包含 192.168.1.0/24 192.168.2.0/24 等子網絡。這裏出現了一個包含和被包含的邏輯關係,路由器通過路由彙總等方法也可以根據這些邏輯關係來判斷網絡的層次結構,限於篇幅和專業性,不予介紹了,僅爲說明子網掩碼的重要意義。另外子網掩碼也可以借位和退位,計算起來稍微麻煩點,限於篇幅也不介紹了。
附帶說一句,原本有一種沒有子網掩碼的地址方案,這種方案明確的確定了主機地址和網絡地址的部分,這就是大名鼎鼎的IPX分址方案,現在已經基本淘汰,我學習IPX也不多,估計是被淘汰是由於它不能動態的組成有層次的網絡結構。
下面就來以實例來說明子網掩碼的算法:
1。
對於無須再劃分成子網的IP地址來說,其子網掩碼非常簡單,即按照其定義即可寫出:如某B類IP地址爲10.12.3.0,無須再分割子網,則該IP地址的子網掩碼爲255.255.0.0。如果它是一個C類地址,則其子網掩碼爲255.255.255.0。其它類推,不再詳述。下面我們關鍵要介紹的是一個IP地址,還需要將其高位主機位再作爲劃分出的子網網絡號,剩下的是每個子網的主機號,這時該如何進行每個子網的掩碼計算。
一、利用子網數來計算
在求子網掩碼之前必須先搞清楚要劃分的子網數目,以及每個子網內的所需主機數目。
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,得到255.255.248.0即爲劃分成27個子網的B類IP地址168.195.0.0的子網掩碼。
子網劃分是通過借用IP地址的若干位主機位來充當子網地址從而將原網絡劃分爲若干子網而實現的。劃分子網時,隨着子網地址借用主機位數的增多,子網的數目隨之增加,而每個子網中的可用主機數逐漸減少。以C類網絡爲例,原有8位主機位,2的8次方即256個主機地址,默認子網掩碼255.255.255.0。借用1位主機位,產生2個子網,每個子網有126個主機地址;借用2位主機位,產生4個子網,每個子網有62個主機地址……每個網中,第一個IP地址(即主機部分全部爲0的IP)和最後一個IP(即主機部分全部爲1的IP)不能分配給主機使用,所以每個子網的可用IP地址數爲總IP地址數量減2;根據子網ID借用的主機位數,我們可以計算出劃分的子網數、掩碼、每個子網主機數,列表如下:
① 劃分子網數 ② 子網位數 ③ 子網掩碼(二進制) ④ 子網掩碼(十進制) ⑤ 每個子網主機數
① 1~2 ② 1 ③ 11111111.11111111.11111111.10000000 ④ 255.255.255.128 ⑤ 126
① 3~4 ② 2 ③ 11111111.11111111.11111111.11000000 ④ 255.255.255.192 ⑤ 62
① 5~8 ② 3 ③ 11111111.11111111.11111111.11100000 ④ 255.255.255.224 ⑤ 30
① 9~16 ② 4 ③ 11111111.11111111.11111111.11110000 ④ 255.255.255.240 ⑤ 14
① 17~32 ② 5 ③ 11111111.11111111.11111111.11111000 ④ 255.255.255.248 ⑤ 6
① 33~64 ② 6 ③ 11111111.11111111.11111111.11111100 ④ 255.255.255.252 ⑤ 2
如上表所示的C類網絡中,若子網佔用7位主機位時,主機位只剩一位,無論設爲0還是1,都意味着主機位是全0或全1。由於主機位全0表示本網絡,全1留作廣播地址,這時子網實際沒有可用主機地址,所以主機位至少應保留2位。