記住3個部分、2個地址,1個公式,你也能輕松劃分子網(wǎng)
概述
劃分子網(wǎng)是任何一個網(wǎng)絡(luò)工程師都必須掌握的基本技能,但由于在工作中經(jīng)常使用24位掩碼,在加上網(wǎng)絡(luò)上有很多小工具可以自動計算,所以很多小伙伴都已經(jīng)喪失了手工劃分子網(wǎng)的能力。但我們作為一個高手,還是要具備手工劃分子網(wǎng)能力的。
其實手工劃分子網(wǎng)并不復(fù)雜,只需要記住3個部分、2個地址、1個公式,就可以輕松的劃分子網(wǎng)。下面我們一起來看一下!
一、劃分子網(wǎng)原因
Classful地址
我們都知道IP地址分為A、B、C、D、E五類Classfull地址,但通常我們只使用A、B、C類地址來劃分子網(wǎng),因為D類地址用于組播,E類地址暫時保留不用。
如上圖所示,classful地址只包含兩部分:network和host。一個A類地址可以包含的主機有16,777,214 (2的24次方-2 )個,這要是分配給一個組織和公司,是極大的浪費,因為沒有公司能用完這么多地址。即使一個C類地址也包含254個可用的IP,這對于公網(wǎng)地址短缺的現(xiàn)狀,全部分配給一個公司仍然是太多了。
看到這里,有的小伙伴可能會說,在公司都是使用的是私有地址,隨便分配一個8網(wǎng)段的A類地址,就足夠整個公司使用,不存在地址不夠一說。那么這么想的小伙伴一定沒有注意另外2個問題:
問題1:網(wǎng)絡(luò)中的無用流量對帶寬的占用
我們知道,一臺主機為了和其它主機進行通信,會發(fā)送一些的報文,最典型的就是ARP報文。平??赡芪覀兏兄惶黠@,因為我們所在的網(wǎng)絡(luò)規(guī)模一般都很小。
但是假設(shè)網(wǎng)絡(luò)中有1萬臺主機,一臺主機發(fā)送的ARP報文,交換機會轉(zhuǎn)發(fā)給剩下的9999臺主機,交換機每秒需要發(fā)送9999個ARP報文。在極端情況下,所有的主機之間都互相通信,那么網(wǎng)絡(luò)帶寬很快就會被這些無用的流量占用滿的。
問題2:所有的PC都要處理其它PC發(fā)送的無用流量;
接上面的例子,一臺主機發(fā)送的ARP請求報文,只對于目標(biāo)主機是有用的,對于剩下的9998都是無用的,收到以后就會丟棄。但是這9998臺主機收到ARP報文以后,都需要處理,它要判斷這個ARP是否是請求自己的MAC地址,這也會消耗主機的資源。網(wǎng)絡(luò)規(guī)模越大,這種消耗越明顯,對電腦的運行速度影響也就會越大。
所以在工作中,在網(wǎng)絡(luò)規(guī)模比較小,幾臺PC怎么連都可以,不需要考慮劃分子網(wǎng)。但是在較大的網(wǎng)絡(luò)中,我們都是要劃分子網(wǎng)的,不會把所有的PC都分在同一個網(wǎng)段。
據(jù)我觀察,越是大型的公司,對子網(wǎng)劃分越嚴(yán)格要求,不浪費一個地址是他們追求的目標(biāo)。這就要求我們也要掌握劃分子網(wǎng)這項技能,后面咋們也是需要去大公司鍍金的,不能老是在小公司,對我們的職業(yè)生涯沒有好處。
二、劃分子網(wǎng)的3個部分,2個地址
1. 3個部分
上面我們已經(jīng)看到了,對于一個classful地址來說,它由二部分組成:network和host。
而劃分子網(wǎng)本質(zhì)是從host拿出一部分出來,作為network;拿出的這一部分network,我們稱它為subnet(子網(wǎng)),所以IP地址就變成了三部分:network、subnet、host,如下圖所示:
IP地址變成三部分
2. 2個地址
對于任何一個IP地址來說,都有兩個與它對應(yīng)的特殊IP地址,一個是網(wǎng)絡(luò)ID(network ID),一個是網(wǎng)絡(luò)廣播IP,這兩個地址是天生存在的。
例如對于192.168.1.10 255.255.255.0 這個地址來說,它的網(wǎng)絡(luò)ID是192.168.1.0,對應(yīng)的廣播地址是192.168.1.255。
對于上面這種24位的掩碼的地址來說,比較簡單,我們一眼就能看出,但是這個是怎么計算的呢?因為如果是稍微復(fù)雜的地址,我們就看不出來了,例如192.168.1.72 255.255.255.240,這個IP對應(yīng)的網(wǎng)絡(luò)ID和廣播地址各是多少呢?
3. 網(wǎng)絡(luò)ID計算
我先來看一下網(wǎng)絡(luò)ID的定義:用來唯一的標(biāo)識一個網(wǎng)段,所有在同一個網(wǎng)段上的主機使用相同的網(wǎng)絡(luò)。
計算網(wǎng)絡(luò)ID有多種方式,我教大家一種比較常用的方式,其步驟如下:
步驟1:首先把IP地址和子網(wǎng)掩碼的后8位都化為2進制,如下圖所示:
后8位化為2進制
步驟2:我們知道子網(wǎng)掩碼用來標(biāo)識一個IP地址的網(wǎng)絡(luò)ID長度的,使用1來表示,而使用0來表示主機;把掩碼和IP進行“相與”操作,就可以得到網(wǎng)絡(luò)ID了,如下圖所示:
想與操作
步驟3:上一步得到網(wǎng)絡(luò)ID的后8位是01000000,化為十進制是64,則這個IP對應(yīng)的網(wǎng)絡(luò)ID就是192.168.1.64
4. 廣播地址計算
廣播地址,這里說的廣播地址不是二層廣播MAC地址,而是三層廣播IP地址。三層廣播地址有什么用呢?也是用來在同一個網(wǎng)段群發(fā)報文的,所有在同一個網(wǎng)段的所有主機,收到三層IP廣播地址,都是不能丟棄的,需要處理。
一個網(wǎng)段的廣播地址,有比較簡單的計算方法,就是把所有的host位都置為1,如下圖所示:
主機位都置為1
這樣計算出來的廣播地址后8位值為79,則這個網(wǎng)段的廣播地址就為192.168.1.79
轉(zhuǎn)化為十進制
5. 一個公式
上面我們通過計算,已經(jīng)得到192.168.1.72 255.255.255.240 這個IP地址對應(yīng)的網(wǎng)絡(luò)ID和廣播地址,那么這個網(wǎng)段可以容納多個主機呢? 換句話說,有哪些地址是和這個IP在同一個網(wǎng)段里的呢?
其實很簡單,掐頭去尾,除去網(wǎng)絡(luò)ID和廣播地址,剩下的地址,都是在同一個網(wǎng)段,并且是可用的。
如上面的例子,去除了網(wǎng)絡(luò)ID 192.168.1.64,廣播地址192.168.1.79,剩下的14個IP地址192.168.65-78,都是可以使用的。
這里有一個簡單的公式來計算某個網(wǎng)段內(nèi)可用的IP地址個數(shù):2的n次方-2。
這里的n指的是這個網(wǎng)段內(nèi)的主機位數(shù),所以計算結(jié)果為:
計算主機數(shù)量的公式
6. 注意點:
一個IP的網(wǎng)絡(luò)ID和廣播地址是不能配置在設(shè)備上的,如果配置,就會出錯,如下圖所示:
網(wǎng)絡(luò)ID和廣播地址不能配置
順便說一下計算subnet的公式是:2的n次方。這里不需要減2,n指的是subnet的位數(shù),在這個例子中也是4,所有對于192.168.1.0 255.255.255.0 這個C類地址來說,被分為了2的4次方,即16個subnets。
三、前綴和掩碼換算
掩碼地址太長,寫起來太復(fù)雜,所有很多時候我們習(xí)慣使用前綴來表示子網(wǎng)掩碼,例如192.168.1.72 255.255.255.240,可以寫為192.168.1.72/28。那么掩碼和前綴之間是怎么換算的呢?請看下面的步驟:
步驟:1:把內(nèi)容轉(zhuǎn)化2進制,例如下圖
轉(zhuǎn)化為2進制
步驟2:前面的24位我們都知道是網(wǎng)絡(luò)位,在加上后面的子網(wǎng)位,就變成了最終的數(shù)字24+4=28;
反過來計算也一樣:192.168.1.72/28對應(yīng)的掩碼是多少?
步驟1:28表示掩碼的前面28位都是1,簡寫為:(位了簡潔,255沒有寫成11111111)
步驟
步驟2:計算掩碼:二進制11110000的值為240,所以掩碼就為255.255.255.240;
是不是很簡單?
四、劃分子網(wǎng)的影響
劃分子網(wǎng)除了可以節(jié)省帶寬和減少主機的負(fù)擔(dān)以為,也是有缺點的,最大的缺點就是網(wǎng)絡(luò)變的復(fù)雜了。
缺點1:看起來在同一個網(wǎng)段的IP,其實不是
有時你覺得這兩個相隔很近的地址,看起來像在同一個網(wǎng)段,其實不是。例如下面的:
192.168.1.78/28,192.168.1.81/28,在同一個網(wǎng)段嗎?
不是,它們是不能直接互通的!只有計算了以后才發(fā)現(xiàn)它們不在同一個網(wǎng)段,這就增加了維護網(wǎng)絡(luò)的復(fù)雜度!
缺點2:在不同的子網(wǎng)的主機直接要通信,必須要經(jīng)過網(wǎng)關(guān)
那這兩個主機(192.168.1.78/28,192.168.1.81/28)想要通信,需要怎么辦呢?中間必須加一臺網(wǎng)關(guān)設(shè)備,這就增加了開銷!
五、總結(jié)
從上面的例子中我們可以看出,網(wǎng)絡(luò)IP地址必須要和掩碼結(jié)合起來才有意義,不然你不能判斷它到底是屬于哪個網(wǎng)段,例如192.168.1.72這個地址,如果掩碼不同,所在網(wǎng)段也不同!
我們還可以總結(jié)出:
- 網(wǎng)絡(luò)ID的計算是IP地址和子網(wǎng)相與的結(jié)果
- 可用的IP地址需要去除網(wǎng)絡(luò)ID和廣播地址
- 計算可用IP地址有一個簡單公式:2的n次方-2,n指的是主機位數(shù)
- 計算IP地址被劃分為多少給subnet,也有一個簡單公式:2的n次方,n指的是子網(wǎng)位數(shù)
- 子網(wǎng)掩碼和前綴之間轉(zhuǎn)換,把它們都轉(zhuǎn)換為二進制然后換算,就非常簡單了