1. 程式人生 > >CIDR的IP地址的表示與劃分方法

CIDR的IP地址的表示與劃分方法

早期的ip地址劃分:

最初設計網際網路絡時,為了便於定址以及層次化構造網路,每個IP地址包括兩個標識碼(ID),即網路ID和主機ID。同一個物理網路上的所有主機都使用同一個網路ID,網路上的一個主機(包括網路上工作站,伺服器和路由器等)有一個主機ID與其對應。

IP地址是一個32位的二進位制字元,為了方便人類的記憶,所以,通常人們會將二進位制的IP地址表示成十進位制的格式,沒每八位分割一下,即分成四段。(後來數字也不太容易記憶,所以,人們就用字元(域名,例如:www.jd.com)來表示IP地址,每次上網的時候,通過DNS伺服器,將字元(域名)解析成IP地址,然後才能上網,這個暫且不提。)

網路ID:用來標識計算機所處的網段,網路ID相同的計算機不需要通過路由器連線就能夠直接通訊,我們把網路ID相同的計算機組成一個網路稱之為本地網路(網段);網路ID不相同的計算機之間通訊必須通過路由器連線,我們把網路ID不相同的計算機稱之為遠端計算機。網路ID是IP地址與子網掩碼進行與運算獲得,即將IP地址中表示主機ID的部份全部變為0,表示網路ID的部份保持不變。

主機ID:用來標識計該臺主機在網段中的位置。

IP地址根據網路ID的不同分為5種類型,A類地址、B類地址、C類地址、D類地址和E類地址。

A類:A類IP地址:一個A類IP地址由1位元組的網路地址和3位元組主機地址組成,網路地址的最高位必須是“0”, 地址範圍從1.0.0.0 到126.0.0.0。可用的A類網路有126個,每個網路能容納1億多個主機。

0 000 0000 - 0 111 1111: 0-127

網路數: 2^7(1~126)(0:用於表示未知地址,127表示迴環地址,兩個都不能用)

每個網路中的主機數: 2^24-2

注意:主機位全0,表示網路ID,防止發生混淆;

注意:主機位全1表示本網段內的廣播地址。所以每個網段中的第一個與最後一個都不能使用。

預設子網掩碼: 255.0.0.0

私網地址:10.0.0.0

B類:B類IP地址:一個B類IP地址由2個位元組的網路地址和2個位元組的主機地址組成,網路地址的最高位必須是“10”,地址範圍從128.0.0.0到191.255.255.255。可用的B類網路有16382個,每個網路能容納6萬多個主機 。

10 00 0000 - 10 11 1111: 128-191

網路數: 2^14(128~191)

每個網路中的主機數: 2^16-2

預設子網掩碼: 255.255.0.0

私網地址: 172.16.0.0-172.31.0.0

C類:C類IP地址:一個C類IP地址由3位元組的網路地址和1位元組的主機地址組成,網路地址的最高位必須是“110”。範圍從192.0.0.0到223.255.255.255。C類網路可達209萬餘個,每個網路能容納254個主機。

110 0 0000 - 110 1 1111: 192-223

網路數: 2^21(192~223)

每個網路中的主機數: 2^8-2

預設子網掩碼: 255.255.255.0

私網地址: 192.168.0.0-192.168.255.0

D類:D類地址用於多點廣播(Multicast):D類IP地址第一個位元組以“1110”開始,它是一個專門保留的地址。它並不指向特定的網路,目前這一類地址被用在多點廣播(Multicast)中。多點廣播地址用來一次定址一組計算機,它標識共享同一協議的一組計算機。224.0.0.0到239.255.255.255用於多點廣播 。

1110 0000 - 1110 1111: 224-239

E類:240-255:ping十進位制的ip地址也可以ping通。

特殊地址:

