自動化 IP 管理系統
Automatic IP Management System
李宇峰 劉柏汎 楊慶隆 紀新洲
國立東華大學電算中心
Email: {eric,bofan,cnyang,hcchi }@mail.ndhu.edu.tw
+
摘要
近年來,由於網際網路應用服務的蓬勃發展, 上網人數的遽增,造成許多學校 IPv4 位址的不敷使 用,在無法取得更多 IPv4 位址資源的前提下,如何 更有效率地管理 IPv4 位址的使用是目前各校網管 人員面臨的一大課題。綜觀目前網管人員的 IP 管理 方式,大多仍使用人工的方式來進行網路使用權的 控管,這在一般小型的網路環境或許可行,但在稍 具規模的中、大型網路環境中,就突顯 IP 管理自動 化的必要性。本篇論文將透過 ARP、SNMP 等技術 勾勒並實作出一個 IP 管理自動化的架構,以期解決 大部分網管人員長久以來之困擾並有效降低管理 成本。 關鍵詞:IPv4、ARP、SNMP。Abstract
In recent years, IPv4 addresses have been insufficient due to the flourishing development of Internet applications and the increasing number of netizens. Since we cannot obtain more IPv4 address resources, how to efficiently manage IPv4 addresses becomes an imperative for the network management personnel. Most network management personnel still manage the network manually. This may be suitable for small scale network environment; however, it is not reasonable for a medium or large scale network environment. Thus, automation of IP management becomes a critical issue. In this paper, we propose an automatic management system using the strategies of ARP and SNMP to reduce the network management cost effectively.
Keywords: IPv4, ARP, SNMP.
1. 前言
有鑑於 IP 資源的匱乏,IP 位址的有效管理一 直為網路管理之重要課題,網管人員必須有效紀錄 每個 IP 的申請資料,其中最重要的便是申請人所使 用的網路卡硬體位址(MAC Address)。為確保網路 上之每一部電腦均有獨一無二的 IP 位址,並確認 IP 的使用者是否就是申請者,取得 MAC Address 便是必要的,有了 MAC Address 的資料,便可輕易 透過 SNMP [1]技術來鎖定 IP 盜用者的確切上網地 點。 取得 MAC Address 的方法有很多種,以東華大 學為例,目前使用下列兩種方式:第一種為最傳統 的方式,使用於宿舍區,採用 DHCP [3]的機制,讓 申請者取得一虛擬 IP(Private IP),此虛擬 IP 是用 來瀏覽 IP 自動申請系統之 Web Server 之用,同時 在 DHCP Server 的資料檔中會留下該申請者之 MAC Address,如圖 1 所示。透過這種方法來取得 MAC Address 之 資 料有其 缺點, 需不 斷地掃 瞄 DHCP 資料檔,若掃瞄 DHCP 資料檔的動作因故停 止,將造成取得的 MAC Address 資訊有誤。 圖 1 宿舍 IP 申請系統架構圖 第二種是透過 ActiveX 程式來達成取得 MAC Address 的目的,使用於行政教學區。使用者透過 網頁下載由 ActiveX 所撰寫之 IP 申請程式,ActiveX 程式便會下載至使用者之電腦執行,並回傳使用者 所使用的申請資料及 MAC Address 至伺服器端,如圖 2 所示。透過這個方法無法跨平台運作,IP 申請 者必須使用 Windows 系列作業系統並搭配 IE 瀏覽 器才有辦法完成 IP 申請的動作。
圖 2 透過 ActiveX 撰寫之 IP 申請系統
本 論 文 要 提 供 的 是 第 三 種 解 決 方 案 , 透 過 SNMP 技術來取得 Router 中的 ARP Table 資訊,可 免除上述兩種方法的缺點,並可取得最正確、即時 的 IP-MAC 對應資料,透過此法更可以進行 IP 使用 的監控。
2. 相關技術介紹
2.1 ARP 協定 OSI 第二層(資料連結層)也需要定址,在乙 太網路上,我們稱這個定址名稱為 MAC Address, 它 是 用 來 指定 網 路 卡 與網 路 卡 間 互相 通 訊 的 位 址。也就是說資料連結層需要透過 MAC Address 來 辨識對方,而 OSI 第三層(網路層)則是透過 IP Address 來進行定址。 網路卡用來解析 MAC Address 的協定稱為「位 址解析協定」(Address Resolution Protocol;ARP) [5],兩部區域網路中的電腦,透過 ARP 協定尋找 到對方的 MAC Address,便可互相進行點對點的傳 輸。其運作流程如下所示:z A 電腦發出「ARP 請求」的廣播封包給網段 中的所有主機,請求的封包內容包括我們想要 查詢之 B 電腦 MAC Address 的 IP Address。 z 網段中的所有電腦都會收到該「ARP 請求」 廣播封包,如果 B 電腦收到這個「ARP 請求」 封包,B 電腦便會把自己的 MAC Address 放 入「ARP 回應」的封包內,然後用點對點的 傳輸方式,回應給 A 電腦。 z 最 後 , A 電 腦 便 會 知 道 B 電 腦 的 MAC Address,如此一來,A 電腦便可以順利地與 B 電腦進行點對點的傳輸。 由上述說明可知,ARP 可幫忙找尋區域網路上 的 IP-MAC 對應關係,而這個過程結束後所查詢到 的資料將會被存放在一個稱為「ARP Cache(或 ARP Table)」的資料結構中,在每部電腦中會維護一個 ARP Cache,在每部路由器中亦會維護一份其區域 網路中的 ARP Cache 資料,這份 ARP Cache 資料便 是最新、最及時的 IP-MAC 對應資料,透過 ARP Cache 便可取得區域網路中任何一部電腦的 MAC Address。
2.2 SNMP 協定
SNMP ( Simple Network Management Protocol;簡單網路管理通訊協定)被視為是 TCP/IP 網路環境中網路管理的實做,其目的是方便網路管 理人員以標準統一的方式監測網路的狀況以及控 制 網 路 設 備 的 運 作 。 SNMP 發 展 到 目 前 共 有 SNMPv1 [1]、SNMPv2 [2]及 SNMPv3 [4]三個版 本,相關標準可參考表 1,其中 SNMPv1 因為架構 簡單實做容易,目前大部分的網路設備都有支援, 表 1 SNMP 版本比較表 SNMP 版本 RFC 制訂日期 SNMPv1 1157 1990/05 SNMPv2 1905 1996/01 SNMPv3 2271 1998/01 SNMP 的架構分為四部分:分別為收集網路資 料 用 的 網 路 管 理 工 作 站 ( Network Management Station)、受到管理的網路設備(Network Element)、 網路設備所使用的網路管理資料庫(Management Information Base;MIB)以及互相溝通使用的 SNMP 協定,如圖 3 所示。 圖 3 SNMP 運作架構 不同的網路設備提供之 MIB 不同,但只要支 援 TCP/IP 通訊協定的網路設備都會支援標準的 MIB-II 物件,另外,各式各樣的 Layer 2 Switch 亦 會支援標準的 Bridge MIB。本論文中所提的到想 法,便是透過存取 Router 之 MIB-II 物件來取得 ARP Cache 中的 IP-MAC 對應資訊,欲取得之 OID 值為
1.3.6.1.2.1.4.22.1.2,如圖 4 所示。
圖 4 存放 ARP Cache 之 OID
3 系統架構與實作
本論文提出之系統共包含三大功能:IP 申請自 動化系統、IP 使用統計系統及 IP 衝突控管系統。 系統架構如圖 5 所示。 圖 5 系統架構圖 3.1 IP 申請自動化系統 這個部分包含了 DHCP Server、Web Server 及 Database Server 三大部分。DHCP Server 主要功能 為指派 Private IP 給予欲申請 IP 之 PC 使用,並無 其他附加功能,因此,亦可由 Router 本身提供之 DHCP 功能取代,IP 申請系統僅允許由 DHCP Server 指派之 Private IP 申請 IP。Web Server 部分則負責 呈現系統三大功能網頁資訊的工作,其後端連結之 Database Server 則負責儲存使用者資料、使用者申 請 IP 資訊及 ARP Cache 資訊等資料。 使用者於申請 IP 時,首先以自動取的 IP 方式 上網,然後透過瀏覽器瀏覽 IP 申請系統(圖 6), 此時系統將以 PHP 程式透過 SNMP 方式向 Router 查詢使用者 IP 之 Mac Address,並於使用者填妥相 關資訊後發予合法之 IP Address(圖 7),並將相關 資訊儲存於 Database Server 之中。 圖 6 IP 申請自動化系統 圖 7 完成申請程序取得 IP 畫面 3.2 IP 使用統計系統 在一般學校裡的人員流動是相當頻繁的一件 事,舉凡教職員調動、學生畢業等等的情形,都有 可能造成已發放之 IP 被閒置未使用的情形發生,無 形中便造成了網管的死角。因此,隨時監控每個 IP 的使用情形是一件非常重要的工作。 在傳統的網路管理方式中,通常是以 ping 或 traceroute 等方式來判斷區域網路中的某個 IP 位址 是否有被使用。但由於網路安全的問題日益嚴重, 許多網管人員或一般使用者都已漸漸於網路上或 自己的電腦上安裝防火牆,以避免遭到網路攻擊。 這種情形使得 ping 或 traceroute 等工具無法正確判 斷 IP 是否正在使用。 為避免上述情形的發生,在 Monitor Server 上建置了 IP 使用統計系統,IP 使用統計系統透過 SNMP 協定向 Router 下載整個 ARP Cache,將其與 Database Server 中的資料進行比對,便可有效且精 確的判斷出那些 IP 已遭閒置。系統輸出畫面如圖 8 所示。 圖 8 IP 使用統計系統輸出畫面 網管人員可依據其政策決定超過多久為使用 之 IP 將被認定為無效申請資料,而將該 IP 從資料 庫中設定為「未申請」狀態,提供其他使用者申請 使用,透過這個系統可有效管理 IP 的使用情形不會 再有 IP 閒置的情形發生。 3.3 IP 衝突控管系統 當 IP 在網路上發生衝突的時候,使用者電腦 上會將衝突該 IP 的 MAC Address 顯示或記錄下 來,使用者再將該 MAC Address 告知網管人員處 理。IP 衝突問題是最讓網管人員頭痛的問題,在支 援 SNMP 設備還不普及的時代,網管人員只能透過 「拔網路線」的土法煉鋼法來找出盜用 IP 者的確切 位址。 現在的網管人員幸福多了,許多網路設備都提 供了 SNMP 支援,並提供許多方便的網管工具來供 網管人員使用(如圖 9 所示),可以方便的找出盜 用 IP 者的確切位址。 圖 9 網路設備廠商提供之網管工具 但問題又來了,如果一個大型網路環境中所使 用的網路設備品牌形形色色,各廠牌都提供不同的 網管軟體,網管人員便要去熟悉各式各樣網管軟體 操作,這又是一件令人頭痛的工作。因此,我們設 計了 IP 衝突控管系統,使用單一介面來尋找特定 MAC Address,並可直接關閉該 MAC Address 出現 之網路 Port。 透過 IP 衝突控管系統,可將所有支援標準 SNMP MIB 的網路設備加入控管的行列(如圖 10、 11 所示),系統將可透過 SNMP 協定搜尋出現在控 管網路設備上的某個特定 MAC Address。 圖 10 新增控管設備 圖 11 控管設備列表 加入欲管理的網路設備後,未來遇到 IP 衝突 的情形時,只要透過系統提供之搜尋 MAC Address 功能,便可輕易找出該 MAC Address 所在的確切位 址,並直接由系統關閉該網路孔(圖 12),不需要 再經過設備商所提供的網管工具來做。
圖 12 關閉 IP 盜用者網路孔
4 結論
IP 位址的有效管理對於網管人員來說是一件 非常重要的工作,其中最重要的便是如何取得申請 人所使用的網路卡硬體位址(MAC Address)。以東 華大學為例,有透過掃瞄 DHCP 資料檔及植入 ActiveX 程式至使用者電腦兩種方式。但這兩種方 式都有其缺點存在,為了避免掉上述兩種方式的缺 點,本論文提出第三種方式,以透過 SNMP 協定查 詢 Router 之 ARP Cache 資料之方式來取得使用者之 MAC Address 資訊。系統中之「IP 申請自動化」、「IP 使用統計」及 「IP 衝突控管」三大功能皆透過 SNMP 協定查詢 Router 之 ARP Cache 資料之方式來建置。使用上述 技術建置之 IP 使用統計系統可以排除防火牆系統 的阻礙,可以做到最正確的統計,有效降低 IP 閒置 情形的發生機率;而 IP 衝突控管系統更讓網管人員 可以透過單一介面管理所有不同品牌的 Layer 2 Switch,方便網管人員於做短的時間之內定位出特 定 MAC Address 出現的位置。整個系統之建置目的 是為了有效降低網管人員的負擔,經過初步的測試 亦可達到預期的成效。此外,我們並期待未來可以 發展出更多的網管功能,整合於網路管理系統中, 讓整個系統朝更自動化的方向邁進。
參考文獻
[1] J. Case, M. Fedor, M. Schoffstall, and J. Davin, “A Simple Network Management Protocol (SNMP),” RFC 1157, May 1990.
[2] J. Case, K. McCloghrie, M. Rose, and S. Waldbusser, “Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)”, RFC 1905, January 1996.
[3] David C. Plummer, “Ethernet Address Resolution Protocol”, RFC 826, November 1986.
[4] R. Droms, “Dynamic Host Configuration Protocol,” RFC 2131, Bucknell University, March 1997.
[5] D. Harrington, R. Presuhn, and B. Wijnen, “An Architecture for Describing SNMP Management Frameworks,” RFC 2571, April 1999.