1. 程式人生 > >子網劃分和子網掩碼詳解

子網劃分和子網掩碼詳解

一、為什麼要劃分子網 
在20世紀70年代初期,建立Internet的工程師們並未意識到計算機和通訊在未來的迅猛發展。區域網和個人電腦的發明對未來的網路產生了巨大的衝擊。開發者們依據他們當時的環境,並根據那時對網路的理解建立了邏輯地址分配策略。他們知道要有一個邏輯地址管理策略,並認為32位的地址已足夠使用。為了給不同規模的網路提供必要的靈活性,IP地址的設計者將IP地址空間劃分為五個不同的地址類別,如下表所示,其中A,B,C三類最為常用。 
從當時的情況來看,32位的地址空間確實足夠大,能夠提供232(4,294,967,296,約為43億)個獨立的地址。這樣的地址空間在因特網早期看來幾乎是無限的,於是便將IP地址根據申請而按類別分配給某個組織或公司,而很少考慮是否真的需要這麼多個地址空間,沒有考慮到IPv4地址空間最終會被用盡。但是在實際網路規劃中,它們並不利於有效地分配有限的地址空間。對於A、B類地址,很少有這麼大規模的公司能夠使用,而C類地址所容納的主機數又相對太少。所以有類別的IP地址並不利於有效地分配有限的地址空間網路規劃。 
二、如何劃分子網 
為了提高IP地址的使用效率,引入了子網的概念。將一個網路劃分為子網:採用借位的方式,從主機位最高位開始借位變為新的子網位,所剩餘的部分則仍為主機位。這使得IP地址的結構分為三級地址結構:網路位、子網位和主機位。這種層次結構便於IP地址分配和管理。它的使用關鍵在於選擇合適的層次結構--如何既能適應各種現實的物理網路規模,又能充分地利用IP地址空間(即:從何處分隔子網號和主機號)。 
三、子網掩碼的作用 
簡單地來說,掩碼用於說明子網域在一個IP地址中的位置。子網掩碼主要用於說明如何進行子網的劃分。掩碼是由32位組成的,很像IP地址。對於三類IP地址來說,有一些自然的或預設的固定掩碼。(參考P189) 
四、如何來確定子網地址 
如果此時有一個I P地址和子網掩碼,就能夠確定裝置所在的子網。子網掩碼和IP地址一樣長,用32bit 組成,其中的1表示在IP地址中對應的網路號和子網號對應位元,0表示在IP地址中的主機號對應的位元。將子網掩碼與IP地址逐位相“與”,得全0部分為主機號,前面非0部分為網路號。參考(P190表7-5) 
要劃分子網就需要計運算元網掩碼和分配相應的主機塊,儘管採用二進位制計算可以得出結論,但採用十進位制計算方法看起來要比二進位制方法簡單許多,經過一番觀察和總結,我終於得出了子網掩碼及主機塊的十進位制演算法。 
首先要明確一些概念: 
類範圍:IP地址常採用點分十進位制表示方法X.Y.Y.Y,在這裡 
X=1--126時稱為A類地址; 
X=128--191時稱為B類地址; 
X=192--223時稱為C類地址; 
如10.202.52.130因為X=10在1--126範圍內所以稱為A類地址 
類預設子網掩碼:A類為 255.0.0.0 
B類為 255.255.0.0 
C類為 255.255.255.0 
當我們要劃分子網用到子網掩碼M時,類子網掩碼的格式應為 
A類為 255.M.0.0 
B類為 255.255.M.0 
C類為 255.255.255.M 
M是相應的子網掩碼如:255.255.255.240 

十進位制計算基數:256,等一下我們所有的十進位制計算都要用256來進行。 
幾個公式變數的說明: 
Subnet_block:可分配子網塊大小,指在某一子網掩碼下的子網的塊數。 
Subnet_num:實際可分配子網數,指可分配子網塊中要剔除首、尾兩塊,這是某一子網掩碼下可分配的實際子網數量,它等於Subnet_block-2。 
IP_block:每個子網可分配的IP地址塊大小。 
IP_num:每個子網實際可分配的IP地址數,因為每個子網的首、尾IP地址必須保留(一個為網路地址,一個為廣播地址),所以它等於IP_block-2,IP_num也用於計算主機段 
M:子網掩碼(net mask)。 
它們之間的公式如下: 
M=256-IP_block 
IP_block=256/Subnet_block,反之Subnet_block=256/IP_block 
IP_num=IP_block-2 
Subnet_num=Subnet_block-2 