(0.0.0.0)地址對應於未知地址。指在本機的路由表裡沒有特定條目指明如何到達。一般使用者主機為了獲得一個可用的IP地址,就給DHCP伺服器傳送IP分組,並用這樣的地址作為源地址,目的地址為255.255.255.255(因為主機此時並沒有自己的確定的IP地址,防止自己隨便定的IP地址與別的主機發生衝突。)。

(255.255.255.255)是當前子網的廣播地址。這個地址指本網段內(同一個廣播域)的所有主機,該地址用於主機配置過程中IP資料包的目的地址(例如通過DHCP伺服器獲取本機的IP地址的時候,由於不知道DHCP伺服器的IP地址,便會通知資料鏈路層,傳送廣播包,來尋找DHCP),這時主機可能還不知道它所在網路的網路掩碼,甚至連它的IP地址也還不知道。在任何情況下,路由器都會禁止轉發目的地址為受限的廣播地址的資料包,這樣的資料包僅會出現在本地網路中。

(127...*)是一個A類地址,但是它已被保留作閉環(look back ),一般用作測試之用而不能分配給一個網路。127中的所有地址都代表傳送方自己。

(169.254..)僅限於windows使用,如果你的主機是使用DHCP功能,來自動獲得一個IP地址的。那麼當你的DHCP伺服器發生故障或響應時間太長而超出系統規定的一個時間,Windows系統會為你分配這樣一個地址。如果你發現你的 主機IP地址是個諸如此類的地址,很不幸,十有八九是你的網路不能正常運行了,linux沒有這種現象。

(私有地址)在IP地址3種主要型別裡,各保留了3個區域作為私有地址,其地址範圍如下:

A類地址:10.0.0.0~10.255.255.255

B類地址:172.16.0.0~172.31.255.255 (16個B類)

C類地址:192.168.0.0~192.168.255.255

私有地址,這些地址被大量用於企業內部網路中。一些寬頻路由器,也往往使用192.168.1.1作為預設地址。私有網路由於不與外部互連,因而可能使用隨意的IP地址。保留這樣的地址供其使用是為了避免以後接入公網時引起地址混亂。使用私有地址的私有網路在接入Internet時,要使用地址翻譯 (nat),將私有地址翻譯成公用合法地址。在Internet上,這類地址是不能出現的。

(直接廣播地址)主機位全為1,網段中的最後一個地址為直接廣播地址。主機使用這種地址把一個IP資料報傳送到本地網段的所有裝置上,路由器會轉發這種資料報到特定網路上的所有主機。注意:這個地址在IP資料報中只能作為目的地址。另外,直接廣播地址使一個網段中可分配給裝置的地址數減少了1個。

(子網中的第一個IP)主機位全為0的地址,用作標識網路ID,一個網段中可分配給裝置的地址數會減少1個。

(網路位為0的IP地址)當某個主機向同一網段上的其他主機發送報文時就可以使用這樣的地址,分組也不會被路由器轉發。比如12.12.12.0/24這個網路中的一臺主機12.12.12.2/24在與同一網路中的另一臺主12.12.12.8/24通訊時,目的地址可以是0.0.0.8。

CIDR:無類域間路由

由於早期的IP地址的劃分會浪費太多的IP地址,所以,現在都是用CIDR表示法,為此引入了子網掩碼的概念,即網路位的個數可以任意指定。該方法相容早期的IP劃分方法。

CIDR表示方法:IP地址/網路ID的位數(網段的劃分更加靈活)

子網掩碼:子網掩碼的作用,就是將某個IP地址劃分成網路地址和主機地址兩部分。子網掩碼是一個32位地址,用於遮蔽IP地址的一部分,並說明該IP地址是在區域網上,還是在遠端網上,具體方法待會兒再講。子網掩碼不能單獨存在,它必須結合IP地址一起使用。子網掩碼的二進位制格式中的網路位全為1。這樣二進位制格式的子網掩碼和二進位制的IP地址進行“與”運算,可以得出該IP地址的網路位。

允許的子網掩碼的值:

10000000-128;11000000-192;11100000-224;11110000-240;

