子網


IP地址的划分

IP地址是一個32位編碼的地址表示,格式形如a.b.c.d,其中a,b,c,d為十進制數,范圍為0-255,因此IP地址又稱為點分十進制表示,每個部分為8位,一共長度為32位。因此,IP地址理論上一共有2^32個IP地址(大約有40億個),現在這些IP地址已經不夠用了,所以在開發IPv6。

子網

子網的建設在於便於網絡管理,例如一台IP地址為172.16.1.1的路由器連接着3台主機,IP地址分別為172.16.1.2、172.16.1.3、172.16.1.4。是不是想起了校園網的IP地址,那個172.16.1.1就是網關,那三個IP地址就是上網時用的內網IP。同理,172.16.1.1也可以看作某一個子網的內網IP,如此逐漸往上層走,直到公網IP,也就是那40億個IP之一。而172.16.1.2、172.16.1.3、172.16.1.4,這些不直接相連的內網主機就形成,和路由器的172.16.1.1接口一起形成一個子網

是不是很熟悉,這就是校園網管理,一個路由器會管理它內網中的所有IP地址。可以看出,內網中的IP地址172.16.1.2、172.16.1.3、172.16.1.4有相同的前綴,即172.16.1.*,也就是32位IP地址中的前24位是相同的,因此,該內網中所有的IP地址表示為172.16.1.0/24。172.16.1.0/24表示了所有172.16.1.*形式的IP地址都在其子網內。

注:主機和路由器接口相連形成子網,這里的主機可以是另一個路由器的接口,也可以是主機

子網分配

有了子網的表示,那么接下來就是子網的分配,路由器接口的IP地址有限,分配的方式也就有限,需要根據子網的需求以及規模合理地分配IP地址。

網絡地址的分配策略稱為無類別域間路由選擇(CIDR)。也就是前面所說的172.16.1.0/24,一般化表示為a.b.c.d/x,其中IP地址a.b.c.d最高的x位構成網絡ID,其余的32-x位構成主機ID。網絡ID可以通過IP地址與子網掩碼進行與運算獲得,因此相同網絡ID的網絡設備都在一個子網內(和之前一個意思,只是換了網絡ID的說法而已)。這種組織方式也稱為地址聚合。我們常用的子網掩碼與IP地址進行與運算,可以得到子網的網絡ID。

x的不同被分為不同類別的IP地址,x取值為8,16,24分別被稱為A,B,C類IP地址。

子網通信

具有相同網絡ID的計算機可以直接通信,而具有不相同網絡ID的計算機需要經過一層或者多層路由,在路由轉發的時候,也只關心網絡ID,進而大大減少了轉發的長度。在通信時,使用地址的最長前綴匹配,即路由器會通知與目的地址擁有最長前綴匹配的IP。

源主機和目標主機通信時,由於其不知道目標主機的子網掩碼,只知道IP地址,因此,源主機會將IP地址與自己的子網掩碼進行與運算得到網絡ID,進而判斷是否在一個網段內,即網絡ID是否相同。

例如,A主機的IP地址為192.168.1.100/24,B主機的IP地址為192.168.2.100/16。A主機的網絡ID為192.168.1.0(子網掩碼255.255.255.0),B主機的網絡ID為192.168.0.0(子網掩碼255.255.0.0)。

A主機將B主機的192.168.2.100與255.255.255.0進行與運算后得到網絡ID為192.168.2.0,與A不在同一個網段,因此,主機A認為主機B不可達,將包發給路由器。

B主機將A主機的192.168.1.100與255.255.0.0進行與運算得到網絡ID為192.168.0.0,與B在同一個網段,因此,主機B認為主機A可達。

因此在內網中,B發出的包A可以收到,A發出的包B收不到。

子網主機數

子網設備個數可以通過網絡ID進行計算,例如172.16.1.0/24構成的子網,由於前24位構成的網絡ID是相同的,也就是子網中所有設備的IP地址前24位相同,因此,只有8位主機ID可以用來分配子網的設備,因此網絡中的設備數量為$2^8-2=254$台,這里2預留的有特殊用途的主機IP。因此,需要根據子網的規模以及需求合理地分配IP地址。

划分子網

當大的網絡a.b.c.d/x,要進行子網划分時,x位網絡ID要向32-x位的主機ID借位,即網絡ID位變多,主機ID位變少,減少了可用的IP。同理,合並子網時,主機ID向網絡ID借位。

公式總結:

  1. 主機數=2^主機ID位-2
  2. 網絡數=2^可變的網絡ID位
  3. 網絡ID=IP和netmask 相與
  4. 划分子網數=2^網絡ID向主機ID借的位數
  5. 划分子網損失IP數=2*(划分子網數-1)(因為每段子網中的第一個IP地址用來表示網絡位,而最后一個IP地址都被用來表示本網段中的廣播。)

舉個栗子

(1)172.17.0.100/26

網絡ID的位數為26,主機ID的位數為6

  1. 主機數=2^6-2=62
  2. 子網掩碼為26個1,即11111111.11111111.11111111.11000000,轉為十進制為255.255.255.192。
  3. 網絡ID為172.17.0.01(000000),即172.17.0.64

(2)110.110.244.100/22

  1. 子網掩碼為22個1,11111111.11111111.11111100.00000000,即255.255.252.0
  2. 主機數為:2^(32-22)-2=1022個
  3. 網絡ID的值為:110.110.244.0

(3)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,即10.100.222.100與子網掩碼做與運算

(4)172.200.249.200/22,划分16個子網

划分16個子網,網絡ID要向主機ID借4位(因為2^4=16)

  1. 每個子網的子網掩碼為26個1,即11111111.11111111.11111111.11000000,255.255.255.192
  2. 子網的主機數為:2^(32-26)-2=62
  3. 子網最小的網絡ID為(即借來的網絡ID位置處的子網掩碼全為0):11111111.11111111.11111100.00000000,即為172.200.248.0/26
  4. 最大的子網IP范圍為,即借來的網絡ID位置處的子網掩碼全為1,子網掩碼為11111111.11111111.11111111.11000000,網絡ID為172.200.249.192/26,對應的IP范圍為172.200.249.193-172.200.249.254,注意開頭的IP地址為193開始,最終到254。

(5)10.0.0.0/8 划分32子網,對第10個子網划分64個子網

對10.0.0.0/8划分32個子網,需要8位網絡ID借5位,即網絡ID為13位。由於第10個子網為10.72.0.0/13。(這里的72,即為借來的5位從00000開始依次加一加10次得到的01001,即IP地址第二段為01001000)。

因此,該問題等價於對10.72.0.0/13划分64個子網,即13位網絡位再向主機位借6位主機位。

  1. 子網掩碼為19個1,即11111111.11111111.11100000.00000000,即255.255.224.0
  2. 每個子網的主機數為:2^(32-19)-2=8190
  3. 最小的子網ID為:子網掩碼中借來的6位全為0,即11111111.11111000.00000000.00000000,該子網掩碼與10.72.0.0做與運算得到最小的網絡ID嗎,即為10.72.0.0
  4. 最大的IP地址范圍為,借來的網絡為的子網掩碼全為1,即11111111.11111111.11100000.00000000,最后一個子網的網絡ID為10.72.224.0/19,因此,IP地址范圍為10.72.224.1-10.72.255.254(注意可用IP的范圍)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM