對於網路設計師而言,構造乙個執行良好的網路要面臨很多挑戰。在乙個大型的,層次的,可伸縮的網路中,乙個精心規劃的ip位址分配策略和適時的路由聚合是至關重要的。
傳統的網路建立在有類別位址的基礎上(a,b,c類位址)。早期的路由協議,如ripv1,igrp出於節省頻寬的考慮,在路由更新時不傳送子網掩碼資訊,因此在網路資訊傳輸時需要對子網掩碼做一些假設。
1.如果路由器接收埠配置的ip位址和路由更新中傳送的子網資訊有 相同的主類別網路,則該子網使用接收埠的掩碼配置。
2.如果傳送的子網資訊穿越不同主類別網路邊界,則傳送路由器自動在主類別網路邊界執行路由聚合,並只傳送經過聚合的路由。
如圖2,路由器b的s0埠在10.2.0.0/24子網,即/24位掩碼,由於從a傳遞的10.1.0.0子網要使用接收埠的掩碼配置,因此也會使用/24位掩碼,從而產生了一條錯誤的路由記錄,這將導致某些經過b去往10.1.0.0/16的流量將無法到達。為了避免上述情況,必須約定,同主類別網路的子網必須使用相同的掩碼。新約定又帶來了新問題,即同主網路下位址無法有效的分配。
如圖3,假如某區域網上使用了27位的掩碼,則每個子網可以支援30臺主機(2^5-2=30);而對於wan連線而言,每個連線只需要2個位址,理想的方案是使用30位掩碼(2^2-2=2),然而同主類別網路相同掩碼的約束,wan之間也必須使用27位掩碼,這樣就浪費28個位址。另外乙個是不連續位址的問題。
如圖4,根據前述約定,路由在經過不同主網路邊界時會自動聚合到主類別位址邊界。a的10.1.0.0/16子網經過172.16.2.0/24傳遞到b,由於經過不同主類別位址,所以會自動聚合,實際傳送的是10.0.0.0;同理,c的10.2.0.0/16子網經過172.16.1.0/24傳遞到b,實際傳送的是10.0.0.0。這樣,對於b而言,它收到兩條去往10.0.0.0子網的路由記錄,b會新增兩條到10.0.0.0/8路由記錄到路由表,它們下一跳的位址不同,一條指向a的s1,另一條指向c的s0。由於有相同的跳數,所以會自動啟用負載平衡,這樣經過b訪問10.0.0.0的流量將無法區分是去往10.1.0.0的還是10.2.0.0的,它們都有50%的機會命中,所以就會出現間歇性的網路訪問故障。而對10.1.0.0和10.2.0.0而言,它們二者是不可見的。由於有不連續位址的問題,所以,規劃網路位址時必須保證乙個主網路的子網必須連續存在。
上述問題隨著變長子網掩碼,路由聚合和無類域間路由以及無類路由協議(ripv2,eigrp,ospf,is-is,bgpv4)等技術的引入而得到了良好的解決。
變長子網掩碼(vlsm),是指在乙個層次結構的網路中,可以使用多個不同的掩碼,也即可以對乙個經過子網劃分的網路再次劃分。變長子網掩碼的引入,有效解決了位址分配的浪費問題。
如圖5,某個公司的區域網路分配了172.16.12.0/22的位址空間,公司的網路規劃如下:在路由器d連線3個vlan,其中2個vlan有不超過200臺的主機,另外乙個vlan包括3個子網,每個子網主機數量不超過30臺,路由器a,b,c通過fr和d相連,保證每條pvc僅分配2個ip位址。所有路由器均採用ripv2無類別路由協議,路由更新中可以傳送子網掩碼資訊,支援vlsm。根據上述網路規劃,使用vlsm位址分配策略,設計如下ip位址分配計畫:
1.由於需要3個vlan,其中兩個vlan有不超過200臺的主機,根據公式,主機需要8位位址(2^8=256>200>2^7=128),子網需要2位(2^2=4>3),因此得到4個連續的/24位子網,分別是172.16.12.0/24,172.16.13.0/24,172.16.14.0/24,172.16.15.0/24。其中172.16.12.0/24和172.16.13.0/24分配給其中兩個vlan,每個子網最多可以支援254臺主機。
2.剩下乙個vlan每個子網主機數不超過30臺,需要5個主機位,對應需要/27位的掩碼(32-5=27),最多可以滿足8個/27位子網的需求(2^3=8)由於172.16.12.0/24,和172.16.13.0/24子網已分配,不能繼續作子網劃分,現在可以採用的子網是172.16.14.0/24和172.16.15.0/24作進一步的子網劃分。假定這裡使用172.16.14.0/24,3個lan分配的子網是172.16.14.0/27,172.16.14.32/27,172.16.14.64/27,同時還保留了5個子網作為備用或保留作進一步的子網劃分。
3.由於wan連線僅需要兩個ip位址,所以最佳的掩碼應該是/30位(2^(32-30)-2=2),同樣,我們挑選乙個未分配的/27位子網做進一步的劃分,為了方便起見,我們選用最後乙個/27位子網172.16.14.224/27作為wan連線的位址空間。經過劃分得到172.16.14.224/30,172.16.14.228/30,172.16.14.232/30等子網,同時還保留了5個/30的子網備用。
至此,乙個基於vlsm分配策略的,層次的ip位址分配方案就完成了,和定長子網掩碼相比,變長子網掩碼的位址分配方案有效的節省了ip位址。同時,由於採用新的無類路由協議ripv2,路由更新中傳遞子網掩碼資訊,子網資訊可以精確區分,消除了不連續位址的問題。
1.子網中待分配的最多主機數,根據計算公式2^n-2,得出主機需要的位數
2.子網的數量,根據計算公式:2^n,得出子網需要的位數。
隨著網路規模的擴大,網路的數量日益增長,過大的路由表會帶來一些問題:
1.cpu的路由計算,路由檢索的負荷加劇,潛在造成資料傳輸的延遲。
2.大量路由資訊的傳輸占用了有效頻寬。
3.路由器需要更多的儲存器儲存路由資訊。
4.頻繁的網路變動,造成路由收斂時間延長。
因此,大型網路中,控制路由表的規模也是非常重要的。該問題可以通過路由聚合(route aggregation,有時也稱路由摘要,路由匯聚)得到解決。在使用有類路由協議的傳統網路中,路由資訊經過不同主類別網路邊界時,也會自動執行路由聚合。不過,此種路由聚合被限制在主類別網路的邊界,靈活性比較差。新的路由協議中支援vlsm,可以手動控制,在多層次進行聚合,極大地提高了聚合的靈活性。
路由聚合通過匯聚若干條路由記錄為一條路由記錄,有效減少了路由資訊量,降低了cpu處理路由的負荷,路由器對儲存空間的需求,同時也加快了路由表收斂的速度。
路由聚合的另外乙個好處是可以有效地遮蔽網路中區域性的變動對網路全域性的影響。隨著網路規模的擴大,裝置,鏈路故障的可能性增大,在某些路由協議中,如ospf,某個鏈路的失效或埠up,down都會引起整個網路的路由計算,增加了路由器的負荷和低效的資料流動。我們可以通過劃分區域和路由聚合等手段,把網路變動的影響限制在乙個小的區域內,變動只對該區域產生影響,而不會影響到整個網路。
圖6如圖6,路由器d作為區域邊界路由器連線到公司骨幹區域,在未執行路由聚合前,d中包括8條路由記錄(/24位路由2條,/27位路由3條,/30位路由3條),經過聚合以後,d只需向骨幹區域傳送一條172.16.12.0/22的記錄即可。同時,由於採用了路由聚合,區域內部網路的變動引起的路由表的變化將只影響到本區域內部,其它區域不受影響。
下面以ripv2為例,演示執行路由聚合的方法:
router rip//啟動rip程序
version 2//切換到ripv2版本
no auto-summary//關閉自動聚合,切換為手動聚合
int s1//切換到s1埠
ip summary-address rip 172.16.12.0 255.255.252.0//手動配置路由聚合到172.16.12.0/22
網路聚合的計算可以歸納為3步:
1.寫出待聚合位址的二進位制形式。
2.從左到右找出連續相同的位,統計相同的位數。
3.寫出聚合位址。 表一
172.16.12.0/24 10101100. 00010000.00001100.00000000
172.16.13.0/24 10101100. 00010000.00001101.00000000
172.16.14.0/27 10101100. 00010000.00001110.00000000
172.16.14.32/27 10101100. 00010000.00001110.00100000
172.16.14.64/27 10101100. 00010000.00001110.01000000
可變長子網掩碼與無類域間路由
1 vl rfc 1878中定義了可變長子網掩碼 variable length subnet mask,vl vl 規定了如何在乙個進行了子網劃分的網路中的不同部分使用不同的子網掩碼。這對於網路內部不同網段需要不同大小子網的情形來說非常有效。vl 實際上是一種多級子網劃分技術。如圖1所示。圖1 v...
可變長度子網掩碼和無類域間路由
vlsm variable length subnet mask 可變長子網掩碼 vlsm的定義 為了有效的使用無類別域間路由 cidr 和路由彙總來控制路由表的大小,網路管理員使用先進的ip定址技術,vlsm就是其中的常用方式。vlsm的作用 在 類的ip位址的基礎上,從主機號部分借出相應的位數來...
IP和子網掩碼
是由四段數字組成,在此,我們先來了解一下3類常用的 a類ip段 0.0.0.0 到127.255.255.255 b類ip段 128.0.0.0 到191.255.255.255 c類ip段 192.0.0.0 到223.255.255.255 預設分配的子網掩碼每段只有255或0 類的預設子網掩碼...