子網掩碼快速算法及可變長掩碼(vlsm)

所有資料均從網絡上摘抄彙總,有耐心看下去就能明白,CIDR部分看起來比較費勁 [sweat]

如果你希望每個子網中只有5個ip地址可以給機器用,那麼你就最少需要準備給每個子網7個ip地址,因爲需要加上兩頭的不可用的網絡和廣播ip,所以你需要選比7多的最近的那位,也就是8,爲什麼比7多的是8,不是9,10或者其它的呢?這是因爲只能選擇2的N次方,也就是0,2,4,8,16,32,64,128這幾個數,就是說選每個子網8個ip。好,到這一步,你就可以算掩碼了,這個方法就是:最後一位掩碼就是256減去你每個子網所需要的ip地址的數量,那麼這個例子就是256-8=248,那麼算出這個,你就可以知道那些ip是不能用的了,看:0-7,8-15,16-23,24-31依此類推,寫在上面的0、7、8、15、16、23、24、31(依此類推)都是不能用的,你應該用某兩個數字之間的IP,那個就是一個子網可用的IP。
再拿200臺機器分成4個子網來做例子吧。200臺機器,4個子網,那麼就是每個子網50臺機器,設定爲192.168.10.0,C類的IP,大子網掩碼應爲255.255.255.0,對巴,但是我們要分子網,所以按照上面的,我們用32個IP一個子網內不夠,應該每個子網用64個IP(其中62位可用,足夠了吧),然後用我的辦法:子網掩碼應該是256-64=192,那麼總的子網掩碼應該爲:255.255.255.192。不相信?算算:0-63,64-127,128-191,192-255,這樣你就可以把四個區域分別設定到四個子網的機器上了。

(256-掩碼)就是分段後每段中的ip數,再計算已知IP在哪個段就可以了。其中段裏面的IP第一個IP是網絡地址,最後一個是廣播地址。
比如100.100.100.100 255.255.255.240這個ip的網絡號和廣播地址,以及這個段中的其它地址的計算方法如下:
256-240=16,說明分成了幾個段以後,每段中的IP地址數量是16個,其中第一個是網絡號,最後一個是廣播地址
100/16=6.x
說明100在16x6和16x7之間
16x6=96,16x7=112
說明100所在的段中第一個地址是96,最後一個是111
那就是100.100.100.100 255.255.255.240這個ip所在的網段的網絡地址是100.100.100.96,廣播地址是100.100.100.111
可用的IP是100.100.100.97到100.100.100.110

如果是一個無類地址172.38.3.40/25的話
25是255.255.255.128
256-128=128,每段128個,分別是0-127,128-255
40是屬於第一段,所以網絡位是172.38.3.0,廣播是172.38.3.127,ip範圍是172.38.3.1-172.38.3.126。
172.38.3.40/25是一個ip地址,該地址的網絡地址是172.38.3.0,廣播地址是172.38.3.127,該IP地址所在的段包含的地址範圍是172.38.3.1-172.38.3.126,它是B類的,默認是16位的掩碼,這裏是25位,說明變長子網掩碼,它被分爲兩段,172.138.3.0到172.38.3.127網絡號爲172.168.3.0,還有一段是172.38.3.128到172.38.3.255網絡號爲172.168.3.128,你的IP爲172.38.3.40,屬於172.38.3.0/127這一段的,所以網絡號爲172.168.3.0

155.46.16.88/27
子網掩碼:255.255.255.224
256-224=32
所以分爲這些段:0~32 33~65 66~98 99~131 132~164 165~197 198~230
每段的開頭是網絡地址
每段的結尾是廣播地址

附:
A類 0-127 0 8位 24位
B類 128-191 10 16位 16位
C類 192-223 110 24位 8位
D類 224-239 1110 組播地址
E類 240-255 1111 保留試驗使用

