天天看點

如何計算IP位址及CIDR,子網路遮罩計算

  如何計算IP位址及CIDR

  一、 IP位址概念

  IP位址是一個32位的二進制數,它由網絡ID和主機ID兩部份組成,用來在網絡中唯一的辨別的一台計算機。網絡ID用來辨別計算機所處的網段;主 機ID用來辨別計算機在網段中的位置。IP位址通常用4組3位十進制數表示,中間用“.”分隔。比如,192.168.0.1。

  補充(IPv6):前面所講的32位IP位址稱之為IPv4,随着資訊技術的發展,IPv4可用IP位址數目已經不能滿足人們日常的需要,據權威機 構預測到2010年要充分應用資訊技術,每個人至少需要10個IP位址,比如:計算機、筆記本、手機和智能化冰箱等。為了解決該問題開發了IPv6規 範,IPv6用128位表示IP位址,其表示為8組4位16進制數,中間為“:”分隔。比 如,AB32:33ea:89dc:cc47:abcd:ef12:abcd:ef12。

  二、IP位址分類

  為了友善IP尋址将IP位址劃分為A、B、C、D和E五類,每類IP位址對各個IP位址中用來表示網絡ID和主機ID的位數作了明确的規定。當主機ID的位數确定之後,一個網絡中是多能夠包含的計算機數目也就确定,使用者可根據企業需要靈活選擇一類IP位址建構網絡結構。

  A類

  A類位址用IP位址前8位表示網絡ID,用IP位址後24位表示主機ID。A類位址用來表示網絡ID的第一位必須以0開始,其他7位可以是任意值, 當其他7位全為0是網絡ID最小,即為0;當其他7位全為1時網絡ID最大,即為127。網絡ID不能為0,它有特殊的用途,用來表示所有網段,是以網絡 ID最小為1;網絡ID也不能為127;127用來作為網絡回路​​測試​​用。是以A類網絡網絡ID的有效範圍是1-126共126個網絡,每個網絡可以包含 224-2台主機。

  B類

  B類位址用IP位址前16位表示網絡ID,用IP位址後16位表示主機ID。B類位址用來表示網絡ID的前兩位必須以10開始,其他14位可以是任 意值,當其他14位全為0是網絡ID最小,即為128;當其他14位全為1時網絡ID最大,第一個位元組數最大,即為191。B類IP位址第一個位元組的有效 範圍為128-191,共16384個B類網絡;每個B類網絡可以包含216-2台主機(即65534台主機)。

  C類

  C類位址用IP位址前24位表示網絡ID,用IP位址後8位表示主機ID。C類位址用來表示網絡ID的前三位必須以110開始,其他21位可以是任 意值,當其他22位全為0是網絡ID最小,IP位址的第一個位元組為192;當其他22位全為1時網絡ID最大,第一個位元組數最大,即為223。C類IP地 址第一個位元組的有效範圍為192-223,共2097152個C類網絡;每個C類網絡可以包含28-2台主機(即254台主機)。

  D類

  D類位址用來多點傳播使用,沒有網絡ID和主機ID之分,D類IP位址的第一個位元組前四位必須以1110開始,其他28位可以是任何值,則D類IP位址的有效範圍為224.0.0.0到239.255.255.255。

  E類

  E類位址保留實驗用,沒有網絡ID和主機ID之分,E類IP位址的第一位元組前四位必須以1111開始,其它28位可以是任何值,則E類IP位址的有效範圍為240.0.0.0至255.255.255.254。其中255.255.255.2555表示廣播位址。

  在實際應用中,隻有A、B和C三類IP位址能夠直接配置設定給主機,D類和E類不能直接配置設定給計算機。

  三、 網絡ID、主機ID和子網路遮罩

  網絡ID用來表示計算機屬于哪一個網絡,網絡ID相同的計算機不需要通過​​路由​​器連接配接就能夠直接通信,我們把網絡ID相同的計算機組成一個網絡稱之為本地網絡(網段);網絡ID不相同的計算機之間通信必須通過路由器連接配接,我們把網絡ID不相同的計算機稱之為遠端計算機。

  當為一台計算機配置設定IP位址後,該計算機的IP位址哪部份表示網絡ID,哪部份表示主機ID,并不由IP位址所屬的類來确定,而是由子網路遮罩确定。子網确定一個IP位址屬于哪一個子網。

  子網路遮罩的格式是以連續的255後面跟連續的0表示,其中連續的255這部份表示網絡ID;連續0部份表示主機ID。比如,子網路遮罩255.255.0.0和255.255.255.0。

  根據子網路遮罩的格式可以發現,子網路遮罩有0.0.0.0、255.0.0.0、255.255.0.0、255.255.255.0和 255.255.255.255共五種。采用這種格式的子網路遮罩每個網絡中主機的數目相差至少為256倍,不利于靈活根據企業需要配置設定IP位址。比如,一 個企業有2000台計算機,使用者要麼為其配置設定子網掩為255.255.0.0,那麼該網絡可包含65534台計算機,将造成63534個IP位址的浪費; 要麼使用者為其配置設定8個255.255.255.0網絡,那麼必須用路由器連接配接這個8個網絡,造成網絡管理和維護的負擔。

  網絡ID是IP位址與子網路遮罩進行與運算獲得,即将IP位址中表示主機ID的部份全部變為0,表示網絡ID的部份保持不變,則網絡ID的格式與IP位址相同都是32位的二進制數;主機ID就是表示主機ID的部份。

  例1:IP位址:192.168.23.35 子網路遮罩:255.255.0.0

  網絡ID:192.168.0.0 主機ID:23.35

  例2:IP位址:192.168.23.35 子網路遮罩:255.255.255.0

  網絡ID:192.168.23.0 主機ID:35

  四、子網和CIDR

  将正常的子網路遮罩轉換為二進制,将發現子網掩格式為連續的二進制1跟連續0,其中子網路遮罩中為1的部份表示網絡ID,子網掩中為0的表示主機ID。比如255.255.0.0轉換為二進制為11111111 11111111 00000000 00000000。

  在前面所舉的例子中為什麼不用連續的1部份表示網絡ID,連續的0部份表示主機ID呢?答案是肯定的,采用這種方案的IP尋址技術稱之為無類域間路 由(CIDR)。CIDR技術用子網路遮罩中連續的1部份表示網絡ID,連續的0部份表示主機ID。比如,網絡中包含2000台計算機,隻需要用11位表示 主機ID,用21位表網絡ID,則子網路遮罩表示為11111111.11111111.11100000.00000000,轉換為十進制則為 255.255.224.0。此時,該網絡将包含2046台計算機,既不會造成IP位址的浪費,也不會利用路由器連接配接網絡,增加額外的管理維護量。

  CIDR表示方法:IP位址/網絡ID的位數,比如192.168.23.35/21,其中用21位表示網絡ID。

  例1:192.168.23.35/21

  子網路遮罩:11111111 11111111 11111000 00000000則為255.255.248.0

  網絡ID:192.168.00010111.0(其中第三個位元組紅色部分表示網絡ID,其他表示主機ID,網絡ID是表示網絡ID部份保持不變主機ID全部變為0)則網絡ID為192.168.16.0

  起始IP位址:192.168.16.1(主機ID不能全為0,全為0表示網絡ID最後一位為1)

  結束IP位址:192.168.00010111.11111110(主機ID不能全為1,全為1表示本地廣播)則結束IP位址為:192.168.23.254。

  例2:将163.135.0.0劃分為16個子網,計算前兩個子網的網絡ID、子網路遮罩、起止IP位址。

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

  第2步:第一網絡ID(子網路遮罩與IP位址與運算):163.135.0.0

  第一個IP位址:163.135.0.1 結束IP位址:163.135.15.254;

  第3步:第二網絡ID:163.135.16.0

  第一個IP位址:163.135.16.1 結束IP位址:163.135.31.254。

  五、子網路遮罩和網絡ID的快速計算方法

  CIDR的子網路遮罩都是連續的1跟連接配接的0表示,則子網路遮罩有以下幾種表示方法:

  0000 0000   0

  1000 0000   128

  1100 0000   128+64=192

  1110 0000   128+64+32=224

  1111 0000   255-15=240

  1111 1000   255-7=248

  1111 1100   255-3=252

  1111 1110   255-1=254

  1111 1111   255

  大家都知道11111111的十進制數為255,那麼我們怎麼來快速計算子網路遮罩呢?二進制的1=1,11=3,111=7,1111=15;那麼 1111 1110=255-1,1111 1100=255-3,1111 1000=255-8,1111 0000=255-15這樣是不是就很快呢?隻要我們一旦确定子網路遮罩中有多少位表示網絡ID,那麼我們馬上就可以寫出子網路遮罩了。那麼,對于1000 0000,1100 0000和1110 0000 我們又該怎麼計算呢?27=8則1000 0000=128,1100 0000=128+64,1110 0000=128+64+32,是以我們不需要去記住每一個為多少,隻需要做做簡單的加減法就搞定子網路遮罩的計算。

  網絡ID的結果大家都知道網絡ID部份不變,主機ID部分全部變為0,那麼在計算網絡ID時,首先看子網路遮罩中有多少位用來表示網絡,相應在将IP 位址轉換為二進制時就隻轉換前面幾位,比如192.168.176.15/19,網絡ID一共19位,則網絡ID前兩個位元組為192.168.X.0發生 變化的為第三個位元組。那麼怎樣快速計算出這個變化的X的值呢?我們知道第三位元組隻有三位表示網絡ID,轉換時176>128,第1位為 1,176-128=48<64,第2位為0,48>32第3位為1,剩下的計算就沒有意義了,全都要轉換為0,則網絡ID為10100000,則網絡 ID為192.168.160.0,這樣計算反而出錯的可能性很小。

  六、 本地和遠端網絡概念

  網絡ID相同的計算機稱之為本地網絡,本地網絡中的計算機互相通信不需要路由器連接配接;網絡ID不相同的計算機稱之為遠端網絡,遠端網絡中的計算機要互相通信必須通過路由器連接配接。

  例1: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位址。

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

  網絡ID相同的就屬于同一網段,則192.168.10.16/28不屬于同一網段。

  七、子網數和主機數的計算方法

  例: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位址。

  注意:為什麼計算IP位址時要減2,而計算子網數目時不減2呢?IP位址減2的原因是主機ID不能全為0也不能全為1;子網就不存在這個問題。

  八、 公共IP和私有IP位址

  IP位址由IANA(Internet位址配置設定機構)管理和配置設定,任何一個IP位址要能夠在Internet上使用就必須由IANA配置設定,IANA 配置設定的能夠在Internet上正常使用的IP位址稱之為公共IP位址;IANA保留了一部份IP位址沒有配置設定給任何機構和個人,這部份IP位址不能在 Internet上使用,此類IP位址就稱之為私有IP位址。為什麼私有IP位址不能在Internet上使用呢?因為Internet上沒有私有IP地 址的路由。私有IP位址範圍包括:

  A類:10.0.0.0/8

  B類:172.16.0.0/12 即172.16.0.1-172.31.255.254共16個B類網絡

  C類:192.168.0.0/16即192.168.0.1-192.168.255.254共256個C類網絡