子網掩碼(Subnet Mask)又叫網絡掩碼、地址掩碼,是計算機網絡中的一個重要概念。根據RFC950定義,子網掩碼是一個 32 位的 2 進制數,用于表示網絡地址和主機地址,其對應網絡地址的所有位都置為 1,對應于主機地址的所有位都置為 0。
子網掩碼有多種表示方法,包括二進制(如255.255.255.0)、十進制(點分表示法)和CIDR表示法(如“/24”),它們用于明確指定IP地址中的網絡和主機部分。這些表示方法在不同的網絡環境中使用,提供了不同層次的精確性和靈活性。
子網掩碼必須配合IP地址一起使用,可以確定 IP 地址的網絡部分和主機部分,以幫助網絡設備識別本地網絡和遠程網絡,從而實現以下功能:確定網絡地址、廣播地址、區分本地和遠程網絡、支持子網劃分,并確保數據在網絡中正確傳輸和路由。
發展歷程
在早期網絡設計階段,即20世紀60年代到80年代初,子網掩碼的概念尚未引入,網絡設計采用了基本的網絡拓撲和地址分配方式。在這個時期,IPv4地址分配采用了類別地址方案,將 IP 地址劃分為A類、B類、C類、D類和E類,這限制了網絡的靈活性,導致了地址浪費和不均勻的資源分配。因此需要引入子網掩碼來合理的分配有限的互聯網資源。
20世紀80年代,子網掩碼的引入賦予了網絡更大的靈活性和管理能力,讓網絡管理員可以更細致地劃分 IP 地址,從而更有效地利用網絡資源。子網掩碼的概念將IP地址劃分為網絡地址部分和主機地址部分,通過二進制中的"1"和"0"的組合來界定。這一演進允許網絡管理員根據需求創建更小的子網,增強了網絡設計的靈活性,適應了不同規模和需求的網絡。此外,子網掩碼的配置和使用有助于降低地址資源浪費,增強網絡的安全性和隔離性。
在20世紀90年代,CIDR(無類別域間路由)的推出標志著網絡技術的一項重大進步。這時期子網掩碼的發展進入了一個新階段,以應對早期互聯網中的IP地址分配和路由表管理問題。傳統的類別地址劃分方式(A類、B類、C類)導致了IP地址浪費和龐大的路由表,因為每個組織都獲得了固定大小的地址空間,無論實際需求如何。CIDR引入了可變長度子網掩碼(VLSM),允許根據需求分配可變數量的地址,從而更高效地利用地址空間。CIDR的斜線表示法(例如,/24)指定子網掩碼的長度,使網絡管理員能夠更靈活地劃分IP地址。這一創新減小了路由表的規模,提高了網絡性能,簡化了路由器配置,成為現代互聯網基礎設施中不可或缺的一部分。CIDR的出現對網絡的規模和效率產生了深遠影響,促使網絡架構朝著更加靈活和高效的方向發展。
2019年IPv4資源的耗盡標志著互聯網的迅猛發展帶來的挑戰。這一事件促使了IPv6的引入。IPv6采用了128位的地址空間,為互聯網提供了廣泛的地址空間,以滿足未來需求。IPv6沒有子網掩碼的概念,支持前綴長度的配置,允許網絡管理員更好地劃分地址塊。這不僅解決了IPv4資源枯竭問題,還為未來的網絡增長提供了可持續性。目前IPv6的使用更多是通過IPv4轉IPv6隧道通信技術來使用的,因此,IPv6取代IPv4還是需要很長的時間,目前子網掩碼的存在仍具有重要意義。
子網掩碼的表示
點分十進制表示
這是最常見的子網掩碼表示方法。它使用四個十進制數字,每個數字的范圍在0到255之間,表示子網掩碼的四個8位組成部分。
將二進制數轉換為十進制數的方法是將每個二進制位與其對應的權值相乘,然后將結果相加。例如,二進制數11011010轉換為十進制數為218。
例如子網掩碼二進制11111111.11111111.11111111.00000000,表示為255.255.255.0
CIDR斜線記法
CIDR(無類別域間路由)表示法的形式通常是IP地址后面跟斜線和數字,數字表示子網掩碼網絡標識部分的位數,也就是表示這32位數字中有多少位數為1。在傳統的 IP 地址分配中,IP 地址通常分為類別(Class),例如 A 類、B 類、C 類等,每個類別擁有固定數量的主機和網絡地址。但是,CIDR 引入了一種更靈活的方法,它不再依賴于固定的類別,而是允許網絡管理員根據需要分配任意數量的地址。
例1:192.168.1.100/24,其子網掩碼表示為255.255.255.0,二進制表示為11111111.11111111.11111111.00000000,前24位為1。
例2:172.16.198.12/20,其子網掩碼表示為255.255.240.0,二進制表示為11111111.11111111.11110000.00000000,前20位為1。
CIDR表示法更靈活,允許更精確地表示子網掩碼的長度。
子網掩碼的原理
子網掩碼地址劃分的原理
子網掩碼在IPv4網絡中的工作原理是通過將32位的IP地址與相應的32位子網掩碼進行逐位邏輯與運算,將IP地址分割成兩部分:網絡部分和主機部分。子網掩碼中的"1"位與IP地址中的對應位相與,將生成網絡標識部分,而子網掩碼中的"0"位與IP地址中的對應位相與將生成主機標識部分。
與運算是計算機中一種基本的邏輯運算方式,符號表示為&,也可以表示為 and。參加運算的兩個數據,按二進制位進行“與”運算。運算規則:0&0=0;0&1=0;1&0=0;1&1=1;即:兩位同時為“1”,結果才為“1”,否則為0。
例如,對于IP地址192.168.10.11和子網掩碼255.255.255.0,通過與運算,得到的網絡地址是192.168.10.0,這表示該IP地址屬于192.168.10.0這個網絡,而主機地址部分是11,即這個網絡中的第11臺主機。
子網掩碼劃分子網的原理
子網劃分是通過借用IP地址的若干位主機位來充當子網地址從而將原網絡劃分為若干子網而實現的。劃分子網時,隨著子網地址借用主機位數的增多,子網的數目隨之增加,而每個子網中的可用主機數逐漸減少。
子網劃分的方法:
例如:對B類網絡135.41.0.0/16需要劃分為20個能容納200臺主機的網絡。
因為2^4<20<2^5,所以子網位需要占用5個主機位就可以分成32個子網,滿足20個子網的要求。
B類網絡的默認子網掩碼為255.255.0.0,二進制形式為11111111.11111111.00000000.00000000,子網位占用了5位主機位,所以劃分子網后的子網掩碼為:11111111.11111111.11111000.00000000,十進制為:255.255.248.0。
如果以此劃分子網,主機位還有11位,可以分配的主機ID有2^11=2048,去掉主機位全0和全1的情況,還有2046個主機ID分配,但是目前只需要200個主機,會造成大量的資源浪費,為了更有效地利用資源我們也可以根據子網所需主機數來劃分子網,還以上例來說2^7<200<2^8,也就是說"在B類網絡的16位主機位中,保留8位主機位,其它的8位當成子網位。
B類網絡135.41.0.0劃分成256個能容納254臺主機的子網。此時的子網掩碼為11111111.11111111.11111111.00000000,轉換為十進制為 255.255.255.0。
子網掩碼的分類
缺省子網掩碼
也叫默認子網掩碼,即未劃分子網,對應的網絡號的位都置 1,主機號都置 0。
未做子網劃分的IP地址:網絡號+主機號
A類網絡缺省子網掩碼:二進制為11111111.00000000.00000000.00000000,十進制為255.0.0.0,用CIDR表示為/8。
B類網絡缺省子網掩碼: 255.255.0.0,用CIDR表示為/16
C類網絡缺省子網掩碼: 255.255.255.0,用CIDR表示為/24
不同類別的網絡(A、B、C)分別適用于大型組織和互聯網服務提供商、中等規模組織,以及小型組織和家庭網絡,根據其默認子網掩碼的大小和可用IP地址數量來滿足不同規模和需求的網絡。
自定義子網掩碼
自定義子網掩碼是將一個網絡劃分為幾個子網,需要每一段使用不同的網絡號或子網號,實際上可以認為是將主機號分為兩個部分:子網號、子網主機號。形式如下:
未做子網劃分的IP地址:網絡號+主機號
做子網劃分后的IP地址:網絡號+子網號+子網主機號
也就是說IP地址在劃分子網后,以前的主機號位置的一部分給了子網號,余下的是子網主機號。子網掩碼是32位二進制數,它的子網主機標識用部分為全“0”。利用子網掩碼可以判斷兩臺主機是否在同一子網中。若兩臺主機的IP地址分別與它們的子網掩碼相“與”后的結果相同,則說明這兩臺主機在同一子網中。
如:192.168.1.100/25,其子網掩碼表示:255.255.255.128,意思就是將192.168.1.0這個網段的主機位的最高1位劃分為了子網。
子網掩碼的功能
劃分子網
子網掩碼允許將大的IP地址空間劃分為多個較小的子網。這有助于組織和管理網絡資源,減少網絡上的通信量,節省IP地址,便于管理。使用子網掩碼劃分子網后,子網內可以通信,跨子網不能通信,子網間通信應該使用路由器,并正確配置靜態路由信息。例如,某學校內部的校園網或者某公司內部的網絡,都屬于是一個子網。
劃分網絡和主機、路由和數據轉發
子網掩碼的核心功能是將一個IP地址劃分為兩部分,即網絡標識和主機標識。它通過與IP地址進行按位與運算(例如IP地址192.168.1.1與子網掩碼255.255.255.0進行按位與運算,得到網絡地址192.168.1.0,主機地址0.0.0.1),將IP地址分解為網絡標識和主機標識,從而能夠精確識別設備所屬的網絡以及設備本身。
這種劃分網絡和主機的機制為路由和數據轉發提供了關鍵的基礎。通過子網掩碼的運用,網絡設備能夠精確定位數據包的目標網絡,從而使數據包能夠被有效地引導至其正確的目的地,從而確保了網絡通信的高效運行。
VLSM可變長子網掩碼
VLSM(Variable-Length Subnet Masks,可變長子網掩碼)規定了在一個有類(A、B、C類)網絡內包含多個子網掩碼的能力,以及對一個子網的再進行子網劃分的能力。VLSM技術打破傳統的以類(class)為標準的地址劃分方法,是為了緩解IP地址緊缺而產生的。他的作用是節約IP地址空間;減少路由表大小。
舉一個例子說明:在有類網絡中,每個32位的IP地址分為網絡號和主機號兩部分。當網絡號為24位時,主機號為8位,只能有2^8=256個地址,實際上只有254個用于主機。這對多數企業來說太少。而當網絡號為16位時,主機號為16位,就會有2^16=65536個地址,對多數公司來說太多。這樣的設計容易造成IP地址的浪費。VLSM則有效的解決了IP資源浪費的問題。
IPv6和子網掩碼
在IPv6中,是沒有子網掩碼的概念的,相比 IPv4的地址空間而言,IPv6可以提供2^128個地址空間,幾乎不會被耗盡,可以滿足未來網絡的任何應用,因此不太需要子網,自然沒有子網掩碼的概念。
一個IPv6地址可以分為如下兩部分:
目前(2023年)IPv6的使用更多是通過IPv4轉IPv6隧道通信技術來使用的,因此,IPv6取代IPv4還是需要很長的時間,目前子網掩碼的存在仍具有重要意義。
參考資料 >
IPv4 地址終于用完了,會有什么影響?-36氪.36氪.2023-10-15