什么是子網掩碼?
子網掩碼(Subnet Mask)是一種用于指明一個IP地址的哪些位標識的是主機所在的子網,以及哪些位標識的是主機的位掩碼。
去找公司運維問出口ip,得到答復說:XX.XX.XX.128/25 這個網段一百多個ip都是我們的ip內心:???100+的ip?這個25代表什么?應該是誤把255打成25了吧!恩,對的,應該是想說XX.XX.XX.128到XX.XX.XX.255這差不多有100多個的!!是問了問這個25是什么,運維大哥回答說這是子網掩碼。?????
我們可以將IP地址比作一個人的住址,其中包含了省、市、區和具體的門牌號信息。子網掩碼的作用就像是一個過濾器,它可以幫助計算機確定一個IP地址是否與本地網絡在同一個“市區”內。
以IPv4地址為例,其子網掩碼通常是一個32位的數字,其中前一部分為連續的1,后一部分為連續的0。例如,常見的子網掩碼有255.255.255.0、255.255.0.0、255.0.0.0等。其中,連續的1部分表示網絡地址,連續的0部分表示主機地址。
當計算機需要發送數據到另一個IP地址時,它會將目標IP地址和子網掩碼進行按位與運算。如果結果與自己所在的網絡地址相同,則說明目標IP地址在同一個本地網絡內;否則,說明目標IP地址在不同的網絡中,需要將數據發送到默認網關進行轉發。
子網掩碼不能單獨存在,必須結合IP地址一起使用。它的作用是將某個IP地址劃分成網絡地址和主機地址兩部分。子網掩碼是一個32位地址,用于屏蔽IP地址的一部分以區別網絡標識和主機標識,并說明該IP地址是在局域網上,還是在廣域網上。
在TCP/IP協議中,SUBNET MASK子網掩碼)的作用是用來區分網絡上的主機是否在同一網絡取段內。在大型網絡中,CLASS A的SUBNET MASK為255.0.0.0,CLASS B的SUBNET MASK為255.255.0.0,CLASS C的SUBNET MASK為255.255.255.0。
假設我們有一個192.168.1.1的IP地址,我們知道它的子網掩碼是255.255.255.0。這意味著前三個八位組(24位)是網絡部分,最后一個八位組(8位)是主機部分。因此,這個IP地址的網絡部分是192.168.1,主機部分是1。
如果我們有一個192.168.1.2的IP地址,它的子網掩碼也是255.255.255.0。這意味著它也在同一個網絡段上,因為它們的網絡部分(前三個八位組)相同。但是,這兩個IP地址的主機部分是不同的,因此它們指向網絡上的不同主機。
舉幾個例子,可以加深理解子網掩碼的用途。
例子1:假設有一個IP地址為192.168.1.100,它的子網掩碼為255.255.255.0。將這兩個數值進行“與”運算后,得到的結果是192.168.1.0,這就是該IP地址所屬的網絡地址。通過這種方式,可以將一個IP地址劃分成若干個子網,以便于網絡管理員進行管理和控制。
例子2:假設一個網絡中需要容納100臺主機,使用子網掩碼255.255.255.0可以將該網絡劃分成256個子網,每個子網最多包含254臺主機。這樣就可以更好地管理和控制網絡,提高網絡的性能和安全性。
例子3:如果一個IP地址的子網掩碼為255.0.0.0,說明它是A類IP地址。如果是255.255.0.0,則說明它是B類IP地址。如果是255.255.255.0,則說明它是C類IP地址。這些分類是依據子網掩碼來進行的,而不同類別的IP地址擁有不同的網絡標識和主機標識。
主機地址和網絡地址
網絡地址: 可以簡單理解我們平時常說的網段 主機地址: 是在這個網段中不同設備的地址
子網掩碼
子網掩碼的作用:將 IP 地址劃分成網絡地址和主機地址兩部分。
子網掩碼是一個網絡掩碼,地址掩碼,是用來指明 IP 地址的哪些標識是主機所在的子網,以及哪些標識是主機的位掩碼,子網掩碼不能單獨存在,必須和 IP 結合使用。
A類的默認子網掩碼 255.0.0.0
B類的默認子網掩碼 255.255.0.0
C類的默認子網掩碼 255.255.255.0
子網掩碼的計算方式
子網掩碼的位數決定可能的子網數目和子網的主機數目。
根據子網數
利用子網數來計算:在求子網掩碼之前必須先搞清楚要劃分的子網數目,以及每個子網內的所需主機數目。
將子網數目轉化為二進制來表示 2.取得該二進制的位數,為 N 3. 取得該IP地址的類子網掩碼,將其主機地址部分的前N位置1 即得出該IP地址劃分子網的子網掩碼。
如欲將B類IP地址168.195.0.0劃分成27個子網:
- 27=11011
- 該二進制為五位數,N = 5
- 將B類地址的子網掩碼255.255.0.0的主機地址前5位置1(B類地址的主機位包括后兩個字節,所以這里要把第三個字節的前5位置1),得到 255.255.248.0
根據主機數
利用主機數來計算:
- 將主機數目轉化為二進制來表示
- 如果主機數小于或等于254(注意去掉保留的兩個IP地址),則取得該主機的二進制位數,為 N,這里肯定N<8。如果大于254,則 N>8,這就是說主機地址將占據不止8位。
- 使用255.255.255.255來將該類IP地址的主機地址位數全部置1,然后從后向前的將N位全部置為 0,即為子網掩碼值。
如欲將B類IP地址168.195.0.0劃分成若干子網,每個子網內有主機700臺:
700=1010111100
該二進制為十位數,N = 10
將該B類地址的子網掩碼255.255.0.0的主機地址全部置1,得到255.255.255.255
然后再從后向前將后10位置0,即為:11111111.11111111.11111100.00000000,即255.255.252.0。這就是劃分成主機為700臺的B類IP地址168.195.0.0的子網掩碼。
如何根據子網掩碼計算網絡地址和主機標識,子網掩碼與IP地址一樣是32位地址,然后將IP地址與子網掩碼進行與運算即可得到網絡地址
舉個例子:
IP地址為192.168.10.2,子網掩碼為255.255.255.240。
先將十進制轉換成二進制:
IP地址:11000000 10101000 00001010 00000010
子網掩碼:11111111 11111111 11111111 11110000
進行與運算:--------------------------
11000000 10101000 00001010 00000000
則可得其網絡標識為192.168.10.0,主機標識為2。
XX.XX.XX.128/25
回到開頭的,已經說過了子網掩碼也是32位的地址,那么開頭的25怎么轉化呢?
25的意思是網絡號為25,就代表連續的25個1,然后剩下的用0補齊,即11111111 11111111 11111111 10000000:
- 主機號:主機號+網絡號=32,32-25=7
- 網絡地址:當7位主機號全為0,也就是XX.XX.XX.128
- 廣播地址:當7位主機號全為1,也就是XX.XX.XX.255
- 可用地址數量:7位主機號有2 ^ 7 種結果,但是要去掉網絡地址和廣播地址,即:2^7-2=126(這個也就是運維所說的一百多個ip)
總之,子網掩碼是一種非常重要的概念,它用于區分網絡上的主機是否在同一網絡段上。這在構建和維護大型網絡時非常有用,因為它可以幫助網絡管理員更有效地管理和跟蹤網絡上的主機和設備。