關於子網劃分、子網聚合(超網)的研究
一、子網劃分
子網劃分經常遇到,現在就以一個C類網路的網段來研究子網的劃分,以192.168.100.0/24為例,以最後八位來分割子網,假設用8個圈來表示最後8個位, 從左至右依次是第25位,第26位,直至第32位最後一位。如下所示:
如上所示,不難看出,掩碼長度為25的,說明從C類網路地址中的主機位上借了一個地址位,其餘7位為主機位,也就是說將一個C類網路劃成了兩個子網,第25位的網路號有兩種情況,一種是0,一種是1,也就是一個是192.168.100.0/25,另一個是192.168.100.128/25。網路個數為2的1次方個,也就2個,因為這個位只有兩種情況,要麼為0,要麼為1.,那當然每個子網的主機數為:256/網路個數,然後減去子網號與廣播地址這兩個地址,所得數目就是主機數:(256/2)-2=126。
由此類推,若掩碼為192,剛說明劃分成了四個子網,即第25位和第26位兩位為網路位,則有四種情況,00,01,10,11,也即:192.168.100.0/26,192.168.100.64/26,192.168.100.128/26和192.168.100.192/26。
上圖是根據網路位與主機位的相互關係推算並畫出來的,下面就用公式來表達上圖的意思。
除去前8*3=24位不說,就從後8位(用0表示)說起,11111111 11111111 11111111 00000000,從左到右依次用1,2,3.。。8來表示其位,因為網路位是要向主機位借,所以方向也是從左到右的,這並不為奇。而在這8位中,第一位在這個段中的值為2的8-1次方,為128,第二位為2的8-2次方,為64,依此類推。。。,在此,假設其位數用n表示,則:
掩碼=2^(8-1)+2^(8-2)+2^(8-3)....+2^(8-n) n=1至8
掩碼長度=24+n
子網個數=2^(n)
子網長度=256/子網個數 (或這樣計算) 子網長度=256-掩碼
[子網長度,即每個子網的總IP數,其中包括有效主機數,子網網路號與子網廣播地址]
子網主機數=子網長度-2
一般情況下,是告訴你掩碼,則可知其它五項,如掩碼為248,則:
子網長度=256-248=8 子網主機數=8-2=6
子網個數=256/子網長度=256/8=32
子網個數=2^(n)=32 則===>>n=5
掩碼長度=24+5=29
如果告訴你掩碼長度,如192.168.100.35/27,則:
n=27-24=3,知道了n,套用上面的公式,就都出來了,在此就不累述。
上面的方法是針對於“可變長子網掩碼(VLSM)”的劃分方法,下面就講講它的對立,不是子網,而是子網聚合成的超網(又名CIDR)的操作方法。
二、子網聚合(超網)(在路由表中叫路由聚合或路由彙總)
子網聚和與子網劃分的操作與意圖正好相反。
例:將下面五個子網聚和成一個超網
192.168.11.0/27
192.168.12.0/27
192.168.14.0/27
192.168.14.32/27
192.168.14.64/27
前面兩位暫且不談,且看後兩位,因為後兩位都各不相同,找出其相同處,就可以了將之聚合成一超網了,當然,如果你覺得不必這麼麻煩,直接將之聚合成192.168.0.0/16,理論上是可行,但如果增加了一個子網192.168.0.0/18,當路由器存在此網路的路由表項時,會將它也聚合進去,造成路由混亂,所以,儘量找到它的最小合集,方能找到最小的超網。
方法其實只有一個,就是將不同的用二進位制展開,上下對應,找出相同位置處的數字,若數字相同,則將超網的相同位上置與其位上相同的數字,即如果全為0,則置0,全為1,則置為1;如相同位置處的數字有不同,則在超網的相應位上為0。如下所示:
00001011 00000000 ==>11.0
00001100 00000000 ==>12.0
00001110 00000000 ==>14.0
00001110 00100000 ==>14.32
00001110 01000000 ==>14.64
----------------------------------------------------
00001000 00000000 ==> 8.0 且前面5位是相同的,所以,掩碼長度為16+5=21
故此超網為:192.168.8.0/21
三、按要求劃分子網
例:一公司要從母公司中抽調出254個員工去組建一家新的分公司,此分公司的網路還在籌劃中,假若你就是此公司的網路工程師,你深知,由於技術與業務上的分工合作,此分公司得用192.168.16.0/22之內的IP給這些主機分配IP地址,如果能節省IP(即不向網路位借2位做主機位,而是隻借1位做主機位,這樣的話,路由器更能精確地找到這些網路段,也能節省更多的IP地址)。經瞭解,公司人員分佈狀況如下:
市場部:86 (38)人
技術部:61 (2)人
工程部:50 (10)人
客服部:30 (13)人
研發部:21 (5)人
售後部:6 (3)人
其中,()裡頭的數字表示今後最多會增加的人數。且因為安全性問題,所以,各個部門不能相互訪問。
故在建此網路之前,應根據要求劃分好子網路。
解:實際人數=254,剛好是一個C類網路的主機數,如果不是因為今後還會增加人員,正好就用一個網段來處理,然而要求裡指明各部門不能互訪,所以就算不增加人員,也是不行的。
實驗人數:254人
將來最多人數:254+71=325人
又因為所設的IP地址為192.168.16.0/22網段內的地址,而325>254且325<2*254,所以,我們可以用兩個子網網段長度為254的C類網聚合成的超網來給這個分公司的各部門分配網段。這裡,又回來了本篇的第一部分。
所以,兩個C類網合併成超網,也就是192.168.16.0/23這個網段。為了便於閱讀,我把上面的那圖貼下來一份,如下所示:
根據此圖中的“子網主機數”,我們幾乎可以直接將各部門的子網段寫出來:
市場部:62<86+38=124<126 ==>192.168.16.0/25
技術部:62<61+2 =63<126 ==>192.168.16.0/25
工程部:30<50+10=60<62 ==>192.168.16.0/26
客服部:30<30+13=43<62 ==>192.168.16.0/26
研發部:14<21+5=26<30 ==>192.168.16.0/27
售後部:6<6+3=9<14 ==>192.168.16.0/28
其實,
用下面的圖更能直觀的表示各部門網段所處的位置,如下所示:
由上圖我們可以清楚地看到,假如還要增加2個部門,每個部門“未來最多人數”均為31人(30<31<62),則還得增加兩個子網192.168.16.0/26,儘管總人數為325+62=387<2*254=508,但是如上圖我們可以很容易看出,用192.168.16.0/23是無法滿足這個公司的子網劃分的,因為在這個網路中,只能增加一個掩碼長度為26的網段。所以針對於這種情況,我們在選用網段前,是要計算一下的,在這裡,我提出一個由本人自己定義的演算法公式,用這個公式你就能大概算出你要向前借幾位了。 計算方法如下: 25(1/2) + 25(1/2)==24 {為方便,也可以這樣簡寫:25+25==24} 注意不是等於“=” 公式解釋:掩碼長度為25,說明對於掩碼長度為24的網路來說,可以劃分為兩個子網,一個為0子網(如192.168.0.0/25),另一個為1子網(如192.168.0.128/25),如下圖打了標記的地方: 所以,本例中,如果增加了2個部門,咱們就來算一算,到底能不能用192.168.16.0/23來劃分。如下:市場部:==>192.168.16.0/25
技術部:==>192.168.16.0/25
工程部:==>192.168.16.0/26
客服部:==>192.168.16.0/26
研發部:==>192.168.16.0/27
售後部:==>192.168.16.0/28
增加部1:==>192.168.16.0/26
增加部2:==>192.168.16.0/26
25+25==24
26+26==25
27+28==26--28
26+26==25
總合:N= 24+25+25+26--28==24+24+26--28==23+26--28 注意不是指“總和”。
由 N 值可知,掩碼長度為23的這個網路不足以放下所有的網段,應該再向前借一位,所以,N應該取22,即192.168.16.0/22為增加兩個部門後應選用的網段。
好了,關於子網劃分與子網聚合就研究到此。