更詳細的說明:
劃分子網

  爲了提高IP地址的使用效率,可將一個網絡劃分爲子網:採用借位的方式,從主機位最高位開始借位變爲新的子網位,所剩餘的部分則仍爲主機位。這使得IP地址的結構分爲三部分:網絡位、子網位和主機位。

  引入子網概念後,網絡位加上子網位才能全局唯一地標識一個網絡。把所有的網絡位用1來標識,主機位用0來標識,就得到了子網掩碼。如下圖所示的子網掩碼轉換爲十進制之後爲:255.255.255.224

  子網編址使得IP地址具有一定的內部層次結構,這種層次結構便於IP地址分配和管理。
  它的使用關鍵在於選擇合適的層次結構--如何既能適應各種現實的物理網絡規模,又能充分地利用IP地址空間(即:從何處分隔子網號和主機號)。
在思科網絡技術學院CCNA教學和考試當中,不少同學在進行IP地址規劃時總是很頭疼子網和掩碼的計算。現在給大家一個小竅門,可以順利的解決這個問題。

首先,我們看一個CCNA考試中常見的題型:一個主機的IP地址是202.112.14.137,掩碼是255.255.255.224,要求計算這個主機所在網絡的網絡地址和廣播地址。

  常規辦法是把這個主機地址和子網掩碼都換算成二進制數,兩者進行邏輯與運算後即可得到網絡地址。其實大家只要仔細想想,可以得到另一個方法:255.255.255.224的掩碼所容納的IP地址有256-224=32個(包括網絡地址和廣播地址),那麼具有這種掩碼的網絡地址一定是32的倍數。而網絡地址是子網IP地址的開始,廣播地址是結束,可使用的主機地址在這個範圍內,因此略小於137而又是32的倍數的只有128,所以得出網絡地址是202.112.14.128。而廣播地址就是下一個網絡的網絡地址減1。而下一個32的倍數是160,因此可以得到廣播地址爲202.112.14.159。

  CCNA考試中,還有一種題型,要你根據每個網絡的主機數量進行子網地址的規劃和計算子網掩碼。這也可按上述原則進行計算。比如一個子網有10臺主機,那麼對於這個子網就需要10+1+1+1=13個IP地址。(注意加的第一個1是指這個網絡連接時所需的網關地址,接着的兩個1分別是指網絡地址和廣播地址。)13小於16(16等於2的4次方),所以主機位爲4位。而256-16=240,所以該子網掩碼爲255.255.255.240。

  如果一個子網有14臺主機,不少同學常犯的錯誤是:依然分配具有16個地址空間的子網,而忘記了給網關分配地址。這樣就錯誤了,因爲14+1+1+1=17 ,大於16,所以我們只能分配具有32個地址(32等於2的5次方)空間的子網。這時子網掩碼爲:255.255.255.224。

無類的內部域路由(CIDR)
  子網掩碼 CIDR值
  255.0.0.0 /8
  255.127.0.0 /9
  255.192.0.0 /10
  255.224.0.0 /11
  255.240.0.0 /12
  255.248.0.0 /13
  255.252.0.0 /14
  255.254.0.0 /15
  255.255.0.0 /16
  255.255.128.0 /17
  255.255.192.0 /18
  255.255.224.0 /19
  255.255.240.0 /20
  255.255.248.0 /21
  255.255.252.0 /22
  255.255.254.0 /23
  255.255.255.0 /24
  255.255.255.128 /25
  255.255.255.192 /26
  255.255.255.224 /27
  255.255.255.240 /28
  255.255.255.248 /29
  255.255.255.252 /30

C類地址的子網劃分
  在一個C類地址中,只有八位是可以用來定義主機的。記住,子網位必須是由左到右進行定義的,這中間,不能跳過某些位。也就是說,C類子網掩碼只能是:
  二進制 十進制 速記
  10000000 128 /25
  11000000 192 /26
  11100000 224 /27
  11110000 240 /28
  11111000 248 /29
  11111100 252 /30
  11111110 254 /31(無效)