2的冥數:要熟練掌握2^8(256)以內的2的冥代表的十進位制數,如128=2^7、64=2^6…,這可使我們立即推算出Subnet_block和IP_block數。 
現在我們舉一些例子: 
一、 已知所需子網數12,求實際子網數 
解:這裡實際子網數指Subnet_num,由於12最接近2的冥為16(2^4),即 Subnet_block=16,那麼Subnet_num=16-2=14,故實際子網數為14。 
二、 已知一個B類子網每個子網主機數要達到60x255(約相當於X.Y.0.1--X.Y.59.254的數量)個,求子網掩碼。 
解:1、60接近2的冥為64(2^6),即,IP_block=64 
2、子網掩碼M=256-IP_block 
=256-64=192 
3、子網掩碼格式B類是:255.255.M.0. 
所以子網掩碼為:255.255.192.0 
三、 如果所需子網數為7,求子網掩碼 
解:1、7最接近2的冥為8,但8個Subnet_block因為要保留首、尾2個子網塊,即 8-2=6<7,並不能達到所需子網數,所以應取2的冥為16,即Subnet_block=16 
2、IP_block=256/Subnet_block=256/16=16 
3、子網掩碼M=256-IP_block=256-16=240。 
四、 已知網路地址為211.134.12.0,要有4個子網,求子網掩碼及主機段。 
解:1、211.y.y.y是一個C類網,子網掩碼格式為255.255.255.M 
2、4個子網,4接近2的冥是8(2^3),所以Subnet_block=8 
Subnet_num=8-2=6 
3、IP_block=256/Subnet_block=256/8=32 
4、子網掩碼M=256-IP_block=256-32=224 
5、所以子網掩碼錶示為255.255.255.224 
6、因為子網塊(Subnet_block)的首、尾兩塊不能使用,所以可分配6個子網塊(Subnet_num),每塊32個可分配主機塊(IP_block) 
即:32-63、64-95、96-127、128-159、160-191、192-223 
首塊(0-31)和尾塊(224-255)不能使用 
7、每個子網塊中的可分配主機塊又有首、尾兩個不能使用(一個是子網網路地址,一個 是子網廣播地址),所以主機段分別為: 
33-62、65-94、97-126、129-158、161-190、193-222 
8、所以子網掩碼為255.255.255.224 
主機段共6段為:211.134.12.33--211.134.12.62 
211.134.12.65--211.134.12.94 
211.134.12.97--211.134.12.126 
211.134.12.129--211.134.12.158 
211.134.12.161--211.134.12.190 
211.134.12.193--211.134.12.222 
可以任選其中的4段作為4個子網。 
總之,只要理解了公式中的邏輯關係,就能很快計算出子網掩碼,從而得出可分配的主機段,參加MCSE和CCNA考試的時候使用這種方法可以順利地通過相關試題的考試,而不用象記9×9乘法口訣表一樣去背什麼二進位制掩碼錶了。 
實驗目的  
1.掌握子網劃分的方法和子網掩碼的設定 
2.理解IP協議與MAC地址的關係 
3.熟悉ARP命令的使用:arp [–d], [-a] 
實驗步驟: 
實驗1: 
1) 兩人一組,設定兩臺主機的IP地址與子網掩碼: 
A: 10.2.2.2    255.255.254.0 
B: 10.2.3.3    255.255.254.0 
2)兩臺主機均不設定預設閘道器。 
3)用arp -d命令清除兩臺主機上的ARP表,然後在A與B上分別用ping命令與對方通訊,觀察並記錄結果,並分析原因。 
4)在兩臺PC上分別執行arp -a命令,觀察並記錄結果,並分析原因。 
提示:由於主機將各自通訊目標的IP地址與自己的子網掩碼相"與"後,發現目標主機與自己均位於同一網段(10.2.2.0),因此通過ARP協議獲得對方的MAC地址,從而實現在同一網段內網路裝置間的雙向通訊。 
實驗2. 
1)將A的子網掩碼改為:255.255.255.0,其他設定保持不變。 
2)在兩臺PC上分別執行arp -d命令清除兩臺主機上的ARP表。然後在A上"ping"B,觀察並記錄結果。 
3)在兩臺PC上分別執行 arp -a命令,觀察並記錄結果,並分析原因。 
提示:A將目標裝置的IP地址(10.2.3.3)和自己的子網掩碼(255.255.255.0)相"與"得10.2.3.0,和自己不在同一網段(A所在網段為:10.2.2.0),則A必須將該IP分組首先發向預設閘道器。 
實驗3 
1)按照實驗2 的配置,接著在B上"ping"A,觀察並記錄結果,並分析原因。 
2)在B 上執行arp -a命令,觀察並記錄結果,並分析原因。 
提示:B將目標裝置的IP地址(10.2.2.2)和自己的子網掩碼(255.255.254.0)相"與",發現目標主機與自己均位於同一網段(10.2.2.0),因此,B通過ARP協議獲得A的MAC地址,並可以正確地向A傳送Echo Request報文。但由於A不能向B正確地發回Echo Reply報文,故B上顯示ping的結果為"請求超時"。 
在該實驗操作中,通過觀察A與B的ARP表的變化,可以驗證:在一次ARP的請求與響應過程中,通訊雙方就可以獲知對方的MAC地址與IP地址的對應關係,並儲存在各自的ARP表中。 
實驗報告 
1.分別敘述各實驗的記錄結果並分析其原因。 
2.請參考(p190表7-5)畫出C類地址的子網劃分選擇表。 
3.在B類網路中,能使用掩碼255.255.255.139嗎?為什麼? 
4.說出地址和子網掩碼的不同? 
舉例說明該演算法。 
例:給定一 class c address : 192.168.5.0 ,要求劃分20個子網,每個子網5 
個主機。 
解:因為4 <5 < 8 ,用256-8=248 ――>即是所求的子網掩碼,對應的子網數 
也就出來了。這是針對C類地址。老師也只講了針對C類地址的做法。下面是我自 
己推出來的針對B類地址的做法。 
對於B類地址,假如主機數小於或等於254,與C類地址演算法相同。 
對於主機數大於254的,如需主機 700臺,50個子網(相當大了), 
 512 < 700< 1024  
256-(1024/256)=256-4=252 ――>即是所求的子網掩碼,對應的子網數也就 
出來了。 
上面256-4中的4(2的2次冪)是指主機數用2進製表示時超過8位的位數,即超過 
2位,掩碼為剩餘的前6位,即子網數為2(6)-2=62個。