隨著校園網規模的日益擴大,建網時間長,使用人數多的高校,如北京大學,存在IP位址數量多,多種分配方式並存的現象。若採用手動方法管理IP位址,不僅操作不便,而且極易出現錯誤。
根據校園網管理IP位址的實際需求,本著向網管人員提供最佳的使用界面,北京大學開發了校園網IP位址資源管理系統。
特點
管理IP位址主要是給網際網路接入單元分配網絡地址。在CERNET中,各接入高校從上一級IP位址管理機構獲得某些地址段,在其校園內分配使用,統一管理。
例如,北京大學擁有一個B類子網162.105.0.0/16和若干C類子網。從地址分配角度看,這相當於地址池,在此基礎上進行校園內IP位址和子網劃分。
為了更合理、有效地利用有限的IP位址資源,北京大學採用變長子網劃分方法,即同一網絡內不同的子網採用不同的子網掩碼,形成不同大小的子網,分配給不同的院系。由院系管理員進一步分配他所管轄的IP位址段。
對於個別管理能力弱,IP位址用量小的院系,採取計算中心直接分配和管理單個IP位址的方法。
IP位址的分配和使用特點可概括為:
1.地址分配方式不同,既有靜態IP,又有動態IP;
2.子網大小不同,既有以樓宇和片區為單位分配的不同掩碼子網,也有單個IP位址的直接分配;
3.連通性不同,既有只能訪問校內資源的IP位址,又有可以訪問國內或國際的IP位址。
系統結構
為了更好地進行IP位址管理,北京大學採用三級管理機制。
第一級是地址池的管理,即對校園網所有IP位址的分配情況、使用狀況、地址屬性進行管理,管理單元是從上一級地址分配機構獲得的地址段;
第二級是子網管理,即從第一級的地址池中作進一步劃分,根據需要分給不同的部門和樓宇,管理單元是已經分配校內單位的地址子網;
第三級是單個IP位址管理,即具體某臺主機的IP分配情況。其結構如圖1所示。
根據實際IP管理的需求,系統分別為地址池、子網、單個IP位址管理提供操作界面,圖2是首頁面的地址池使用比例餅圖以及左側欄的系統功能導航。
地址池管理
隨著網絡規模的變化,校園網可能會增加新的地址塊,也可能釋放多餘的地址塊,還可能對每個地址塊信息的描述進行更新,因此,系統相應地要向管理員提供地址池的添加、刪除、更新等功能。圖3為地址池管理界面。
子網管理
系統提供釋放子網的功能。首先,系統提供分配子網的功能,當某部門所分配的子網信息有改變時,就要及時更新子網;當某部門不再需要分配的子網、或其當前子網不再滿足要求而需要分配新的子網時,應釋放當前子網。
系統提供合併子網的功能。採用可變長子網掩碼(VLSM)分配機制,將網絡劃分成不同大小的子網,可以節省大量的IP位址空間,即劃分子網的功能;有時又需要將幾個小的網絡合併成一個大的網絡,以便統一管理。
此外,系統還提供快速分配子網的功能。當指定子網掩碼的網絡地址位數,即指定了子網的大小,系統應隨機生成符合要求的多個子網段供網管人員選擇,圖4為子網管理界面。
單個IP位址管理
每一個使用IP協議進行通信的網絡接口都應該有一個IP位址。與子網管理類似,系統應該提供對單個IP位址進行分配、釋放和更新的功能,圖5為IP位址管理界面。
地址查詢
當網管人員需要查詢滿足特定條件(如子網號、VLAN號、使用單位等)的某個或某些子網時,需使用查詢子網功能。同樣,可以指定IP位址的查詢條件,如IP位址號、MAC地址、使用單位、地址類型等查詢特定的IP位址。系統將查詢結果返回給用戶。圖6為子網查詢界面。
管理權限
基於安全因素考慮,系統對各級管理設置了不同的管理權限。如果對地址池、子網進行操作的管理人員,必須經過校級管理員身份驗證。同理,如果對單個IP位址進行操作,則需要院系級管理員權限。
系統輔助功能
管理員經常需要查看對地址池、子網、IP位址操作的歷史記錄,以獲取某些有用信息。因此,系統應提供查詢地址池、子網、IP等變更歷史的功能。
應用Struts + Hibernate 框架
Struts是一個開放原始碼的應用框架,Web應用程式開發人員通過Struts Framework,可以充分利用面向對象設計、代碼重用以及「編寫一次、到處運行」的優點。它基於模型(Model)-視圖(View)-控制器(Controller)設計模式。
因此,系統在地址池管理、子網管理、IP位址管理中都應用了Struts框架,在持久化層選用Hibernate中間件,模型層通過Hibernate API訪問持久化層,而控制層的Action又可以訪問模型層。
因為子網管理的實現是三級中最為複雜的一級,而子網劃分、子網合併又是子網管理最具特色的部分,所以本文僅以子網劃分、子網合併為例,講述其實現過程,描述該過程的MVC架構如圖7所示。
子網劃分
IP位址分為網絡域和主機域,掩碼用於說明子網域在一個IP位址中的位置,通過使用掩碼可將主機域分出若干位作子網域,從而達到劃分子網的目的。
劃分子網應遵循如下準則:
1.確定需要的子網數目;
2.確定各個子網上需要的主機ID數目。
例如,IPv4地址前綴162.105.130.0/20有20個固定位和12個可變位。假如某院系最多需要30個子網,可以將12個可變位中的5位用來標識子網(使用5個位最多可以表示30個子網),剩餘的7位用來標識各個子網上的主機ID(7個位最多可以表示126個主機ID)。
每個子網網絡ID的結果地址前綴長度都是17位(原來的12位加上用於劃分子網的5位)。IPv4的子網劃分產生了一組子網網絡ID及與其對應的有效IPv4地址範圍。地址計算所採用的公式是:2n-2
在這個公式中,n代表子網或主機域的位數,減2說明從計算出的地址總數中減去兩個保留地址——網絡地址和廣播地址。RFC 950要求限制子網號為「全0」和「全1」的使用。在一些特定情況下,這些限制地址還是可以用的,它取決子網中的設備所使用的IP軟體。
通過劃分子網,系統可以儘可能高效利用可用的地址空間。但是子網的數量不宜過多,因為子網化是以犧牲部分IP位址為代價的。
Web頁面提示用戶輸入掩碼,這就是MVC模式的視圖部分,用戶輸入完畢,進行提交後,Struts框架自動將請求轉發給控制器SubnetAction,該控制器調用模型組件SubnetModel完成劃分工作。
子網合併
合併子網所應用的Struts框架的過程與劃分子網類似,只是實現各組件的具體方法不同。就模型部分的合併子網方法而言,它和子網劃分的過程正好相反,它將幾個小的子網合併到一起,形成一個大的網絡。這需要從每個子網的網絡域部分取若干位作為新子網的網絡域,而剩下的部分則屬於主域。
當然,並不是任意兩個或幾個子網都可以進行合併。若是連續的子網號,則可以合併;否則,不能進行合併。為了使界面更加友好,用戶不必輸入想要合併的子網,而是通過頁面提供的複選框,選擇任意個數的子網進行合併。
根據Forrester研究機構的調查數據,在接受調查的公司之中,管理IP位址正在從25%傳統的手工方式轉變為使用內部開發的應用程式,還有20%使用第三方工具。
目前,本系統正在北京大學校園網上運行。作為北京大學校園網運行管理綜合框架的一部分,本系統的研究和開發為其他管理功能的實現提供了紮實的基礎。同時,可以與已經在線運行的實時IP位址使用情況、監視用戶管理系統的IP位址帳號和伺服器帳號等功能進一步融合,獲得校園網IP位址分配和使用的全貌,為IP位址的合理分配、使用、規劃提供原始數據。