作者:一天  首發公眾號:網絡之路博客(ID:NetworkBlog

?

(1)子網掩碼

之所以出現大量地址浪費,在于早期的地址分類采用的是固定的網絡位與主機位的長度,不能靈活的規劃,所以在后面打破了這個規則,32比特的IP還是分為網絡號與主機號,但是不在采用固定的長度形式,可以根據環境需求來變化長度,那就帶來了一個問題,之前的主機與網絡設備都是通過固定分類來識別的,而現在網絡號的長度不確定,那怎么來識別呢?這個識別的功能就是子網掩碼。(打破這個規則的是CIDR與VLSM,子網掩碼為了打破固定為后,標識出實際的網絡號是多少)


子網掩碼也是采用32位的二進制表示,IP地址網絡號部分,子網掩碼設置為1,IP地址的主機部分,設置為0,簡單理解IP的網絡號有多少位,子網掩碼就有多少位取1,其余的主機號為0,然后為了方便記錄,跟IP地址形式一樣,每8位一組,以點分十進制方式表示。


舉例:202.100.1.33的子網掩碼為255.255.255.0,算出它的網絡號。

9000字加圖文

這樣就得前24位為網絡號,網絡號為202.100.1,主機號為最后一位,可用地址為1~254(其中0是網段地址,255是廣播地址排除)


9000字加圖文

你會發現,不管是Windows系統、安卓、蘋果或者Linux等系統上,只要是運行了TCP/IP協議體系的,都要求填寫子網掩碼,否則會提示錯誤。因為之前我們上面介紹過,網絡號主機號的作用,網絡號用于兩臺計算機通訊來判斷是否處于同一個網段依據,既網絡號相同,說明處于同一個網段,直接把數據包發送給目標主機,如網絡號不同,則不在一個網段,這個時候就需要交給主機填寫的默認網關處理(如果默認網關沒有,則通信失敗。),所以有了子網掩碼,就能確認網絡號的范圍,就能判斷數據包目的是否在同一個網段了,這是主機終端系統判斷的依據。


在三層設備路由尋址中,也是通過路由表存在的掩碼信息來找到數據包目的IP對應的網絡號路由條目,然后把數據包發往對應的網絡中去。


IP與子網掩碼在實際中的結合表示方法通常有兩種,一種是,十進制表示為:255.255.255.0,或者斜線表示:/24,比如192.168.1.0/24或者192.168.1.0/255.255.255.0這個都是表示192.168.1.0網段(網絡號為192.168.1,主機地址范圍1~254)


(2)VLSM(可變長子網掩碼)

上面提到的子網掩碼只是表示當前的地址的網絡號多少,用于判斷的,像之前提到的安全問題(A與B公司在一個網段),以及運營商如何把一個標準的C類網段給劃分成客戶需要的數量,這個就是VLSM實現的功能,它可以將之前的A、B、C類地址進行劃分,劃分成各種網絡場景需求的大小,這個過程也叫做子網劃分。


9000字加圖文


子網劃分是把IP地址最左邊開始的主機位,根據需求移動對應的主機位劃入網絡位,也可以叫做借位,比如一個標準的C類,是24位網絡號,8位的主機號,從最左邊開始借兩位,這樣網絡號就變成了26位,主機號就成了6位了,這樣就把一個大的網段變成多個小的網段分給多個公司或者區域,主機位變成網絡位的部分叫做子網號,這個劃分沒有什么訣竅,只能依靠多練習,下面舉例幾個來了解下劃分的技巧跟公式,然后在說說如今企業網中以及規劃中注意的地方。


舉例一公司有三個部門,每個部門終端數在50~60之間,使用網段202.100.1.0/24,為三個部門各自分配一個網段。

(1)現在已經知道的是每個部門的終端數在50~60之間,取最大值60,這個時候有一個公式計算 2n-2≥m,m=需要的終端數量,也就是2n-2≥60,只有n=6的時候,才滿足這個條件。(最基本的數學公式,實在忘記了可以用計算器。)

(2)得到對應的網絡位:32(子網掩碼255.255.255.255)-主機位(N=6)=26(255.255.255.192)

(3)開始進行劃分,把網段202.100.1.0/24的主機號,借兩位變成子網號,可以劃分出4個等同大小的子網,怎么快速得到的是4個呢?22=4,當然也可以按下面的辦法把能組合的列出來,就自然知道了。

9000字加圖文

4、通過計算出來的子網號,從小到大的順序,分配給三個部分,這里分配202.100.1.0/26,202.100.1.64/26,202.100.1.128/26,剩下的怎么計算出有多少個主機地址其實就很簡單的。


9000字加圖文

還記得上面的公式2n-2,減2的原因是有一個網絡地址,一個廣播地址,這兩個是不可用的,所以需要減去,每個劃分的子網都是一樣,可能你也發現了一個特點,如果劃分的子網越多,每個子網都需要減去2個地址,這部分的地址也是被浪費掉的,但是這也是一個無奈的選擇,相比浪費更多地址來說,這種情況還是可以接受的。另外計算出最小可用地址與最大可用地址,對于新手來說,可以跟上面一樣把二進制列出來,最小位無非是全0(網絡地址),最大位全1(廣播地址),去掉這2個地址,剩下的就是可用范圍了。


舉例二某個公司有180個人,銷售部 110人,技術部 55人,管理部門 10人 ,財務部 5人,還是采用202.100.1.0/24的網段劃分,這個跟第一個不一樣,第一個每個部門的數量一樣的,而這個則不一樣,每個部門的人數不一樣,這個時候劃分,從最大需求的人數開始。


1、按照需求數量,從地址需求大到小開始進行劃分,先計算銷售部,公式還是之前的2n-2≥m,m=需要的終端數量,也就是2n-2≥110,N=7,同樣的方法代入,計算出 技術部 N=6,管理部門 N=4,財務部門 N=3


2、各個部門的網絡位,銷售部 32-7=25位 (255.255.255.128),技術部32-6=26位(255.255.255.192),管理部門 32-4=28位(255.255.255.240),財務部門32-3=29位(255.255.255.248)


3、開始進行劃分,分配從最大的開始,7個主機位,借取一位做子網位


9000字加圖文

4、第一個子網占用了1~127的地址,雖然需求里面只需要110個,但是VLSM是沒法做到正好的,只能做到離110需求最近的,那么在劃分第二個子網的時候,需要跟第一個子網不重復。

第一個已經使用了202.100.1.0/25,還剩下202.100.1.128/25沒有劃分,第二個子網就從這個里面繼續開始劃分。(主機數已經在第一個步驟與第二個步驟計算出來了,技術部主機號需要6位


9000字加圖文

同樣的方法,第二個子網網段使用了202.100.1.128/26,還剩下202.100.1.192/26,管理部門接著劃分。


9000字加圖文

在用同樣的方法,,第三個子網網段用了202.100.1.192/28,還三個可以繼續使用,使用最小的,202.100.1.208/28,計算出財務部門。

9000字加圖文

至此,VLSM就到在這里結束了,對于新手來說,只要掌握了這個劃分的方法就行了,知道怎么去劃分,計算,這個要熟練的話就得多去練習,但是這里博主說下,這種劃分方式在我們工作中在運營商運維以及金融、政企這些網絡中對于地址的范圍以及規劃有嚴格的劃分要求,經常會用到VLSM,而常見的大部分面向中小型企業網的環境,對于地址而言就沒這么嚴格的要求了,可能更多的這種需求在面試或者是題目中會經常看到,這個在待會了解完私網地址,博主會以實際環境來介紹。


(3)CIDR(無分類域間路由或者無分類編址)

從上面兩個舉例可以看出來,VLSM是將一個大的網段劃分成多個小的子網,讓地址需求少的用戶獲取相近數量的地址,避免浪費,它的核心理念就是從主機號進行借位,變成子網號。那CIDR正好相反,來看一個例子。


例子某個公司辦公網200人,用了一個192.168.100.0/24的網段,有一個監控網絡,包含倉庫、辦公以及各個區域有500個攝像頭點位,為了方便管理,希望這500個攝像頭都在同一個網段內,這個時候該怎么處理呢?


從之前學到的內容來說,VLSM并不具備這個功能,只能將一個原有的網段劃分成多個小的子網網段,而一個標準C類/24的地址最多也就254個,如果用2個C類地址,確實可以達到500個的需求,但是不屬于同一個網段了,如果能把這2個C類地址合并到一起,變成一個網段,這樣地址夠了,又滿足了在同一個網段的需求,CIDR就是解決這樣的場景的,假設分配的網段是192.168.0.0/24,想主機位可容納500個地址。


先回顧下,一個網段的判斷是網絡號相同,主機號可變,如果要滿足500個地址,那是不是主機號2n-2≥500即可,N=9,然后用32-9=23位(255.255.254.0),相當于像網絡位借一位作為主機位使用,跟VLSM正好相反。


9000字加圖文

9000字加圖文

CIDR后,相當于最終的網段則是192.168.0.0/255.255.254.0(23),可用地址為192.168.0.1到192.168.1.254,那么這里看一個比較有趣的事情,像192.168.0.255、192.168.1.0,如果按C類標準24位掩碼,它明顯是一個網絡地址以及廣播地址,這也是很多面試或者題目里面經常會問到的,它就給你這么一個地址,問你是是不是廣播地址或者網絡地址,很多朋友就會忽略后面的子網掩碼,就直接選擇是,但是,實際上一定要看子網掩碼是多少,如果它是24位的掩碼,那確實是,但是如果是23或者22等掩碼,就不是了,通過上面就可以計算出,最小的主機位是192.168.0 0 0 0 0 0 0 0. 0 0 0 0 0 0 0 0(192.168.0.0),最大的主機為是192.168.0 0 0 0 0 0 0 1,1 1 1 1 1 1 1 1(192.168.1.255),192.168.0.255以及192.168.1.0在子網掩碼255.255.254.0中,既不是網絡地址也不是廣播地址,而是可用的地址。

9000字加圖文

CIDR有一個特別需要注意的地方,就是網絡號要保持相同,這個也好很理解,就像上面一個要求500個地址在同一個網段,同一個網段的判斷不就是網絡號相同嗎?所以在規劃的時候要注意,不能將192.168.0.0/24與192.168.2.0/24,合并成一個網段,用500個地址,因為它得到的網絡號是不一樣的,如果要將0.0與2.0在一個網段,那則必須在借位。



只有網絡號保持一樣了,才能繼續進行下一步,但是你會發現,這樣的話地址就不只500個了,包含四個組合0網段(0 0=0)1網段(0 1 =1),2網段(1 0=2),3網段(1 1=3),地址就變成了2^10-2=1022個主機地址。


9000字加圖文


CIDR還有聚合的作用,把相網絡號的網段進行合并,變成一個超網(大的網段),可以大大的減少路由器的壓力,對于數據包的轉發效率更高,這一塊在學習路由知識點的時候會涉及到,這里就提一下。


小經驗分享:

  • CIDR在實際中用的非常多,比如在一個商場的網絡部署中,每個人負責的不一樣,可能A負責網絡設備的規劃跟打通,B負責監控這塊,這時候B跑過來跟A說,監控這塊我需要500個地址或者1000個地址,規劃地址的時候多帶帶幫我劃分出來一個這樣的網段給監控用,告訴我范圍就行,這個就是上面介紹的給予一個192.168.0.0/23或者192.168.0.0/22的網段了。在無線環境也很多這樣的需求,特別流動性大的公共場所,為了地址夠用,有時候也會劃分一個大的網段,避免地址不夠的情況出現。
  • CIDR用多了你就會越來越有經驗了,比如一個/24的C類標準地址,子網掩碼借一位(往左移一位),能夠將兩個網段合并成一個大的,如果借2位(往左移動兩位),能夠將4個網段合并,借三位能夠合并八個網段,依次這樣類推,那么在實際中完全可以根據不同的場景需求,來進行規劃網段容納多少地址,來滿足客戶的需求。

?

(4)公網與私網地址

隨著IP地址的早期規劃帶來的問題,早期已經有大量的A類地址被分配出去,A類地址就占用了整個IP地址中的二分之一,又無法收回,導致只有B與C類可以分配,雖然有了VLSM以及CIDR技術的方案,但是也只能緩解IP地址枯竭的速度,于是提出了一個概念,私網地址。


之前提到過IP地址在互聯網中是有唯一標識的,這個指的是公網地址,私網地址的作用是什么呢?可以想象下,如今的一個辦公樓、一個有點規模的企業,少則幾十人,多則幾百人,而且每個人手里不單單只有辦公電腦,可能手機、平板都要接入到網絡中來,那對于地址這塊的消耗是非常大的,私網地址的作用就是在之前的A、B、C類里面拿出來一小部分作為私網地址的范圍,這個范圍的地址任何公司的局域網都可以使用,只要同一個局域網內網段沒有重復、沖突即可,私網地址的出現,又幫助了IP地址緩解了枯竭的速度。


9000字加圖文


那么可能就有朋友會覺得奇怪了,A公司使用的是192.168.1.0/24,B公司使用的也是192.168.1.0/24,那么它們去互聯網上不就沖突了嗎?,沒錯,相同的地址如果都出現在互聯網上,勢必就沖突了,所以私網地址明確規定只能在局域網內使用,不允許出現在互聯網上,通常運營商會做訪問策略,在接入用戶的設備上面拒絕掉私網地址的進入。沖突的問題解決了,那使用私網地址的局域網無法訪問互聯網了嗎?答案肯定是可以的,不知道大家有沒有留意過,家里使用的一體貓、或者路由器,分配的地址都是192.168.0.0/24或者192.168.1.0/24開頭的,從上面列表里面就可以看到不管是192.168.0.0還是192.168.1.0都是屬于C類的私網地址范圍,但是確實是可以上網的,電腦或者手機上面并沒有使用公網地址,這就是我們后續要講解的一個技術,叫做NAT,它的功能簡單介紹就是把私網網段轉換成一個公網地址(可上互聯網的地址)來完成對internet的訪問(這個技術后續會詳細講解,這里簡單提一下)

?

(5)公網地址管理機構

私網IP地址都是由對應場景的IT人員進行規劃分配,而公網地址需要保證唯一性,就有一個專門的管理組織,叫做ICANN(互聯網名稱與數字地址分配機構),它下面有一個機構叫做IANA,主要負責互聯網IP地址的分配。

9000字加圖文


分配的方式是按州的方式層層分配,APNIC主要負責的是亞太地區(中國、日本、韓國等國家),每個國家又有自己專門的機構進行管理分配給運營商,中國則是CNNIC的機構進行管理分配。

?

(6)IPV6

上面介紹到的技術都只能緩解IP地址的枯竭,早在2011年的時候IP地址就已經被分配完畢,運營商與對應的管理機構,也在回收一些倒閉的公司跟空閑的IP地址,但也治標不治本,遲早有一天是會用盡的,所以在提出緩解技術的同時,也在想著規劃出一套全新的地址體系,那就是IPV6。

IPV6在本次課程不會涉及,后續會根據情況來開專題課,這里就簡單了解下IPV6的功能跟好處。

1、巨大的地址空間

IPV4的地址位數是32位,IPV6充分的考慮到了以后的發展,采用了128位,IPV6出現的時候就流傳著這樣一個說法:地球上的每粒沙子都可以被分配到一個地址。

2、報文的改進

IPV6采用了新的協議頭部,簡化了格式,這樣在數據包處理起來效率更高,并且引入了安全機制。

3、引入鄰居發現協議

替代了IPV4中依賴的ARP協議、DHCP協議。(這2個協議馬上就會接觸到了)

?

以實際環境來講解解析一些困惑的地方

9000字加圖文

?

上面拓撲是一個常見的企業網的架構,中間的設備現在還沒學習路由交換的技術,可能看不懂,這個沒關系,簡單理解就是,這個企業網有三個內網,一個辦公網,一個監控網,一個服務器網,辦公網需要100個終端,監控網500個終端,服務器網10個終端,客戶希望每個網獨立一個網段,那我們在實際中去規劃這個網段的時候應該怎么去規劃呢?

(1)第一種規劃方法,需要多少劃分多少

  • 監控網500個終端,按照CIDR的方法,向網絡位借位,2n-2≥500,N=9,32位-9位=23位,子網掩碼為255.255.254.0(/23),選用192.168.0.0/23,可用地址192.168.0.1~192.168.1.254
  • 辦公網終端100個,按照VLSM方法,向主機位借位,2n-2≥100,N=7,32位-7位=25位,子網掩碼為255.255.255.128(/25),選用192.168.2.0/25,可用地址:192.168.2.1~192.168.2.126
  • 服務器網終端10個,按照VLSM方法,向主機位借位,2n-2≥10,N=4,32位-4位=28位,子網掩碼為255.255.255.240(/28),選用192.168.2.128/28,可用地址:192.168.2.129~142

(2)第二種規劃方法,預留空間

  • 監控網500個終端,可以給予1022個地址,使用10.0.0.0/22,范圍10.0.0.1~10.0.3.254
  • 辦公網終端100個,給予一個C類地址/24位,使用10.0.4.0/24,范圍10.0.4.1~10.0.4.254
  • 服務器網終端10個,給予一個C類地址/24為,使用10.0.5.0/24,范圍10.0.5.1~10.0.5.254

這種對于初學者來說可能都會用第一種 ,因為上面介紹的方法或者在看書的知識點的時候都是這樣介紹的,但是在實際中要多方面考慮

  • 在局域網使用的是私網地址范圍,由IT管理者來自用規劃,作為IT人員,自然要考慮長遠點,相對于常見的企業網來說,私網地址相當于免費使用,同一個局域網中不要使用同一個相同的網段即可,所以通常的做法是只需要100個地址的給予一個標準C類,需要400~500的給予一個23位或者22位網段,而10臺服務器的網段,也可以給予一個標準的C。
  • 給予充裕的地址空間是為了擴展性,比如辦公網目前100個終端,分配的是25位,只有126個可用地址,假設后續增加了50臺,那是不是這個網段的地址就不夠用了,基于這樣的情況,通常就會給予一個可擴展的空間預留。
  • 對于企業這種多網段的環境,如果網段之間互訪那必須依賴網關,因為不在同一個網絡號里面,所以每個網段里面都拿出一個給予三層設備作為網關地址使用,通常會以網段的第一個地址或者最后一個地址作為網關,比如192.168.0.0/25,可以用192.168.0.1也可以用192.168.0.126。
  • 在規劃的時候盡量避免使用192.168.0.0、1.0、2.0、31.0這些網段,因為很多網絡設備的初始化網段就在這些里面,為了避免沖突,建議使用10、172.16.~172.31或者192.168其他網段進行規劃選擇,大家住熟悉的光貓與家用路由器就使用的192.168.0.0或者1.0、2.0這三個網段。
  • 在工作交流中,會經常聽到C類地址或者B類地址,雖然分類地址已經不再使用了,但是這個叫法一直存在,當別人提到C類地址的時候指的就是/24的掩碼,B類地址指的是/16的掩碼,實際上的使用就很靈活,10.0.0.0/24,172.16.0.0/24,又或者192.168.0.0/16都是可以的。
  • 地址規劃的時候采用連續的,對于后續在三層設備上面可以做聚合。
  • 這個只是一個常見的規劃方法,在后續中,會繼續講解各種組網的結構,要學會靈活運用即可。

?

(3)另外一些經驗之談

子網規劃跟劃分對于初學者來說,懂的VLSM以及CIDR的用途跟如何劃分即可,因為在實際中往往會碰到一個尷尬的問題,都會采用第二種規劃方法,直接采用24或者23位這樣的,久而久之對應的子網劃分使用的少了,就會忘掉,或者是更依賴與計算工具,就像我們從小學到大的數學,但是平時生活中算數,是不是大部分都依賴計算器的多,所以對于初學者來說,知道了它的用途以及如何劃分的方法就行了,那這里分享一些有用的經驗,在實際規劃中能幫到大家。


1、速記表格

9000字加圖文


對于IP地址規劃記住了VLSM與CIDR的用途以及劃分方式后,在配合這個表格,能達到很好的效果,那這個表格有什么有用的信息呢

  • 子網掩碼,表格從/8開始到/32都列出來了,不需要都記住,項目中經常遇到的/22~/26以及/30與/32,記住這幾個常用的即可,其余的遇到了,查下或者換算下就可以得到了。
  • 地址可用數量,可以看最后一列,它列出來了常見的地址數量),比如需要500個地址,找到最相近的512,用掩碼/23即可。
  • 多個子網劃分,如果相同主機數量要求的,可以參考子網數量,需要幾個網段,對應的掩碼設置多少即可,如果主機需求不一樣,這個只能就依靠VLSM算法了,但是這種環境通常很少遇到。

2、計算工具

跟我們平時生活中用計算器一樣,子網掩碼也有計算工具,手機推薦使用網絡萬用表(應用商店或者瀏覽器都可以找到),電腦版本可以網頁在線搜索子網掩碼計算工具或者離線版本,這個我都會共享在公眾號里面,可以自己獲取就行。

3、表達格式

你可能在后續的工程實施以及客戶給需求文檔中,會看到這樣的格式,比如辦公網:192.168.10.0/24,監控網:192.168.11.0/24,這個表示是辦公網規劃成192.168.10.0的網段(主機范圍1~254),監控網規劃成192.168.11.0(主機范圍1~254),還有在與客戶或者是同行交流中,如果對方只說了IP地址,沒說子網掩碼,這種是無法確定它網段的大小的,只有明確的表明了子網掩碼是多少,才能確定它的網段大小。

4、其他特殊地址

可能在后續中還會見到很多特殊的地址,比如0.0.0.0、255.255.255.255,以及169.254.0.0/16、127.0.0.0/8等,這個我們在后續中慢慢都會接觸到,這里就暫時不詳細說,否則東西太多,容易混亂。

?

“承上啟下”

IP地址已經知道是什么了,也知道如何劃分了,已經通信的規則,也知道MAC地址的作用,那么下一篇我們就來了解下通信的時候終端是如何知道對方的MAC地址的,網關又起一個什么樣的作用,會從抓包、圖解等多方面來掌握,下兩篇的內容很重要,需要反復看。

?

作者:一天,公眾號:網絡之路博客(ID:NetworkBlog)。讓你的網絡之路不在孤單,一起學習,一起成長。