使用可變長掩碼(Variable Length Subnet Mask,VLSM)就是指一個網絡可以用不同的掩碼進行配置。這樣做的目的是爲了使把一個網絡劃分成多個子網更加方便。在沒有VLSM的情況下,一個網絡只能使用一種子網掩碼,這就限制了在給定的子網數目條件下主機的數目。例如你被分配了一個C類地址,網絡號爲192.168.10.0,而你現在需要將其劃分爲三個子網,其中一個子網有100臺主機,其餘的兩個子網有50臺主機。我們知道一個C類地址有254個可用地址,那麼你如何選擇子網掩碼呢?從上表中我們發現,當我們在所有子網中都使用一個子網掩碼時這一問題是無法解決的。此時VLSM就派上了用場,我們可以在100個主機的子網使用255.255.255.128這一掩碼,它可以使用192.168.10.0到192.168.10.127這128個IP地址,其中可用主機號爲126個。我們再把剩下的192.168.10.128到192.168.10.255這128個IP地址分成兩個子網,子網掩碼爲255.255.255.192。其中一個子網的地址從192.168.10.128到192.168.10.191,另一子網的地址從192.168.10.192到192.168.10.255。子網掩碼爲255.255.255.192每個子網的可用主機地址都爲62個,這樣就達到了要求。可以看出合理使用子網掩碼,可以使IP地址更加便於管理和控制。

某公司有兩個主要部門:市場部和技術部。技術部又分爲硬件部和軟件部兩個部門。該公司申請到了一個完整的C類IP地址段:210.31.233.0,子網掩碼255.255.255.0。爲了便於分級管理,該公司採用了VLSM技術,將原主網絡劃分稱爲兩級子網(未考慮全0和全1子網)。
市場部分得了一級子網中的第1個子網,即210.31.233.64,子網掩碼255.255.255.192,該一級子網共有62個IP地址可供分配。
技術部將所分得的一級子網中的第2個子網210.31.233.128,子網掩碼255.255.255.192又進一步劃分成了兩個二級子網。其中第1個二級子網210.31.233.128,子網掩碼255.255.255.224劃分給技術部的下屬分部-硬件部,該二級子網共有30個IP地址可供分配。技術部的下屬分部-軟件部分得了第2個二級子網210.31.233.160,子網掩碼255.255.255.224,該二級子網共有30個IP地址可供分配。
在實際工程實踐中,可以進一步將網絡劃分成三級或者更多級子網。同時,可以考慮使用全0和全1子網以節省網絡地址空間。

簡單的說,可變長無非就是借位。而借位的基礎是在A,B,C三類的基礎上而來的。
打一個最簡單的比方。172.16.0.0/16的網絡公司要劃分六個子網,首先算出要借幾位才能得到六個子網。借一位就是2的1次方,借2位就是2的2次方,依次來推,借六個子網只有2的3次方=8能得到自己所需的六個子網在NA裏面不能同時爲0或爲1所以要減2就是2的3次方減2=6。
然後在寫出子網掩碼。因爲/16是B類網絡掩碼是255.255.0.0/16借了3位就應該是255.255.224.0/19
寫二進制清楚點就是:11111111.11111111.00000000.00000000/16
11111111.11111111.11100000.00000000/19
要算多少個主機的話就看後面有多少個0這裏是32-19=13這裏的主機就是有2的13次方-2得到有多少主機地址。
接着在來算有哪些合法的子網。用256減去借位得來的224就是256-224=32這也叫分段的基數。32也就是第一個子網了。第二個子網就是32+32=64,第三個就是64+32=96依次算六個出來就OK了。
那麼172.16.32.0/19就是第一個網段了。172.16.64.0/19就是第二個了。
第一個網段內的第一個主機就是172.16.32.1;最後一個主機就是172.16.63.254了廣播是172.16.63.255.這樣就可以得出來你所要的了。

CIDR(發音爲“cider”)
從網絡位借位給主機,和vlsm正好相反,允許一組ip網絡對其他的路由器看來好象爲一個實體,只有 網絡位 和 主機位 來區別不同的IP 不考慮 分類(A,B,C,D,E),ISP常用這樣的方法給客戶分配地址,ISP提供給客戶1個塊,類似192.168.10.32/28
無類域間路由(Classless Inter-Domain Routing,CIDR)在RFC 1517~RFC 1520中都有描述。提出CIDR的初衷是爲了解決IP地址空間即將耗盡(特別是B類地址)的問題。CIDR並不使用傳統的有類網絡地址的概念,即不再區分A、B、C類網絡地址。在分配IP地址段時也不再按照有類網絡地址的類別進行分配,而是將IP網絡地址空間看成是一個整體,並劃分成連續的地址塊。然後,採用分塊的方法進行分配。

在CIDR技術中,常使用子網掩碼中表示網絡號二進制位的長度來區分一個網絡地址塊的大小,稱爲CIDR前綴。如IP地址210.31.233.1,子網掩碼255.255.255.0可表示成210.31.233.1/24;IP地址166.133.67.98,子網掩碼255.255.0.0可表示成166.133.67.98/16;IP地址192.168.0.1,子網掩碼255.255.255.240可表示成192.168.0.1/28等。

CIDR可以用來做IP地址彙總(或稱超網,Super netting)。在未作地址彙總之前,路由器需要對外聲明所有的內部網絡IP地址空間段。這將導致Internet核心路由器中的路由條目非常龐大(接近10萬條)。採用CIDR地址彙總後,可以將連續的地址空間塊總結成一條路由條目。路由器不再需要對外聲明內部網絡的所有IP地址空間段。這樣,就大大減小了路由表中路由條目的數量。

例如,某公司申請到了1個網絡地址塊(共8個C類網絡地址):210.31.224.0/24-210.31.231.0/24,爲了對這8個C類網絡地址塊進行彙總,採用了新的子網掩碼255.255.248.0,CIDR前綴爲/21。如圖2所示。

可以看出,CIDR實際上是借用部分網絡號充當主機號的方法。在圖2中,因爲8個C類地址網絡號的前21位完全相同,變化的只是最後3位網絡號。因此,可以將網絡號的後3位看成是主機號,選擇新的子網掩碼爲255.255.248.0 (1111,1000),將這8個C類網絡地址彙總成爲210.31.224.0/21。

利用CIDR實現地址彙總有兩個基本條件:

待彙總地址的網絡號擁有相同的高位。如圖2-2-8中8個待彙總的網絡地址的第3個位域的前5位完全相等,均爲11100。待彙總的網絡地址數目必須是2n,如2個、4個、8個、16個等等。否則,可能會導致路由黑洞(彙總後的網絡可能包含實際中並不存在的子網)。

CIDR作用用於幫助減緩IP地址耗盡和路由表增大問題的一項技術。CIDR的理念是多個C類地址塊可以被組合或聚合在一起以生成更大的無類別IP地址集。這些多個C類地址可以在路由表中被歸納,從而減少了路由通告。
CIDR舉例從192.168.8.0/24到192.168.15.0/24的C類網絡地址被使用,並且被通告到ISP的路由器。當ISP路由器向外界通告路由時,它能夠將這些C類網絡的路由歸納爲一條路由而不必分別通告這8個C類網絡。通過通告路由192.168.8.0/21,ISP路由器指明他能夠到達與地址192.168.8.0的前21比特相同的所有目的地址。
[url]http://www.pcshow.net/bbs/viewthread.php?tid=350597772[/url]
這貼有CCNP的教材,頭大頭大
uploads/200608/29_165327_cidr.jpg
評論Feed 評論Feed: [url]http://azhuan.popgo.org/feed.asp?q=comment&id=71[/url]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章