參考:https://blog.51cto.com/u_6930123/2112748
自己總結:
子網掩碼:實際區分,網絡位和主機位
主機位全0,表示本網絡的網絡地址,主機位全1,表示本網絡的廣播地址。
計算主機數=子網掩碼位為0的個數的2次方-2(-2是保留兩個地址,全0和全1),子網掩碼位為1是子網的長度和子網號
192.168.1.1/24掩碼位24為24個1(連續的24個1,子網掩碼的1的位不能不連續)
192.168.1.1/30掩碼位30為30個1 (后面兩個0),主機位為2的2次方,去掉兩個保留地址(全0,全1),主機最大個數為2兩個。
在學習掌握了前面的《進制計數》《IP地址詳解》這兩部分知識后,要學習子網划分,首先就要必須知道子網掩碼,只有掌握了子網掩碼這部分內容,才能很好的理解和划分子網。
一、子網掩碼
IP地址是以網絡號和主機號來標示網絡上的主機的,我們把網絡號相同的主機稱之為本地網絡,網絡號不相同的主機稱之為遠程網絡主機,本地網絡中的主機可以直接相互通信;遠程網絡中的主機要相互通信必須通過本地網關(Gateway)來傳遞轉發數據。
1、子網掩碼的概念及作用
①、子網掩碼(Subnet Mask)又叫網絡掩碼、地址掩碼,必須結合IP地址一起對應使用。
②、只有通過子網掩碼,才能表明一台主機所在的子網與其他子網的關系,使網絡正常工作。
③、子網掩碼和IP地址做“與”運算,分離出IP地址中的網絡地址和主機地址,用於判斷該IP地址是在本地網絡上,還是在遠程網絡網上。
④、子網掩碼還用於將網絡進一步划分為若干子網,以避免主機過多而擁堵或過少而IP浪費。
2、子網掩碼的組成
①、同IP地址一樣,子網掩碼是由長度為32位二進制數組成的一個地址。
②、子網掩碼32位與IP地址32位相對應,IP地址如果某位是網絡地址,則子網掩碼為1,否則為0。
③、舉個栗子:如:11111111.11111111.11111111.00000000
注:左邊連續的1的個數代表網絡號的長度,(使用時必須是連續的,理論上也可以不連續),右邊連續的0的個數代表主機號的長度。
3、子網掩碼的表示方法
①、點分十進制表示法
二進制轉換十進制,每8位用點號隔開
例如:子網掩碼二進制11111111.11111111.11111111.00000000,表示為255.255.255.0
②、CIDR斜線記法
IP地址/n
例1:192.168.1.100/24,其子網掩碼表示為255.255.255.0,二進制表示為11111111.11111111.11111111.00000000
例2:172.16.198.12/20,其子網掩碼表示為255.255.240.0,二進制表示為11111111.11111111.11110000.00000000
不難發現,例1中共有24個1,例2中共有20個1,所以n是這么來的。運營商ISP常用這樣的方法給客戶分配IP地址。
注:n為1到32的數字,表示子網掩碼中網絡號的長度,通過n的個數確定子網的主機數=2^(32-n)-2(-2的原因:主機位全為0時表示本網絡的網絡地址,主機位全為1時表示本網絡的廣播地址,這是兩個特殊地址)。
4、為什么要使用子網掩碼?
前面說道,子網掩碼可以分離出IP地址中的網絡地址和主機地址,那為什么要分離呢?因為兩台主機要通信,首先要判斷是否處於同一網段,即網絡地址是否相同。如果相同,那么可以把數據包直接發送到目標主機,否則就需要路由網關將數據包轉發送到目的地。
可以這么簡單的理解:A主機要與B主機通信,A和B各自的IP地址與A主機的子網掩碼進行And與運算,看得出的結果:
1、結果如果相同,則說明這兩台主機是處於同一個網段,這樣A可以通過ARP廣播發現B的MAC地址,B也可以發現A的MAC地址來實現正常通信。
2、如果結果不同,ARP廣播會在本地網關終結,這時候A會把發給B的數據包先發給本地網關,網關再根據B主機的IP地址來查詢路由表,再將數據包繼續傳遞轉發,最終送達到目的地B。
計算機的網關(Gateway)就是到其他網段的出口,也就是路由器接口IP地址。路由器接口使用的IP地址可以是本網段中任何一個地址,不過通常使用該網段的第一個可用的地址或最后一個可用的地址,這是為了盡可能避免和本網段中的主機地址沖突。
在如下拓撲圖示例中,A與B,C與D,都可以直接相互通信(都是屬於各自同一網段,不用經過路由器),但是A與C,A與D,B與C,B與D它們之間不屬於同一網段,所以它們通信是要經過本地網關,然后路由器根據對方IP地址,在路由表中查找恰好有匹配到對方IP地址的直連路由,於是從另一邊網關接口轉發出去實現互連。
5、子網掩碼的分類
①、缺省子網掩碼
也叫默認子網掩碼,即未划分子網,對應的網絡號的位都置 1 ,主機號都置 0 。
未做子網划分的IP地址:網絡號+主機號
A類網絡缺省子網掩碼: 255.0.0.0,用CIDR表示為/8
B類網絡缺省子網掩碼: 255.255.0.0,用CIDR表示為/16
C類網絡缺省子網掩碼: 255.255.255.0,用CIDR表示為/24
②、自定義子網掩碼
將一個網絡划分子網后,把原本的主機號位置的一部分給了子網號,余下的才是給了子網的主機號。其形式如下:
做子網划分后的IP地址:網絡號+子網號+子網主機號
舉個栗子:
如:192.168.1.100/25,其子網掩碼表示:255.255.255.128
意思就是將192.168.1.0這個網段的主機位的最高1位划分為了子網。關於子網划分將在下篇文章講到,這里不在闡述。
6、子網掩碼和IP地址的關系
子網掩碼是用來判斷任意兩台主機的IP地址是否屬於同一網絡的依據,就是拿雙方主機的IP地址和自己主機的子網掩碼做與運算,如結果為同一網絡,就可以直接通信。
And按位與運算:
與運算是計算機中一種基本的邏輯運算方式,符號表示為&,也可以表示為 and。
參加運算的兩個數據,按二進制位進行“與”運算。
運算規則:0&0=0;0&1=0;1&0=0;1&1=1;
即:兩位同時為“1”,結果才為“1”,否則為0
如何根據IP地址和子網掩碼,計算網絡地址:
①、將IP地址與子網掩碼轉換成二進制數。
②、將二進制形式的 IP 地址與子網掩碼做“與”運算。
③、將得出的結果轉化為十進制,便得到網絡地址。
如下圖:
**網絡地址計算小技巧:**IP地址和子網掩碼做與運算,把IP地址的主機位直接歸0,就快速得到網絡地址。所以只要一看到IP地址和子網掩碼,就能馬上確認網絡地址。
二、CIDR與VLSM
理解和掌握了子網掩碼這部分知識后,這里要補充下CIDR和VLSM,這對於我們下篇講述的子網划分,簡直了就是放大招啊!
1、有類和無類網絡,超網和子網
,我們先了解這幾個概念,對於CIDR和VLSM以及子網划分都是很有用的。
◆ 有類網絡:也叫主類網絡或標准網絡,就是指把IP地址能歸結到的A類、B類、C類IP,使用的是標准的默認子網掩碼。
◆ 無類網絡:相對於有類網絡,無類網絡IP地址的掩碼是變長的。在有類網絡的基礎上,拿出一部分主機ID作為子網ID。
◆ 超網:把多個小網絡組合成一個大網絡,稱為超網(SuperNetting),也可以說子網掩碼長度小於相對應的有類網絡的叫超網。
◆ 子網:有類網絡划分成更小后的網絡,稱為子網(Subnet),也可以說子網掩碼長度大於相對應的有類網絡的叫子網。
2、CIDR無類別域間路由
CIDR(Classless Inter-Domain Routing,無類別域間路由)本質是消除了傳統的A類、B類和C類地址以及划分子網的概念,將多個地址塊聚合在一起生成一個更大的網絡,從而包含更多的主機。
CIDR采用8-30位可變網絡ID(最大可用的只能為30位,即保留2位給主機位),而不是A、B、C類網絡ID所用的固定的8、16和24位。
CIDR表示方法:IP地址/n,n表示IP地址中的前n位代表網絡部分(n個二進制數1),其余(32-n)位代表主機部分。這種方法稱為“斜線記法”,它又稱為CIDR記法。
舉個栗子:子網掩碼255.255.255.192,用CIDR表示是多少呢?
①、首先確認的是這是個C類網絡地址(C類的默認子網掩碼為255.255.255.0)
②、前面三個字節都是255,轉換成二進制都為1,即11111111.11111111.11111111,即24位1。
③、后面一個字節是192,轉換成二進制為11000000,即1占用了2位。
④、子網掩碼共占用了26位1,所以用CIDR表示為/26。
⑤、如果網絡地址為192.168.10.0,再加上CIDR,最后表示為192.168.10.0/26。
CIDR支持路由聚合,能夠將路由表中的許多路由條目合並為成更少的數目,因此可以限制路由器中路由表的增大,減少路由通告,減輕路由器的負擔。
3、VLSM可變長子網掩碼
VLSM(Variable Length Subnet Mask,可變長子網掩碼)規定了在一個有類(A、B、C類)網絡內包含多個子網掩碼的能力,以及對一個子網的再進行子網划分的能力。
每一個IP地址都包含了2部分:網絡號和主機號。在有類網絡中,32bit的IP地址被分為4段,每段8bit來表示。這使得作為網絡號的前綴必須是8位,16位或者24位。當網絡號是24位的時候,主機號只有8位,也就是說,可分配的最小的地址塊是256個(2^8=256,而實際可分配的主機地址還要減去兩個,一個是網絡地址,一個是廣播地址,最后為254個),這個數量對於大多數企業來說是不夠的。
而比這個大一點的IP地址塊是網絡號為16位的時候,這個時候可分配的地址塊是65536(2^16=65536),這個數量對於大多數公司又太多了。這導致無論公司選擇哪種類型的網絡,都可能對IP地址造成大量的浪費。
IP地址如果只使用有類(A、B、C類)來划分,會造成大量的浪費或者不夠用。VLSM的誕生有效的解決了這個問題,可以在有類網絡的基礎上,通過對IP地址的主機號進行再划分,把一部分划入網絡號,就能划分各種類型大小的網絡了。網絡號也不再僅局限在8、16和24位這幾個數,而是靈活變化的大小了。
4、CIDR與VLSM的區別
在使用CIDR聚合地址時,將原來有類IP地址中的網絡位划出一部分作為主機位使用。
在使用VLSM划分子網時,將原來有類IP地址中的主機位按照需要划出一部分作為網絡位使用。
CIDR:子網掩碼往左邊移,掩碼netmask縮短了。
VLSM:子網掩碼往右邊移,掩碼netmask增長了。
CIDR是把幾個有類網絡合成一個大的網絡(超網),用於路由地址聚合。
VLSM是把一個有類網絡分成幾個小型網絡(子網),用於更高效划分子網。
CIDR與VLSM總結:
在某種程度上來說,CIDR和VLSM它們之間可以看做是逆過程。
CIDR是把幾個小網絡聚合成一個大網絡來做表示,而VLSM則是把一個大網絡繼續細分為幾個小網絡進行IP地址分配。
CIDR能讓路由器的路由條目得到有效的減少,從而減少路由通告,降低路由器負擔,而VLSM則是充分利用IP進行地址分配來解決IP地址不被浪費的問題,節約IP地址空間,更為有效的使用。