隨著網路設計日趨複雜,子網路數量大幅增加,路由器的路由表資料量也將急速暴增,此一現象將導致比對路由路徑的速度變慢。其中的關鍵在於如何減少路由表資料的數量,以下將說明相關技術以資因應。
就拿以上的範例來說,可以看到上面的子網路分配出65,534個IP位址,這也太多了吧?就算說使用255.255.255.0這樣的網路遮罩,那子網路中的IP位址個數也有254個,也是不少。
假設有一個公司要為行政部門分配出20個IP位址,而要為開發部門分配出100個IP位址,則此時變成有兩個子網路在使用,而每個子網路的網路遮罩都是255.255.255.0,也就是每個子網路都可以分配254個IP位址,如此一來,就已經浪費掉(254-20)+(254-100)個IP位址。如果大家都這樣使用的話,那還得了?就因為如此,才有多變長度子網路遮罩的出現。接下來說明何謂多變長度子網路遮罩。
多變長度子網路遮罩介紹
多變長度子網路遮罩英文全稱是Variable-Length Subnet Mask,簡稱VLSM,是用來讓不同長度、不同層級的子網路能在同一個網路中存在並且運作,所以也就是說,多變長度子網路遮罩可以讓網路中的IP位址分配更加彈性化,也能夠使可用的IP位址個數增加。
如何計算多變長度子網路遮罩?
舉個例子來說明如何計算多變長度子網路遮罩,可能比較容易理解,假設有一個子網路是:
而現在,想分割一個子網路可以容納10台機器所使用,也就是要可以分配10個IP位址。而由一開始對網路遮罩的介紹,可以算出172.16.32.0/20總共可以分配出的IP位址個數為:
如果直接把172.16.32.0/20這個子網路拿來給這10個IP位址所使用,實在是太浪費了!因為只用10個IP位址,其他4,084個IP位址都沒有用到。若是使用多變長度子網路遮罩,則可以把172.16.32.0/20子網路分割成172.16.32.0/28,如此一來,可以得到下列這些子網路:
在這裡,把位址的最後兩個數字用二進位表示,這樣較容易計算,其中,172.16的部分算是網路位址,而172.16.0010算是子網路的部分,至於172.16.00100000.0001這部分就已結合了多變長度子網路遮罩,而最後四個位元則是用來分配IP位址給主機用。
所以,這樣分配之後,172.16.32.0/20一共可以分成256個多變長度子網路,256的計算方式如下:
另外,每一個多變長度子網路皆可分配14個IP位址,其計算方式如下:
剛好符合原本的需求:「分割一個子網路來分配10個IP位址」。這樣分割之後,只會浪費4個IP位址,和原本會浪費四千多個IP位址比較起來,真的相差太多了!
多變長度子網路遮罩的好處
由上面的例子可以看出多變長度子網路遮罩的能力與使用的方法,因此,能夠歸納出以下幾個多變長度子網路遮罩的優點:
1. 更有效地使用IP位址
從上面的範例就可看出,分割子網路時,所能浪費的IP位址數量可藉由多變長度子網路遮罩而大量地減少。
2. 可達到更好的路由匯總功能
多變長度子網路遮罩讓IP分配更有階層式架構的感覺,舉剛剛的例子來說,原本子網路的部分為172.16.32.0/20,但是透過多變長度子網路遮罩可以再次分成172.16.32.0/28、172.16.32.32/28等等子網路,因此多變長度子網路等於是從原本的子網路再次切割出來。而這種情況在路由表格中可以達到更好的路由匯總功能(Route Summarization)。
3. 能有效減少其他路由器的路由更新次數
如果路由匯總功能被使用在大型或是比較複雜的網路架構中,則在某個子網路底下有某網路連結有狀況上的改變時,也不會影響其他網段的路由器。舉例來說,假設在172.16.32.0/28中有一個網路連線不穩定,則因為有使用路由匯總功能,所以對其他網段的路由器來說,根本不用考慮到如此詳盡的資料,也就是說,其他路由器並不需要做相對應頻繁的路由資料更新動作。
使用多變長度子網路遮罩來規劃IP位址
現在用另一個例子說明多變長度子網路遮罩如何讓網路管理人員更有效地規劃IP位址,假設分配到的網段如下所示:
目前打算分配給四個不同的部門,每個部門都有自己的網段,而每個部門的IP位址個數要55個。每個部門必須有一個路由器負責連接到公司要連到外部WAN網路的路由器上,這之間的IP位址也必須在規劃之中。
先大略思考一下可能的網路架構圖應該是如何。因為要分配四個網段,而每個網段會有一個路由器必須連接到公司要連到外部WAN網路的路由器上(這是當然的,不然這些部門的機器就無法連出網路),因此網路架構圖應該如下圖所示:
而各網段的IP位址都還沒有填上去,這就是現在要做的工作。在這裡,要規劃的IP位址部分包含:
由於每個部門都要規劃55個IP位址,所以下一個步驟必須決定多變長度子網路遮罩要用多少。底下整理出常用不同的遮罩長度與所能分配的IP位址個數一覽表,讓讀者有個查找的依據: