對于網(wǎng)絡(luò )設計師而言,構造一個(gè)運行良好的網(wǎng)絡(luò )要面臨很多挑戰。在一個(gè)大型的,層次的,可伸縮的網(wǎng)絡(luò )中,一個(gè)精心規劃的IP地址分配策略和適時(shí)的路由聚合是至關(guān)重要的。
傳統的網(wǎng)絡(luò )建立在有類(lèi)別地址的基礎上(A,B,C類(lèi)地址)。早期的路由協(xié)議,如RIPv1,IGRP出于節省帶寬的考慮,在路由更新時(shí)不傳送子網(wǎng)掩碼信息,因此在網(wǎng)絡(luò )信息傳輸時(shí)需要對子網(wǎng)掩碼做一些假設。
1.如果路由器接收端口配置的IP地址和路由更新中傳送的子網(wǎng)信息有
相同的主類(lèi)別網(wǎng)絡(luò ),則該子網(wǎng)使用接收端口的掩碼配置。
2.如果傳送的子網(wǎng)信息穿越不同主類(lèi)別網(wǎng)絡(luò )邊界,則傳送路由器自動(dòng)在主類(lèi)別網(wǎng)絡(luò )邊界執行路由聚合,并只傳送經(jīng)過(guò)聚合的路由。
圖1
如圖1,網(wǎng)絡(luò )中有三臺路由器:A,B,C,均運行RIPv1路由協(xié)議,RIPv1是有類(lèi)路由協(xié)議,路由更新中不傳遞子網(wǎng)掩碼信息。B的S0端口收到從A傳送的子網(wǎng)信息10.1.0.0(不包括子網(wǎng)掩碼),由于B的S0端口在10.2.0.0/16子網(wǎng)和10.1.0.0有相同的主類(lèi)別網(wǎng)絡(luò )10.0.0.0,所以B的路由表中會(huì )添加一條10.1.0.0/16的記錄--使用的是B在S0端口的掩碼/16。當B向C傳遞10.1.0.0子網(wǎng)的路由信息時(shí),由于B,C之間為172.16.1.0/24子網(wǎng),主類(lèi)別網(wǎng)絡(luò )為172.16.0.0,不同于10.1.0.0的主類(lèi)別網(wǎng)絡(luò )10.0.0.0,因此B在向C傳送10.1.0.0時(shí)會(huì )自動(dòng)執行路由聚合到10.0.0.0,C在路由表中添加10.1.0.0/16子網(wǎng)的路由信息將是10.0.0.0/8,使用的是主類(lèi)別網(wǎng)絡(luò )默認的掩碼(A類(lèi)地址/8位,B類(lèi)地址/16位,C類(lèi)地址/24位)。
圖2
如圖2,路由器B的S0端口在10.2.0.0/24子網(wǎng),即/24位掩碼,由于從A傳遞的10.1.0.0子網(wǎng)要使用接收端口的掩碼配置,因此也會(huì )使用/24位掩碼,從而產(chǎn)生了一條錯誤的路由記錄,這將導致某些經(jīng)過(guò)B去往10.1.0.0/16的流量將無(wú)法到達。為了避免上述情況,必須約定,同主類(lèi)別網(wǎng)絡(luò )的子網(wǎng)必須使用相同的掩碼。新約定又帶來(lái)了新問(wèn)題,即同主網(wǎng)絡(luò )下地址無(wú)法有效的分配。
圖3
如圖3,假如某局域網(wǎng)上使用了27位的掩碼,則每個(gè)子網(wǎng)可以支持30臺主機(2^5-2=30);而對于WAN連接而言,每個(gè)連接只需要2個(gè)地址,理想的方案是使用30位掩碼(2^2-2=2),然而同主類(lèi)別網(wǎng)絡(luò )相同掩碼的約束,WAN之間也必須使用27位掩碼,這樣就浪費28個(gè)地址。另外一個(gè)是不連續地址的問(wèn)題。
圖4
如圖4,根據前述約定,路由在經(jīng)過(guò)不同主網(wǎng)絡(luò )邊界時(shí)會(huì )自動(dòng)聚合到主類(lèi)別地址邊界。A的10.1.0.0/16子網(wǎng)經(jīng)過(guò)172.16.2.0/24傳遞到B,由于經(jīng)過(guò)不同主類(lèi)別地址,所以會(huì )自動(dòng)聚合,實(shí)際傳送的是10.0.0.0;同理,C的10.2.0.0/16子網(wǎng)經(jīng)過(guò)172.16.1.0/24傳遞到B,實(shí)際傳送的是10.0.0.0。這樣,對于B而言,它收到兩條去往10.0.0.0子網(wǎng)的路由記錄,B會(huì )添加兩條到10.0.0.0/8路由記錄到路由表,它們下一跳的地址不同,一條指向A的S1,另一條指向C的S0。由于有相同的跳數,所以會(huì )自動(dòng)啟用負載平衡,這樣經(jīng)過(guò)B訪(fǎng)問(wèn)10.0.0.0的流量將無(wú)法區分是去往10.1.0.0的還是10.2.0.0的,它們都有50%的機會(huì )命中,所以就會(huì )出現間歇性的網(wǎng)絡(luò )訪(fǎng)問(wèn)故障。而對10.1.0.0和10.2.0.0而言,它們二者是不可見(jiàn)的。由于有不連續地址的問(wèn)題,所以,規劃網(wǎng)絡(luò )地址時(shí)必須保證一個(gè)主網(wǎng)絡(luò )的子網(wǎng)必須連續存在。
上述問(wèn)題隨著(zhù)變長(cháng)子網(wǎng)掩碼,路由聚合和無(wú)類(lèi)域間路由以及無(wú)類(lèi)路由協(xié)議(RIPv2,EIGRP,OSPF,IS-IS,BGPv4)等技術(shù)的引入而得到了良好的解決。
變長(cháng)子網(wǎng)掩碼(VLSM),是指在一個(gè)層次結構的網(wǎng)絡(luò )中,可以使用多個(gè)不同的掩碼,也即可以對一個(gè)經(jīng)過(guò)子網(wǎng)劃分的網(wǎng)絡(luò )再次劃分。變長(cháng)子網(wǎng)掩碼的引入,有效解決了地址分配的浪費問(wèn)題。
圖5
如圖5,某個(gè)公司的區域網(wǎng)絡(luò )分配了172.16.12.0/22的地址空間,公司的網(wǎng)絡(luò )規劃如下:在路由器D連接3個(gè)VLAN,其中2個(gè)VLAN有不超過(guò)200臺的主機,另外一個(gè)VLAN包括3個(gè)子網(wǎng),每個(gè)子網(wǎng)主機數量不超過(guò)30臺,路由器A,B,C通過(guò)FR和D相連,保證每條PVC僅分配2個(gè)IP地址。所有路由器均采用RIPv2無(wú)類(lèi)別路由協(xié)議,路由更新中可以傳送子網(wǎng)掩碼信息,支持VLSM。根據上述網(wǎng)絡(luò )規劃,使用VLSM地址分配策略,設計如下IP地址分配計劃:
1.由于需要3個(gè)VLAN,其中兩個(gè)VLAN有不超過(guò)200臺的主機,根據公式,主機需要8位地址(2^8=256>200>2^7=128),子網(wǎng)需要2位(2^2=4>3),因此得到4個(gè)連續的/24位子網(wǎng),分別是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分配給其中兩個(gè)VLAN,每個(gè)子網(wǎng)最多可以支持254臺主機。
2.剩下一個(gè)VLAN每個(gè)子網(wǎng)主機數不超過(guò)30臺,需要5個(gè)主機位,對應需要/27位的掩碼(32-5=27),最多可以滿(mǎn)足8個(gè)/27位子網(wǎng)的需求(2^3=8)由于172.16.12.0/24,和172.16.13.0/24子網(wǎng)已分配,不能繼續作子網(wǎng)劃分,現在可以采用的子網(wǎng)是172.16.14.0/24和172.16.15.0/24作進(jìn)一步的子網(wǎng)劃分。假定這里使用172.16.14.0/24,3個(gè)LAN分配的子網(wǎng)是172.16.14.0/27,172.16.14.32/27,172.16.14.64/27,同時(shí)還保留了5個(gè)子網(wǎng)作為備用或保留作進(jìn)一步的子網(wǎng)劃分。
3.由于WAN連接僅需要兩個(gè)IP地址,所以最佳的掩碼應該是/30位(2^(32-30)-2=2),同樣,我們挑選一個(gè)未分配的/27位子網(wǎng)做進(jìn)一步的劃分,為了方便起見(jiàn),我們選用最后一個(gè)/27位子網(wǎng)172.16.14.224/27作為WAN連接的地址空間。經(jīng)過(guò)劃分得到172.16.14.224/30,172.16.14.228/30,172.16.14.232/30等子網(wǎng),同時(shí)還保留了5個(gè)/30的子網(wǎng)備用。
至此,一個(gè)基于VLSM分配策略的,層次的IP地址分配方案就完成了,和定長(cháng)子網(wǎng)掩碼相比,變長(cháng)子網(wǎng)掩碼的地址分配方案有效的節省了IP地址。同時(shí),由于采用新的無(wú)類(lèi)路由協(xié)議RIPv2,路由更新中傳遞子網(wǎng)掩碼信息,子網(wǎng)信息可以精確區分,消除了不連續地址的問(wèn)題。
使用VLSM地址分配方案要考慮兩個(gè)主要問(wèn)題:
1.子網(wǎng)中待分配的最多主機數,根據計算公式2^n-2,得出主機需要的位數
2.子網(wǎng)的數量,根據計算公式:2^n,得出子網(wǎng)需要的位數。
隨著(zhù)網(wǎng)絡(luò )規模的擴大,網(wǎng)絡(luò )的數量日益增長(cháng),過(guò)大的路由表會(huì )帶來(lái)一些問(wèn)題:
1.CPU的路由計算,路由檢索的負荷加劇,潛在造成數據傳輸的延遲。
2.大量路由信息的傳輸占用了有效帶寬。
3.路由器需要更多的存儲器存儲路由信息。
4.頻繁的網(wǎng)絡(luò )變動(dòng),造成路由收斂時(shí)間延長(cháng)。
因此,大型網(wǎng)絡(luò )中,控制路由表的規模也是非常重要的。該問(wèn)題可以通過(guò)路由聚合(Route Aggregation,有時(shí)也稱(chēng)路由摘要,路由匯聚)得到解決。在使用有類(lèi)路由協(xié)議的傳統網(wǎng)絡(luò )中,路由信息經(jīng)過(guò)不同主類(lèi)別網(wǎng)絡(luò )邊界時(shí),也會(huì )自動(dòng)執行路由聚合。不過(guò),此種路由聚合被限制在主類(lèi)別網(wǎng)絡(luò )的邊界,靈活性比較差。新的路由協(xié)議中支持VLSM,可以手動(dòng)控制,在多層次進(jìn)行聚合,極大地提高了聚合的靈活性。
路由聚合通過(guò)匯聚若干條路由記錄為一條路由記錄,有效減少了路由信息量,降低了CPU處理路由的負荷,路由器對存儲空間的需求,同時(shí)也加快了路由表收斂的速度。
路由聚合的另外一個(gè)好處是可以有效地屏蔽網(wǎng)絡(luò )中局部的變動(dòng)對網(wǎng)絡(luò )全局的影響。隨著(zhù)網(wǎng)絡(luò )規模的擴大,設備,鏈路故障的可能性增大,在某些路由協(xié)議中,如OSPF,某個(gè)鏈路的失效或端口UP,DOWN都會(huì )引起整個(gè)網(wǎng)絡(luò )的路由計算,增加了路由器的負荷和低效的數據流動(dòng)。我們可以通過(guò)劃分區域和路由聚合等手段,把網(wǎng)絡(luò )變動(dòng)的影響限制在一個(gè)小的區域內,變動(dòng)只對該區域產(chǎn)生影響,而不會(huì )影響到整個(gè)網(wǎng)絡(luò )。
圖6如圖6,路由器D作為區域邊界路由器連接到公司骨干區域,在未執行路由聚合前,D中包括8條路由記錄(/24位路由2條,/27位路由3條,/30位路由3條),經(jīng)過(guò)聚合以后,D只需向骨干區域傳送一條172.16.12.0/22的記錄即可。同時(shí),由于采用了路由聚合,區域內部網(wǎng)絡(luò )的變動(dòng)引起的路由表的變化將只影響到本區域內部,其它區域不受影響。
下面以RIPv2為例,演示執行路由聚合的方法:
router rip//啟動(dòng)rip進(jìn)程
version 2//切換到ripv2版本
no auto-summary//關(guān)閉自動(dòng)聚合,切換為手動(dòng)聚合
int s1//切換到s1端口
ip summary-address rip 172.16.12.0 255.255.252.0//手動(dòng)配置路由聚合到172.16.12.0/22
網(wǎng)絡(luò )聚合的計算可以歸納為3步:
1.寫(xiě)出待聚合地址的二進(jìn)制形式。
2.從左到右找出連續相同的位,統計相同的位數。
3.寫(xiě)出聚合地址。
聚合地址計算示例:
表一
聚合地址 172.16.12.0/22 :有相同的前 22 位不相同的 10 位
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