11111000-248;11111100-252;11111110-254;11111111-255;

最小IP:主機ID不能全為0,全為0表示網路ID

最大IP:主機ID不能全為1,全為1表示本地廣播

CIDR技術用子網掩碼中連續的1部份表示網路ID,連續的0部份表示主機ID。比如,網路中包含2000臺計算機,只需要用11位表示 主機ID,用21位表網路ID,則子網掩碼錶示為11111111.11111111.11100000.00000000,轉換為十進位制則為 255.255.224.0。此時,該網路將包含2046臺計算機,既不會造成IP地址的浪費,也不會利用路由器連線網路,增加額外的管理維護量。

例1:192.168.23.35/21計運算元網的網路ID、子網掩碼、起止IP地址?

子網掩碼:11111111 11111111 11111-000 00000000(子網掩碼)=255.255.248.0(子網掩碼的第二種表示方法。)

網路ID:192.168.16.0(192.168.00010111.0和子網掩碼進行“與”運算。)

起始IP地址:192.168.16.1(192.168.16.0是本網端中的第一個IP,可是他已經表示網路ID了,所以,為了避免與該IP地址與網路ID混淆,所以,起始IP為192.168.16.1。)

結束IP地址:192.168.23.254(192.168.00010(網路位)-111.11111110(主機位)主機ID不能全為1,全為1表示本地廣播。)

例2:將163.135.0.0/20劃分為16個子網,計算第一個和最後一個子網的網路ID、子網掩碼、起止IP地址?

第1步:用CIDR表示163.135.0.0/20,則子網掩碼為255.255.240(11110000).0。

第2步:第一網路ID(子網掩碼與IP地址與運算):163.135.16.0(163.135.0000-0000.0)

第一個IP地址:163.135.0.1

結束IP地址:163.135.15.254

第3步:第二網路ID:163.135.16.0(163.135.0000-1111.0)

第一個IP地址:163.135.16.1

結束IP地址:163.135.31.254

例3:192.168.10.14/28,192.168.10.15/28,192.168.10.16/28,192.168.10.31/28哪些是合法IP,哪些是非法IP地址?

答案:主機ID全為0和主機ID全為1的為非法IP地址:192.168.10.15/28、192.158.10.16/28、192.168.10.31/28都是非法IP地址。

例4:192.168.10.14/28,192.168.10.15/28,192.168.10.16/28哪個不是同一網段?

網路ID相同的就屬於同一網段,則192.168.10.16/28不屬於同一網段。(192.168.10.14/28,192.168.10.15/28屬於非法IP,但是他仍然屬於192.168.0.0網段)

例5:172.168.34.56/20,一共劃分為了多少個子網,各子網可以包含多少臺主機。

172.168.34.56是一個B類地址,B類地址用16位表示網路ID,題目中20位表示網路ID,則子網位數為4位,那麼子網就有24次個(即從0000、0001到1111的16種變化)。由於IP地址是32位,用20位表示網路ID,則主機ID的位數為12位,則每個子網可以包含212-2個IP地址,即可以包含4096個IP地址。

劃分子網:將一個大網路(主機ID位多)劃分多個小的網路(主機ID位少),網路ID向主機ID借位,絡ID變多,主機ID變少(劃分子網,會減少可用IP地址)

注意:由於人們習慣了將IP地址分成,四段十進位制的表示格式,所以,借過位的IP地址,依然是四段。例如:12.100.100.100/8;表示該IP的子網掩碼有8位。

該IP的二進位制表示格式為:00001010.01100100.00000000.00000000/11111111.00000000.00000000.00000000

即該IP的網路位(二進位制)為:00001010.00000000.00000000.00000000

即該IP的網路位(十進位制)為:12.0.0.0

如果將該網路劃分成4個子網,那麼就需要借2個主機位作為網路位來使用,具體方法為:

00000000.00-000000.00000000.00000000(前面的黑色部分為網路位)

