當一個組織申請了一段IP地址後,可能需要對IP地址進行進一步的子網劃分。例如,某規模較大的公司申請了一個B類IP地址166.133.0.0。如果採用標準子網路遮罩255.255.0.0而不進一步劃分子網,那麼166.133.0.0網路中的所有主機(最多共65534台)都將處於同一個廣播域下,網路中充斥的大量廣播資料包將導致網路最終不可用。
解決方案是進行非標準子網劃分。非標準子網劃分的策略是借用主機號的一部分充當網路號。具體方法是採用新的、非標準子網路遮罩,而不採用預設的標準子網路遮罩。
例如,B類地址166.133.0.0,不使用標準子網路遮罩255.255.0.0,而是使用非標準子網路遮罩,如255.255.255.0、255.255.240.0等將網路劃分為多個子網。
1所示。我們借用原來屬於主機號範圍的第3個位域充當子網號範圍,即借用了8位主機號充當子網號。所採用的新子網路遮罩是:255.255.255.0,該子網路遮罩將這個B類的大網路166.133.0.0又劃分成為254個小的子網(全0和全1的子網號不能使用)。對於這254個子網來說,每個子網各自又可以容納254台主機。
圖1 非標準子網劃分
下面,我們分別以C、B、A類IP地址為例詳細討論非標準子網劃分。
1 對C類網路進行非標準子網劃分
對於標準的C類IP地址來說,標準子網路遮罩為255.255.255.0,即用32位元IP地址的前24位元標識網路號,後8位元標識主機號。因此,每個C類網路下共可容納254台主機(28-2)。
現在,我們先考慮借用2位元的主機號來充當子網路號的情形。2所示。
圖2 借用2位元的主機號來充當子網路號
在圖2中,為了借用原來8位主機號中的前2位充當子網路號,採用了新的、非標準子網路遮罩255.255.255.192。
採用了新的子網路遮罩後,借用的2位子網號可以用來標識兩個子網:01子網和10子網(子網號不能全為0或1,因此00、11子網不能用)。
首先,對於01子網來說,其網路號的點分十進位的形式為:210.31.233.64,該子網的最小IP地址為:210.31.233.65,最大IP地址為:210.31.233.126,共可容納62台主機。對該子網的直接廣播位址為:210.31.233.127。3所示。
圖3 01子網計算過程
其次,對於10子網來說,其網路號的點分十進位的形式為:210.31.233.128,該子網的最小IP地址為:210.31.233.129,最大IP地址為:210.31.233.190,共可容納62台主機。對該子網的直接廣播位址為:210.31.233.191。
同理,還可以借用3位、4位、5位、6位主機號充當子網號。表1總結了對C類IP地址借用不同位元的主機號時應採用的子網路遮罩,以及可劃分為多少個子網和每個子網可容納的主機數。注意,借1位或7位無效。
2 對B類網路進行非標準子網劃分
對於標準的B類IP地址來說,標準子網路遮罩為255.255.0.0,即用32位元IP地址的前16位元標識網路號,後16位元標識主機號。因此,每個B類網路下共可容納65534台主機(216-2)。
我們同樣先考慮借用2位元的主機號來充當子網路號的情形。4所示。
圖4 借用2位元的主機號來充當子網路號
在圖4中,為了借用原來16位主機號中的前2位充當子網路號,採用了新的非標準子網路遮罩255.255.192.0。
採用了新的子網路遮罩後,借用的2位子網號可以用來標識兩個子網:01子網和10子網(子網號不能全為0或1,因此00、11子網不能用)。
首先,對於01子網來說,其網路號的點分十進位的形式為:166.133.64.0,該子網的最小IP地址為:166.133.64.1,最大IP地址為:166.133.127.254,共可容納16382台主機。對該子網的直接廣播位址為:166.133.127.255。5所示。
圖5 01子網計算過程
其次,對於10子網來說,其網路號的點分十進位的形式為:166.133.128.0,該子網的最小IP地址為:166.133.128.1,最大IP地址為:166.133.191.254.,共可容納16382台主機。對該子網的直接廣播位址為:166.133.191.255。
同理,還可以借用3位、4位、5位、6位、7位、8位甚至更多位主機號來充當子網號,表2總結了對於B類網路常用的、借用不同位元的主機號時應採用的子網路遮罩,以及可劃分為多少個子網和每個子網可容納的主機數。注意,借1位或15位無效。
3 對A類網路進行非標準子網劃分
仿照前面的分析,我們可以得出A類網路常見的子網劃分方式及其相關資料,如表3所示。
4 全0和全1網段
回想前面的例子中,將C類網路210.31.233.0劃分為兩個子網210.31.233.64和210.31.233.128後,每子網可容納62台主機,兩個子網共可容納124台主機。而在未劃分子網前,該C類網路210.31.233.0可以容納254台主機。也就是說,劃分子網後浪費了一半的IP地址(即210.31.233.1-210.31.233.63和210.31.233.192-210.31.233.254)。
這裡造成IP地址空間浪費的主要原因是RFC 1009中規定劃分子網時,子網號不能全為0或1,我們將其稱為全0與全1網段。
RFC 1009保留全0與全1網段未用是因為在某些時候採用全0與全1網段會導致IP地址的二義性。
例如,為了將標準C類網路201.15.66.0劃分成8個子網,採用了非標準子網路遮罩255.255.255.224。該子網路遮罩將C類網路201.15.66.0劃分成如下8個子網(假設允許子網號全為0或1)。
●子網1:網路號201.15.66.0,可以IP位址範圍:201.15.66.1-201.15.66.30,子網廣播位址:201.15.66.31。
●子網2:網路號201.15.66.32,可以IP位址範圍:201.15.66.33-201.15.66.62,子網廣播位址:201.15.66.63。
●子網3:網路號201.15.66.64,可以IP位址範圍:201.15.66.65-201.15.66.94,子網廣播位址:201.15.66.95。
●子網4:網路號201.15.66.96,可以IP位址範圍:201.15.66.97-201.15.66.126,子網廣播位址:201.15.66.127。
●子網5:網路號201.15.66.128,可以IP位址範圍:201.15.66.129-201.15.66.158,子網廣播位址:201.15.66.159。
●子網6:網路號201.15.66.160,可以IP位址範圍:201.15.66.161-201.15.66.190,子網廣播位址:201.15.66.191。
●子網7:網路號201.15.66.192,可以IP位址範圍:201.15.66.193-201.15.66.222,子網廣播位址:201.15.66.223。
●子網8:網路號201.15.66.224,可以IP位址範圍:201.15.66.225-201.15.66.254,子網廣播位址:201.15.66.255。
對於未劃分子網的原主網路201.15.66.0來說,其網路號201.15.66.0和劃分完子網後的第1個子網的網路號201.15.66.0是相同的!同樣,對於原主網路201.15.66.0來說,其廣播位址201.15.66.255和劃分完子網後的第8個子網的廣播位址201.15.66.255也相同的!因此,RFC 1009規定不能使用全0或全1的子網號,以免發生上面的IP地址二義性問題。
為瞭解決IP地址的二義性問題,可以規定IP地址不能單獨使用,必須攜帶相應的子網路遮罩資訊。如201.15.66.0+255.255.255.0是指未劃分子網的原主網路201.15.66.0,而201.15.66.0+255.255.255.224是指劃分完子網後的第1個子網的網路號。
同理,201.15.66.255+255.255.255.0是指對未劃分子網的原主網路201.15.66.0的廣播,而201.15.66.255+255.255.255.224是指對劃分完子網後的第8個子網的廣播。
這樣,既有效地利用了寶貴的IP地址空間、減少了浪費,又可以有效地避免IP地址的二義性問題。
在Cisco路由器上,預設可以使用全1網段,但是不能使用全0網段。如果我們想要使用全0網段,必須輸入命令ip subnet-zero允許使用全0網段。
需要注意的是,雖然命令ip subnet-zero允許我們使用全0網段,但對於一些有類(Classful)路由協議,如RIP、IGRP在廣播路由更新資訊時,只發送網路地址資訊而不發送相應的子網路遮罩資訊。這時,仍然會出現IP地址的二義性問題。
5 專用地址空間
RFC 1918中定義了在商業網路內部使用的專用(私人)地址空間,如下:
●A類:10.0.0.0-10.255.255.255
●B類:172.16.0.0-172.31.255.255
●C類:192.168.0.0-192.168.255.255
這些網路地址在網際網路中是無法路由的,只能在商業網路內部使用。具有這些網路地址的主機如果想要訪問Internet,要麼需要通過Proxy 伺服器,要麼需要通過具有網路位址轉譯功能的路由器或防火牆。
此外,微軟在自己的TCP/IP實現中規定了LinkLocal網路地址空間:169.254.0.0-169.254.255.255也屬於專用內部地址,也同樣無法在Internet中路由。6所示。
圖6 LinkLocal網路地址