CIDR,子網掩碼以及劃分子網超網

對于中小企業,假如有兩千臺機器,給他分個B類地址,6萬多個,太浪費了,分個C類地址,一個C類地址254個,又不夠,又得多申請幾個,所以A,B,C類IP地址劃分太過僵硬,很不靈活,因此又提出無類域間路(CIDR)由劃分IP地址的方法。
無類域間路由(CIDR)
傳統劃分IP地址的方法都是8位劃分的,要不就是前8位網絡ID,后24位主機ID;或前16位網絡ID,后16位主機ID,或前24位網絡ID,后8位主機ID,這種劃分IP地址的方法是固定的,不能出現前10位是網絡ID,后22位是主機ID這種ID地址,而無類域間路由這種劃分IP地址的方法,就可以劃分這種地址,他并不強行規定哪些位是網絡ID,哪些位是主機ID,怎樣劃分就看你的心情了。
子網掩碼
因為不規定明確的網絡ID和主機ID,假如給你一個IP地址,怎么知道哪幾位是網絡ID位,哪幾位是主機ID位呢?于是提出了子網掩碼的概念,根據子網掩碼配合IP地址可以判斷出哪些位是網絡ID,哪些位是主機ID。
子網掩碼,共32位,和IP地址位位對應,對應于網絡ID的那些位,子網掩碼位為1,對應于主機ID的那些位,子網掩碼位為0。
A類地址的子網掩碼
8位網絡ID 24位主機ID A類地址
11111111 000000000000000000000000 子網掩碼
255.0.0.0 轉化成十進制
?

B類地址的子網掩碼

16位網絡ID 16位主機ID B類地址
1111111111111111 0000000000000000 子網掩碼
255.255.0.0 轉化成十進制
?

C類地址的子網掩碼

24位網絡ID 8位主機ID C類地址
111111111111111111111111 00000000 子網掩碼
255.255.255.0 轉換成十進制
?

?

子網掩碼中,1一定在前面,0在后面,而且必須是連續的

我們就只討論8位子網掩碼
00000000 0
10000000 128
11000000 192
11100000 224
11110000 240
11111000 248
11111100 252
11111110 254
11111111 255
這些都能成為子網掩碼。
?
假如說一個小網絡中要劃分兩個IP地址,那么要怎么劃分這樣一個網絡,子網掩碼又是什么?
劃分兩個IP地址,就說明主機數為2,套公式2^x=2,可以求出來x=2,所以應劃分為網絡ID位為30,主機ID位為2的IP地址,子網掩碼為30個1,2個0,轉化成十進制為255.255.255.252
?
CIDR(無類域間路由)表示法:IP/網絡ID位數=IP/(32-主機ID位數)
例如:A類地址的CIDR表示法:IP/8
?

例題1 172.17.0.100/26

(1)netmask(十進制子網掩碼)?

前26位是網絡ID,后6位是主機ID

11111111111111111111111111 000000

255.255.255.192
(2)主機數多少個?
2^(32-26)=2^6-2=62
(3)網絡ID值是什么?
網絡ID值就是IP與子網掩碼相與
01100010 172.17.0.100
11111111111111111111111111000000 255.255.255.192
01000000 172.17.0.64
所以網絡ID值為172.17.0.64/26
注釋:因為255化為二進制全為1,所以誰與255相與還未誰,所以前三位不用考慮,不變,只考慮第四位就行了。
?

?

0與0 0

1與0 0
0與1 0
1與1 1
規律:0與誰為0,誰與1位誰
?

?

例題2:110.110.244.100/22

(1)netmask(十進制子網掩碼)?

前22位是網絡ID,后10位是主機ID

11111111111111111111110000000000
255.255.252.0
(2)主機數多少個?
2^(32-22)-2=2^10-2=1022
(3)網絡ID值是什么?
1111010001100100 110.110.244.100
11111111111111111111110000000000 255.255.252.0
1111010000000000 110.110.244.0
所以網絡ID值為110.110.244.0/22
?
判斷兩個主機是否在一個網絡(就看IP地址的網絡ID位是否一樣)
192.168.1.100/16
192.168.2.100/16
前十六位都是192.168,所以在一個網絡里
?
192.168.1.100/24
192.168.2.100/24
看前24位,一個是192.168.1,一個是192.168.2,所以不在一個網絡
?
假如A和B通訊
A:192.168.1.100/24
B:192.168.2.100/16
對于A來說:先拿A的IP地址與自己子網掩碼相與得出網絡ID值為192.168.1.0,再拿B的IP地址與自己的IP地址相與得出網絡ID值為192.168.2.0(不能和B的子網掩碼相與,因為A和B通訊,A只知道B的IP地址,并不知道到B的子網掩碼),前24位不相同,所以在A的眼里面A和B不在一個網絡里,那么A就要找路由器,通過路由器把數據發給B。
對于B來說:先拿B的IP地址與自己的子網掩碼相與得出網絡ID值為192.168.0.0,再拿A的IP地址與自己的子網掩碼相與得出網絡ID值為192.168.0.0,前16位相同,所以在B眼里B和A在一個網絡里,B直接和A進行通訊。
?
例題3:給出IP地址和子網掩碼
10.100.222.100
255.255.248.0
(1)CIDR表示法
255.255.248.0
11111111 11111111 11111000 00000000 前21位都是1,說明IP地址的網絡ID位為21位
所以CIDR表示法為:10.100.222.100/21
(2)主機數是多少?
2^(32-21)-2=2^11-2=2046
(3)網絡ID值是多少?
11011110 00000000 10.100.222.100
11111111 11111111 11111000 00000000 255.255.248.0
11011000 00000000 10.100.216.0
所以網絡ID值為10.100.216.0/21
?
公式
1 主機數=2^主機ID位-2
2 網絡數=2^可變的網絡ID位
3 網絡ID=IP和netmask 相與
4 劃分子網數=2^網絡ID向主機ID借的位數
5 損失IP=2*(劃分子網數-1)
?
劃分子網
劃分子網:將一個大網絡(主機ID位多)劃分多個小的網絡(主機ID位少),網絡ID向主機ID借位,網絡ID變多,主機ID變少
10.0.0.0/8 前8位是網絡ID
IP范圍:10.0.0.1~10.255.255.254
?
我們先借一位
10.00000000.0.0
10.0 00000000.0.0
前九位是網絡ID,這就將10.0.0.0/8劃分為2個子網,為10.0 0000000.0.0/9和
10.1 0000000.0.0/9(因為借來的一位是主機ID,主機ID位是可變的,所以借來的這一位也可變)
第一個子網:10.0 0000000.0.0/9 IP范圍為:10.0 0000000.0.1/9~10.0 1111111.255.254/9
第二個子網:10.1 0000000.0.0/9 IP范圍為:10.1 0000000.0.1/9~10.1 1111111.255.254/9
和10.0.0.0/8的范圍對比發現損失了邊界兩個IP10.0 1111111.255.255和10.1 0000000.0.0
?
我們借兩位
10.00000000.0.0
10.00 000000.0.0
前10位是網絡ID,這就將10.0.0.0/8劃分為4個子網,為10.00 000000.0.0/10和10.01 000000.0.0/10和10.10 000000.0.0/10和10.11 000000/10
第一個子網:10.00 000000.0.0/10 IP范圍:10.00 000000.0.1/10~10.00 111111.255.254/10
第二個子網:10.01 000000.0.0/10 IP范圍:10.01 000000.0.1/10~10.00 111111.255.254/10
第三個子網:10.10 000000.0.0/10 IP范圍:10.10 000000.0.1/10~10.10 111111.255.254/10
第四個子網:10.11 000000.0.0/10 IP范圍:10.11 000000.0.1/10~10.11 111111.255.254/10
和10.0.0.0/8的IP范圍對比發現少了6個邊界的IP,10.00 111111.255.255和10.01 000000.0.0和10.01 111111.255.255和10.10 000000.0.0和10.10 111111.255.255和10.11 000000.0.0
從這我們就可以得出兩個公式:
劃分子網數=2^網絡ID向主機ID借的位數
損失IP=2*(劃分子網數-1)
?
例題1:172.200.249.200/22 劃分16子網
1 每個子網絡netmask
劃分16子網,套公式,16=2^x可以求出x=4,所以網絡ID向主機ID借的位數為4,所以網絡ID位數應為22+4=26位,所以子網掩碼前26位為1,后6位為0
11111111111111111111111111 000000 二進制的子網掩碼
255.255.255.192 轉換成十進制
所以每個子網絡netmask為255.255.255.192
2 每個子網絡的主機數
2^(32-26)-2=2^6-2=62
3 最小子網的netid
172.200.11110 01 11001000/22
劃分16子網172.200.111110 0111 001000/26向主機ID借了4位,所以0111這四位變為網絡ID位了。當這四位全為0時且主機ID位全為0時,就為最小子網的網絡ID,為172.200.248.0/26
4 最大子網的IP范圍
借的四位全為1時,劃分的子網最大,所以最大子網IP范圍為:172.200.11110 11. 11000001~172.200.11110 11.11111110
化成十進制為172.200.251.193~172.200.251.254
?
劃分超網
劃分超網:將多個小網合并一個大網,主機ID向網絡ID借位
例子:將以下幾個小網合并成大網
220.78.168.0/24 220.78.10101 000.0/24
220.78.169.0/24 220.78.10101 001.0/24
220.78.170.0/24 220.78.10101 010.0/24
220.78.171.0/24 220.78.10101 011.0/24
220.78.172.0/24 220.78.10101 100.0/24
220.78.173.0/24 220.78.10101 101.0/24
220.78.174.0/24 220.78.10101 110.0/24
220.78.175.0/24 220.78.10101 111.0/24
將第三位劃分為二進制,我們發現前兩位和第三位的前5位是一樣的。所以把第三位的后三位借走為主機ID,這時就變成前21位是網絡ID,后11位為主機ID,就能把這幾個小網合并成一個新網為220.78.10101.000.0/21,包含了原來的網絡。當然合并是有前提的,借的位前面的位是相同的,且借的位是連續的(例子中000-111都包括),假如說中間缺了一位220.78.10101.011.0/24,但是合并出的新網也包含他,所以必須借的位是連續的。
?
?

