天天看點

IP位址和VLSM和CIDR

早期的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

引自:CSDN 作者:han156

原文:

https://blog.csdn.net/han156/article/details/77817031

轉載隻為自己查起來友善

繼續閱讀