隨著網路設計日趨複雜,子網路數量大幅增加,路由器的路由表資料量也將急速暴增,此一現象將導致比對路由路徑的速度變慢。其中的關鍵在於如何減少路由表資料的數量,以下將說明相關技術以資因應。
路由器中儲存路由路徑的地方是路由表(Routing Table),而路由路徑(Routing Path)指的是路由器傳送網路封包的網路路徑,路由器會依照這樣的資訊決定如何傳送封包到目的地端。
當路由器的路由表資料數量迅速增加時,首當其衝可能就在於比對路由路徑的速度。因此,如何減少路由表資料的數量非常重要。針對這個問題,本文將介紹Cisco路由器設備如何減少路由表資料的數量,其重點技術就是路由匯總(Route Summarization)。首先,從網路遮罩與子網路相關知識開始做介紹,因為這些是路由匯總的基本知識,接著說明路由匯總如何運作以及減少路由表資料數量。
網路遮罩與子網路相關知識
在開始介紹多變長度子網路遮罩之前,一定要先說明基本的網路遮罩與子網路相關的知識,以及這些知識與IP分配的關係。如果這些都不明白的話,應該很難了解多變長度子網路遮罩。
網路遮罩表示法
首先,必須了解一般對網路遮罩的寫法,例如:
很多讀者應該會常常看到上面這樣的表示法,上面的表示法代表網路位址是172.16.0.0,而後面的16代表「網路遮罩的二進位表示法中,前面16個數字為1」(編按:上句原本誤寫為「最後16個數字為0」現已更正),因此以上的表示法是用來敘述這樣一個子網路環境。
而如果把網路遮罩用二進位來表示,就是相當於下面這樣的表示方式:
前面16個都是1(編按:上句原本誤寫為「最後16個都是0」現已更正),倘若把這樣的網路遮罩轉換成10進位,也就是說,網路遮罩為255.255.0.0,因此16所代表的是網路遮罩。
網路位址與主機位址
還有另一個要注意的基本知識:網路位址(Network address)與主機位址(Host address),以上面的子網路來說明:
假設有個IP位址172.16.32.4是位於這個子網路中,那麼網路位址就是172.16.0.0,而主機位址即為172.16.32.4,而廣播位址就是把後面主機位址的部分,在二進位的表示法中都為1,若把172.16.0.0轉成二進位表示,如下列所示:
因為知道遮罩數目為16,所以從後面數過來16個數字都是屬於主機位址可分配的部分,所以這個網路的廣播位址就只要把這些主機位址可分配的部分都設定為1即可,也就是:
如果轉成十進位,就是172.16.255.255。
子網路中所能使用的IP數量
網路遮罩的用途是,它能表示這個網路或子網路中可以使用的IP位址有多少,這是最基本的用途。
從上面這個例子來看,由於網路遮罩是255.255.0.0,所以從二進位來看,它就是:
代表在分配IP位址時,前面16個數字不能變動,只有後面16個數字能夠變動,而前面不能變動的部分就是使用網路位址的部分。現在來看網路位址,在上面的範例中,網路位址是172.16.0.0,轉成二進位就是:
而能夠分配的IP位址如下:
轉成十進位的話,代表可使用的IP位址範圍為172.16.0.1到172.16.255.254。
所以這個子網路中可以使用的IP數量為2的16次方減2,也就是216-2=65534個IP位址。減去兩個的部分後,分別是172.16.0.0和172.16.255.255這兩個IP位址,為什麼這兩個要減去呢?因為172.16.0.0已經被拿來使用成這個子網路的網路位址,而172.16.255.255則是廣播位址,不能分配成一般IP位址使用。現在大家對於IP位址分配應該已經有初步的概念了。
為什麼要有多變長度子網路遮罩?
一般而言,在切割子網路時,子網路遮罩都是切成類似255.255.255.0或255.255.0.0這樣的數字,不過,這樣切割的話,雖然很容易使用,但可能會造成IP的浪費,因為不見得每個子網路之中的IP使用量都是相同的。