原創文章,作者:fuming,如若轉載,請注明出處:http://www.www58058.com/85889

(6)
fumingfuming
上一篇 2017-09-16 09:45
下一篇 2017-09-16 10:52

相關推薦

  • Linux文本處理三劍客之GNU awk的使用

    awk: Aho, Weinberger, Kernighan,報告生成器,格式化文本輸出 有多種版本:New awk(nawk),GNU awk(gawk) gawk –模式掃描和處理語言 基本用法:     awk[options] ‘program’ var=value file…   &nb…

    Linux干貨 2016-10-06
  • N23-第一周博客作業

    一、計算機組成 由五大基本部件【運算器 + 控制器 + 儲存器 + 輸入設備 + 輸出設備】組成且遵循馮諾依曼體系,CPU包含運算器和控制器兩大部件。 CPU: 核心部件:運算器、控制器 其他部件:寄存器、緩存、等等 存儲器:內存,RAM(Random Access Memory)隨機訪問存儲器。 Input(輸入設備):下指令,提供數據等,如:硬盤、鍵盤、…

    Linux干貨 2016-09-15
  • 磁盤管理:raid和lvm練習

    本文通過以下習題,鞏固所學raid和lvm知識: 20160829         1、創建一個可用空間為1G的RAID1設備,文件系統為ext4,有一個空閑盤,開機可自動掛載至/backup目錄       &nbsp…

    Linux干貨 2016-09-05
  • tom貓—–(Tomcat詳解)

    目錄 安裝tomcat tomcat目錄結構及配置文件構成以及主配置文件server.xml ,tomcat中的組件 實現反代tomcat的方法 nginx+tomcat cluster http(mod_porxy_http)+tomcat cluster http(mod_porxy_ajp)+tomcat cluster http(mod_jk)+to…

    2017-11-16
  • 設計模式原則詳解

        我們在應用程序開發中,一般要求盡量兩做到可維護性和可復用性。       應用程序的復用可以提高應用程序的開發效率和質量,節約開發成本,恰當的復用還可以改善系統的可維護性。而在面向對象的設計里面,可維護性復用都是以面向對象設計原則為基礎的,這些設計原則首先都是復用的原則,遵循這些設…

    Linux干貨 2015-04-07
  • linux文本查找工具之locate、find

       linux文本查找工具之locate、find    一、文件查找分為兩類:               1、非實時查找:locate   &n…

    Linux干貨 2017-04-08
欧美性久久久久