第一個子網的網路位為(二進位制):00001010.00-000000.00000000.00000000(第一個網段,即借來的網路位全為0)

第一個子網的網路位為(十進位制):12.0.0.0

最後一個子網的網路位為(二進位制):00001010.11-000000.00000000.00000000(最後一個網段,即借來的網路位全為1)

最後一個子網的網路位為(十進位制):12.192.0.0

劃分超網:

將多個小網合併一個大網,主機ID向網路ID借位(找共同點)
公式:

1、主機數=2^主機ID位-2

2、網路數=2^可變的網路ID位

3、網路ID=IP和netmask 相與

4、劃分子網數=2^網路ID向主機ID借的位數

5、劃分子網損失IP數=2*(劃分子網數-1)(因為每段子網中的第一個IP地址用來表示網路位,而最後一個IP地址都被用來表示本網段中的廣播。)

注意:

子網掩碼:二進位制的表示格式中,網路位全為1;

網路位:用於表示該網段的地址;

主機位:用於表示該主機位於該網段中的地址;

——————————————習題—————————————————

已知:CIDR:172.17.0.100/26,求:

1、netmask子網掩碼?255.255.255.192

2、主機數多少個?2^(32-26)-2=62

3、網路ID值?(172.17.0.64/26)172.17.0.01-000000

已知:CIDR:110.110.244.100/22,求:

1、netmask?255.255.252.0

2、主機數多少個?2^(32-22)-2

3、網路ID值?(110.110.244.0/22)110.110.111101-00.0

已知:IP:10.100.222.100(子網掩碼:255.255.248.0),求:

1、CIDR表示法?10.100.222.100/21

2、主機數多少個?2^(32-21)-2=2046

3、網路ID值?10.100.216.0/21

已知:172.200.249.200/22,劃分16個子網(需要借4個主機位作為網路位),求:

1、每個子網路netmask?255.255.255.192,netid 26(子網的網路位:255.255.255.11-000000)

2、每個子網路的主機數?2^(32-26(=22+4))-2=62

3、最小子網的netid?172.200.248.0/26(最小子網就是,借來的網路位全為0)

4、最大子網的IP範圍?172.200.251.193-172.200.251.254(最大子網就是,借來的網路位全為1)

已知:10.0.0.0/8 劃分32子網,第10個子網10.72.0.0/13是河南省,對此子網劃分64個子網。分析:首先10.0.0.0的網路位有8個,劃分為了32個子網,需要借5個網路位,其中第十個子網為(10.01001-000.0.0)(注意:是第十個)網路位為:10.72.0.0;所以,本題的含義就是,對10.72.0.0/13劃分64個子網。求:

1、每個子網路的netmask?255.255.224.0

2、每個子網中的主機數?2^(32-19)-2

3、最小子網的netid?10.72.0.0

4、最大子網的IP範圍?10.79.224.1~10.79.255.254(10.01001-111.111-00000.1~10.01001-111.111-11111.254)

問題:A主機的IP地址為192.168.1.100/24,B主機的IP地址為192.168.2.100/16,請問兩個主機可以相互通訊嗎?

答案:在通訊之前,主機首先需要判斷目標IP是不是跟自己在一個網段中(因為源主機只知道目標主機的IP地址,並不知道他的子網掩碼,所以,源主機會將目標IP與自己的子網掩碼進行比較,得出一個網路ID)。

A主機發起通訊:A經過計算,會得出B主機跟自己不在一個網段中,會將將ping包傳送給閘道器(路由器):目標主機不可到達。

B主機發起通訊:B經過計算,會得出A主機跟自己在一個網段中,B發出ping包,A可以收到,但是A找不到B:超時。

問題:211.201.188.199/20;211.201.180.199/20;這兩個主機可以通訊嗎?答案:在,因為兩個主機在一個網段中,網路ID:211.201.176.0

作者:han156
來源:CSDN
原文:https://blog.csdn.net/han156/article/details/77817031
版權宣告:本文為博主原創文章,轉載請附上博文連結!