第六章 IP網絡的子網劃分

 

第六章 IP網絡的子網劃分
6.1 子網劃分和子網掩碼
到現在爲止,我們已經討論了I P地址的結構,其中包含網絡地址和主機地址。I P地址中
保留給網絡地址的那部分由網絡掩碼說明。我們也討論了,對於每種類的地址,在子網掩碼中有一個默認的位數。沒有用於網絡地址的所有其他位都可以用於說明網絡上的特定主機。
現在我們將討論如何通過借用主機地址位,用它們來表示網絡的一部分,而進一步將網絡分解爲子網。
子網劃分的目的
在一個網絡上,通信量和主機的數量成比例,而且和每個主機產生的通信量的和成比例。
隨着網絡的規模越來越大,這種通信量可能達到這樣的一種地步,即超出了介質的能力,而且網絡性能開始下降。在一個廣域網中,減少廣域網上不必要的通信量也是一個主要的話題。
在研究這樣的問題的過程中會發現,一組主機傾向於互相通信,而且和這個組外的通信
非常少。這些分組可以按照一般的網絡資源的用途來說明,或者按照幾何距離來劃分,它使局域網之間的低速廣域網連接成爲必要。通過使用子網,我們可以將網絡分段,因而隔離各個組之間的通信量。爲在這些網段之間通信,必須提供一種方法以從一個段向另一個段傳遞通信量。
這個問題的一個解決方法是用網橋來隔離這些網段。網橋將學習在它的每一邊所駐留的
地址,方法是查看M A C地址,然後僅僅轉發需要通過網段的數據包。這是一個快速和相對廉價的解決方法,但是缺乏靈活性。例如,如果網橋發現它可以從任何一邊而達到給定的地址,則網橋會感到迷惑。這使得一般不可能用網橋建立多餘的路徑。網橋也傳送廣播。
一個更加堅固的解決方法是使用路由器,它指揮網絡之間的通信量,方法是使用建立網
絡目的地和路由器的特定端口之間的聯繫的表格。每個這樣的端口都連接到源網絡目的網絡或一些中間網絡上,這些中間網絡可以通向最終的目的網絡。通過使用路由器,我們可以爲數據定義多個路徑,這增強了網絡的故障耐受能力和性能。
在路由網絡中進行尋址的方法可能僅僅給每個網段一個不同的網絡地址。這在隔離的網
絡中可以使用,但是如果網絡連接到外部世界,則這種結果並不是我們所期望的。爲連接到I n t e r n e t上,必須有一個唯一的網絡地址,它必須由規則代理機構指定。這些網絡地址的需求量非常大,但是通常很少提供。如果沒有通過一個網絡地址而具有一個公共的入口點,我們也增加了從公共網絡到內部網絡的路由數據的複雜性。
爲得到單個網絡的經濟性和簡單性,同時也要提供內部段和路由我們的網絡的能力,我
們使用子網。從外部路由器的角度來看,我們的網絡會作爲單個的整體出現。然而,在內部,我們仍然通過子網而提供網段,而且用內部路由器來指揮和隔離子網之間的通信量。下面的
章節將討論子網掩碼在定義子網中的角色。
在默認子網掩碼中加入位
我們已經瞭解,一個I P地址必須在它的子網掩碼的環境中解釋。子網掩碼定義了地址
的網絡地址部分。每類地址具有默認的掩碼,對於A類爲8位,對於B類爲1 6位,對於C類爲2 4位。如果我們希望在一個網絡中建立子網,我們在這個默認的子網掩碼中加入一些位,它減少了用於主機地址的位數。我們加入到掩碼中的位數決定了我們可以配置的子網。因而,在一個劃分了子網的網絡中,每個地址包含一個網絡地址、一個子網地址和一個主機地址。
子網位來自主機地址的最高的相鄰的位,並從一個8位位組邊界開始,因爲默認掩碼總是
在8位位組邊界處結束。隨着我們加入子網位,我們從左到右計數,並用和它們的位位置相關的值,將它們轉換爲十進制。
6.2 子網規劃
子網規劃
子網規劃的過程涉及到分析網絡上的通信量形式,以確定哪些主機應該分在同一個子網中。我們也需要了解我們需要的子網的整體數目,通常考慮發展的因素,而留下一個空間。我們也需要考慮我們正在處理的網絡的地址類和我們預料的在每個子網中必須支持的主機的總數。
選擇子網掩碼
在選擇子網過程中,主要的考慮就是我們需要支持多少個子網。當然,這個挑戰是平衡每個子網所具有的最大的主機數量和子網的數量。每個網絡、子網和地址的主機部分僅僅可以使用3 2位。如果我們選擇了一個子網掩碼,它提供的子網多於我們所需要的,則這將減少我們可以支持的潛在的主機數量。
在選擇掩碼時的其他的考慮就是記住對全部爲0或全部爲1的子網值的限制已經取消了。
使用零子網
由於“0”子網與網絡表現爲同樣的地址,只是掩碼不同。爲了避免混淆子網與網絡,RFC 791中規定“0”子網是非法的,而且強烈不提倡使用。比如網絡166.16.0.0按照255.255.255.0的子網掩碼進行子網劃分,零子網也表示爲166.16.0.0。
雖然全“1”和全“0”子網沒有被鼓勵使用,但是還是可以使用的,而且不會影響網絡的正常運行和互聯互通。全“1”子網都是允許使用的,但如果你希望應用所有的子網地址空間,就需要特別配置。
要使用零子網,在全局配置模式中執行以下命令:

命令
作用
Red-Giant(config)#ip subnet-zero
允許使用零子網
Red-Giant(config)#no ip subnet-zero
禁止使用零子網
 
RGNOS缺省情況下已經允許使用零子網。
主機數目的影響
記住,我們用於子網的位數要從指定給主機地址的位數中減去。每個二進制位代表2的冪,所以我們所用掉的每位將使每個子網的潛在主機數目減半。因爲地址類定義了主機位數的最大數目,每個地址類都受到了子網的不同影響。
因而,如果給定了一個網絡規劃,它具有一定數量的子網,每個子網期望支持一定數目的主機和一定的地址類,則我們可能發現,我們不得不用較少的子網,支持較少的主機,或選擇不同的地址類來滿足我們的需要。對於每類,子網對主機數目的影響總結在確定每個子網的地址範圍。一旦我們確定了合適的子網掩碼,下一個挑戰就是確定每個子網的地址和每個子網上主機地址的允許範圍。假設了一個帶有子網掩碼2 5 5 . 2 5 5 . 2 2 4 . 0的網絡地址1 3 5 . 1 2 0 . 0 . 0。
確定子網地址
0 0 0 =0       1 3 5 . 1 2 0 . 0 . 0
0 0 1 =3 2      1 3 5 . 1 2 0 . 3 2 . 0
0 1 0 =6 4      1 3 5 . 1 2 0 . 6 4 . 0
0 11 =9 6       1 3 5 . 1 2 0 . 9 6 . 0
1 0 0 =1 2 8     1 3 5 . 1 2 0 . 1 2 8 . 0
1 0 1= 1 6 0    1 3 5 . 1 2 0 . 1 6 0 . 0
11 0 =1 9 2    1 3 5 . 1 2 0 . 1 9 2 . 0
111= 2 2 4      1 3 5 . 1 2 0 . 2 2 4 . 0
一旦我們確定了每個子網的地址,我們就可以確定每個子網內允許的主機地址範圍。下面的例子說明了確定地址範圍的原則。
1) 第一個可以使用的主機地址比子網I D高1位。換句話說,如果子網是1 2 0 . 1 0 0 . 1 6 . 0,則第一個主機地址是1 2 0 . 1 0 0 . 1 6 . 1。
2) 假設我們爲子網使用4位,則下一個較高的子網地址是1 2 0 . 1 0 0 . 3 2 . 0。如果我們從這個地址中減去一位,我們將得到較低的子網的廣播地址。這就是地址1 2 0 . 1 0 0 . 3 1 . 2 5 5。
3) 最大的可用主機地址是比廣播地址少1的地址,或者1 2 0 . 1 0 0 . 3 1 . 2 5 4。
現在,需要確定子網的實際邊界。如果掩碼位於8位位組邊界上,則這很容易。所以讓我們研究一個不那麼簡單的例子。
考慮帶有子網掩碼2 5 5 . 2 5 5 . 2 5 2 . 0的網絡1 7 2 . 1 6 . 0 . 0。什麼是我們可以使用的合法的子網數字,以及它們中的IP地址範圍是多少?
如果有一個8位組數,掩碼既不是全爲0,也不是全爲1,則這裏就是你應該注意的地方。在這個例子中,第3個8位組是我們所感興趣的。計算這個掩碼的二進制:2 5 2用二進制表示爲111111 0 0。爲了找到一個合法的子網數字,需要找到最小的有意義的位,它在我們的子網掩碼中爲1。在8位組內的那個位的位置的值,用2的冪來表示,就是4。所以我們的第一個合法的子網數字是172.16.4.0。爲得到剩下的子網數字,我們只需加4:172.16.8.0, 172.16.12.0,172.16.16.0,172,16,20,0,直至172.16.251.0,這是這個例子中63個合法的子網數字中的最後一個。如果掩碼恰好爲2 5 5 . 2 5 5 . 2 4 8 . 0,第3個8位組掩碼以二進制表示爲11111 0 0 0,從1 7 2 . 1 6 . 8 . 0開始作爲第一個子網,然後加8,而不是4,因爲掩碼中爲1 的最後一位的值是8。
最後的一件事情就是找到每個子網的主機地址範圍。我們不會使用全0或全1,因
爲那些已經保留給網絡數字和直接廣播。所以第一個子網的第一個主機地址爲
1 7 2 . 1 6 . 4 . 1,最後的一個爲1 7 2 . 1 6 . 7 . 2 5 4。第3個8位組數中的7從哪裏來?記住,第3個8位組中的兩個最小的有意的位是主機數字的一部分,所以它們需要包含在計算中。下一個子網的主機地址爲172.16.8.1到172.16.11.254,172.16.12.1到172.16.15.254等等。
學習子網的最後一個提示:你自己計算一些其他的例子,並且如果你需要,不要
害怕寫出二進制數字!
6.3 複雜子網
迄今爲止,我們將對子網的討論限制在使用分類的I P地址的簡單例子中。本節將介紹一
些更加複雜的子網問題和練習。我們從考慮穿越8位位組邊界的子網掩碼開始,因爲這經常是產生混淆的地方。我們也考慮長度可變的子網掩碼( V L S M ),以作爲在子網掩碼的使用過程中得到更大的靈活性的手段。最後,我們將考慮一個例子,稱爲超網,它可以作爲建立子網的逆過程,因爲我們從默認的子網掩碼中刪除位,而不是加入位。
子網位穿越8位位組邊界
無論何時,我們在子網中使用的位數多於8位,就面臨超越8位位組編輯的問題。處理這
些子網掩碼的一個挑戰就是遵守關於全1和全0的限制。爲做到這一點,我們不得不將3 2位地址中的子網位看作是獨立的位的集合,而且同時要記住它們的位的位置,以及相關的值。
當子網掩碼穿越8位位組邊界時,最高的8位,它消耗一個完整的8位位組,將在子網之間
具有1的間隔。這意味着0 ~ 2 5 5之間的任何組合都符合這個8位位組,只要在較低的8位位組加入的子網位不全是1或全是0就可以。同時,低8位位組中的位將按照低8位位組中的最低的有效位而增加它的值。爲了解這是如何進行的,它給出了一個使用1 0位子網位(掩碼2 5 5 . 2 5 5 . 1 9 2 . 0 )和A類網絡( 2 . 0 . 0 . 0 )相關的子網I D的例子。
使用1 0位子網位的子網I D例子
子網I D 子網位值註釋
2 . 0 . 0 . 0          0000 0000 00        第一個子網I D
2 . 0 . 6 4 . 0        0000 0000 01        第二個子網I D
2 . 0 . 1 2 8 . 0      0000 0000 10        下一個子網
2 . 0 . 1 9 2 . 0      0000 0000 11        低8位位組全爲1
2 . 1 . 0 . 0         0000 0001 00        低8位位組全爲0
2 . 2 5 5 . 0 . 0      1111 1111 00        高8位位組全爲1
2 . 2 5 5 . 1 92. 0   1111 1111 11        最後的合法的子網
6.4 變長子網掩碼
定義子網掩碼的時候,我們作出了假設,在整個網絡中將一致地使用這個掩碼。在許多
情況下,這導致浪費了許多主機地址,因爲我們的子網在大小上可能差別很大。這種情況的主要例子就是這樣的一種情況,我們有一個子網,它通過串口連接了2個路由器。
在這個子網上僅僅有兩個主機,每個端口一個,但是我們已經將整個子網分配給了這兩
個接口。如果我們使用其中的一個子網,並進一步將其劃分爲第2級子網,我們將有效地“建
立子網的子網”,並保留其他的子網,以用於其他的用途。“建立子網的子網”的想法構成了V L S M的基礎。
我們已經討論了具有網絡地址部分和主機地址部分的I P地址。利用子網劃分技術,我們
也可以具有代表子網I D的地址部分。從總體上說,表示網絡和子網I D的掩碼位可以稱爲前綴。路由器可以說在前綴的基礎上進行路由。如果存在一種方法,可以用一個地址表達特定的前綴信息,我們可以越過網絡範圍內的假設,這個假設建立在單一的子網掩碼的基礎之上。爲達到這個目的,我們在每個地址參考中的前綴上加入了前綴信息。用於表示這個前綴(子網掩碼)的格式稱爲位計數格式,它用一個斜槓後面的十進制數來加入到地址中。例如,對B類地址的引用表示爲1 3 5 . 1 2 0 . 2 5 . 2 0 / 1 6 。“ / 1 6”定義了1 6個子網位,它等於默認的掩碼,2 5 5 . 2 5 5 . 0 . 0 ( 1 6位)。
爲使用V L S M,我們通常定義一個基本的子網掩碼,它將用於劃分第1級子網,然後用第2
級掩碼來劃分一個或多個主要子網。V L S M僅僅可以由新的路由協議,如RIP V2或O S P F識別。
當使用V L S M時,所有的子網I D,包括全1和全0子網,都是合法的。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章