正文
實際工作中用到網絡知識的機會并不多,雖然以前學習過,但是許久不用自然也就生疏了。最近拿到幾台雲上的虛拟機,需要為它們建立一個VPC(虛拟私有雲,就是一個虛拟的區域網路),得益于虛拟化技術,作為使用者,我們省去了絕大多數的網路配置和調試工作,唯一需要我們親自操刀主持的就是對網絡的劃分了。劃分網絡需要清楚三個基本概念:IP位址、子網路遮罩和位址分類,是這三個要素一起決定了整個IP位址空間的劃分。關于這些可以參考文章最後附上的資料,本文正文是從三者之間的關聯關系上思考對一個網絡進行劃分需要解決什麼問題。本文原文出處: http://blog.csdn.net/bluishglc/article/details/47909593 嚴禁任何形式的轉載,否則将委托CSDN官方維護權益!
32位的IP位址空間總計有40多億個可用IP位址,如果你是網際網路建立之初的設計者,你會怎麼配置設定這些IP?你可能會說一個一個地分吧,請求一個給一個。這不失為是一個方案,但是面對這麼多的IP位址,這種“扁平”的管理方式真的有效嗎?如果是給一個組織甚至國家批量配置設定P呢?就像是在一個檔案夾下管理40多億個檔案一樣,這種處理方式真的明智嗎?顯然,當時的設計者并沒有采取這種簡單直白的做法,而是像我們管理大多數資訊一樣對資訊進行了“分門别類”,同樣是40多億個檔案,如果按照某種規則或特征把它們分散放置到多個檔案夾或子檔案夾下一定會極大地友善管理。
于是問題來了:怎麼分?
如果把IP位址看作是一個家庭住址,那麼在家庭住址中自然有省、市、街道、小區這樣的層級劃分,逐級縮小範圍後定位到一個門牌号上。如果我們給省、市、街道都編好号,再和門牌号拼在一起,我們得到的這樣一長串數字就可以唯一地辨別一個家庭住址,同樣,IP位址有32位的長度,如此之長的一個編碼,為什麼不可以取出前幾位作為一個“區域”的位址,把剩餘的幾位作為它在這個區域下的”相對“位址呢?這樣一個IP位址就可以視作兩部分,前面是它的“區域“位址,後面是它在這個”區域“内的”相對“位址,是的,這正是子網路遮罩所要解決的問題,按照規範的叫法,通過子網路遮罩辨別出的所謂的“區域“位址就網絡位址,也叫網絡辨別,網絡ID或子網位址,而所謂的“相對“位址就主機位址。
這樣看上去好了很多,但是不知道你有沒有敏銳地察覺到子網路遮罩對IP位址的劃分與我們舉例的家庭住址的劃分有一個明顯的不同,那就是前者隻能劃分兩級:網絡位址和主機位址,而後者則是多級劃分。子網路遮罩隻能實作兩級劃分帶來了一個問題,那就是同樣一個IP:67.101.121.131,它的子網路遮罩有可能是255.0.0.0,也可能是255.255.0.0,也可能是别的什麼值,于是,對于一個給定的IP,特别是公網的IP,在不知道子網路遮罩的時候會導緻對該IP有多種不同的解讀,就像上面的例子,67.101.121.131可能是子網67.0.0.0下的一個主機,也可能是子網67.101下的一個主機,很顯然,這種歧義性導緻這個IP還是不可用,是的,我們還是漏了點什麼,讓這套描述機制暫時無法工作,我們需要找到問題的原因并堵上這個窟窿。
這最後一個需要解決漏洞可以描述為:由于子網路遮罩隻具有”兩級“(網絡位址和主機位址)劃分能力,而它的切分粒度又可變(即如果切出的子網少,則子網可以容納的機器數量就多,如果子網多,則可以容納的機器數量就小)這種不确定的劃分方式必然會導緻IP含義的不确定性,是以要解決這個問題就必須要規定好:以哪些值為開頭的IP它的子網路遮罩預設是255.0.0.0,以哪些值為開頭的IP它的子網路遮罩預設是255.255.0.0,以此類推。這實際上就是IP位址分類。
補上位址分類的概念之後,我們再來重新比較一個IP位址空間的劃分與我們舉例使用的家庭住址這類具有典型層級關系的資訊劃分之間有什麼不同。如前面所述,最大的不同在于IP位址空間隻能劃分兩個層級,為了能夠适應不同規模(粒度)的IP配置設定要求,IP位址空間必需要劃分出多種不同規模(粒度)的子空間,并且規定好哪些是大規模(粒度)的子空間,哪些是小規模(粒度)的子空間。然後,再結合IP位址和子網路遮罩就可以準确地定位了。可以說IP位址、子網路遮罩和位址分類這三個要素一起實作了對IP位址空間的劃分與尋址,三者任何一個元素的缺失都會帶來邏輯上的漏洞。
最後一個問題:同樣的,在一個區域網路裡,理論上我們也有需要切分出大小不等的子網的需求,這也需要對IP位址進行分類,比如在10.0.0.0/8的網路裡劃分10.0.0.0/16 ~ 10.127.0.0/16和10.128.0.0/24 ~10.191.255.0/24 等等 至于是否可行以及如何操作待有機會和網絡管理者請教一下。
最後,附上一個非常好用的網絡電腦:http://www.123cha.com/cidr/
參考資料
子網路遮罩
子網路遮罩是用來指明一個IP位址的哪幾位辨別的是主機所在的子網(也叫網絡辨別),以及哪些位辨別的是主機在網絡中的位址。子網路遮罩不能單獨存在,它必須結合IP位址一起使用。
但是如果隻有子網路遮罩, 我們可以判斷出的資訊是:它能表示多個子網,以及每個子網下能有多少個主機!
子網路遮罩通常有以下2種格式的表示方法:
1. 通過與IP位址格式相同的點分十進制表示
如:255.0.0.0 或255.255.255.128
2. 在IP位址後加上”/”符号以及1-32的數字,其中1-32的數字表示子網路遮罩中網絡辨別位的長度
如:192.168.1.1/24 的子網路遮罩也可以表示為255.255.255.0
IP位址分類
在一個區域網路裡,我們完全可以按照自己的意願和需要來切分網絡位址,同樣也是定義3要素,
位址分類,子網路遮罩和IP位址。
IP預設配置設定的子網路遮罩每段隻有255或0
A類的預設子網路遮罩 255.0.0.0 一個子網最多可以容納1677萬多台電腦, A類位址的表示範圍為:0.0.0.0~126.255.255.255
B類的預設子網路遮罩 255.255.0.0 一個子網最多可以容納6萬台電腦,B類位址的表示範圍為:128.0.0.0~223.255.255.255
C類的預設子網路遮罩 255.255.255.0 一個子網最多可以容納254台電腦,C類位址的表示範圍為:192.0.0.0.~223.255.255.255
保留位址
在IP位址中專門保留了三個區域作為私有位址,其位址範圍如下:
類型 | 網絡位址 | 網絡數 |
---|---|---|
A | 10.0.0.0/8 (10.x.x.x) | 1 |
B | 172.16.0.0/12 (172.16.x.x ~ 172.31.x.x) | 16 |
C | 192.168.0.0、16 (192.168.x.x ~ 192.168.x.x) | 256 |