基於Java開發的免費網路拓撲軟體-SugarNMSTool
隨著internet的飛速發展,資訊的日益豐富決定著將來的使用者介面主要是一種資訊介面,從某種意義上說,資訊視覺化代表著下一代使用者介面的方向。雖然資訊視覺化是一個較新的科學領域,目前絕大多數研究工作都還處在發展新技術和構建新系統方面,但已經出現了一些資訊視覺化方面的實用工具。這些新技術和實用工具為實現大規模網路拓撲圖的視覺化奠定了基礎。
要想有效、方便地管理網路裝置和服務就必須要求網路管理軟體能夠準確、自動地發現和顯示網路中的各節點連線情況和它們的屬性,也就是說如何將網路拓撲圖直觀的、清晰地顯示出來,並且儘可能多的包含其它網路管理資訊,已經成為網路拓撲管理中的一個關鍵任務,這一點對於整個網路管理系統的使用者體驗有著直接的影響。而複雜網路是一類重要的資訊資源,適當使用視覺化方法,可為人們認識網路拓撲的內部結構和潛在規律提供一種有效的途徑。但是,複雜網路的本質特性及其龐大規模對視覺化工作提出了巨大挑戰。
智和信通推出的一款基於Java技術開發的免費網路拓撲軟體- SugarNMSTool,能夠實現網路裝置搜尋發現、裝置拓撲生成以及裝置內部資源發現等功能。
免費網路拓撲軟體- SugarNMSTool
SugarNMSTool是“北京智和信通技術有限公司”開發的圖形化SNMP工具,可以免費使用。工具只有3M大小左右,便於攜帶,免安裝,無資料庫,可在Windows、Linux、Unix系統上快速執行。 工具由大型SugarNMS智和網管平臺的精華功能精簡而成。SugarNMSTool是網管員、SNMP裝置開發除錯、SNMP診斷的日常必備工具。產品網站:www.zhtelecom.com
SugarNMSTool的功能
1.裝置和鏈路自動發現
- 可以按IP起始範圍、網路段範圍、路由跳轉搜尋、IP漫遊發現方式等,通過SNMP和Ping協議發現裝置,並識別裝置的基本型別。
- 在裝置發現的過程當中,通過LLDP、CDP、ICMP、ARP技術、鄰居路由、埠轉發表、STP生成樹協議等物理拓撲發現技術,發現裝置的物理連結。
- 裝置和鏈路發現完畢後,在圖形介面上以拓撲圖的形式顯示出來。
2.裝置和鏈路手工編輯
除自動發現外,還可以手工新增、刪除、修改網路裝置和鏈路。
3.拓撲圖管理介面
拓撲圖支援放大、縮水、拖拽、匯出、列印等操作;拓撲圖可以按樹型、Spring、圓形、Organic等自動佈局排列。
4.裝置內部資源發現
自動發現出裝置內部的網口、光口、電口、磁碟、記憶體、CPU、軟體服務等資源資訊,進一步瞭解裝置的內部狀態。
5.SNMP常用資訊檢視
裝置網路介面資訊 | 裝置硬體設施資訊 | 裝置介面流量資訊 | 主MAC和埠資訊 |
裝置CPU資訊 | 裝置系統資訊 | 執行程序資訊 | 裝置基本引數 |
安裝軟體資訊 | 裝置TCP連線資訊 | 程序佔用CPU和記憶體情況 | 裝置UDP連線資訊 |
裝置IP地址配置管理 | 裝置SNMP統計資訊 | ARP(MAC-IP)資訊表 | 檢視裝置IP層流量資訊 |
埠轉發表 | 路由資訊 | 交換機埠下掛裝置資訊 | 裝置磁碟記憶體資訊 |
6.SNMP Trap接收和顯示
工具自帶了SNMP TRAP服務,可以接受SNMP TRAP資訊,並自動在介面上顯示TRAP的詳細資訊。
7.SNMP MIB瀏覽器
工具自帶了MIB 瀏覽器功能,支援匯入其他MIB庫。以SNMP V1/V2/V3 協議,對裝置SNMP進行GET、SET、GetBuilk、GetNext等查詢、修改OID的操作。
8.資料儲存和恢復
拓撲中的網路裝置和鏈路資訊,可以儲存到檔案中,在下次工具啟動時,可以自動恢復以前的網路裝置和鏈路資訊,自動恢復出以前的拓撲圖介面。
功能實現程式碼示例
裝置發現- "按IP範圍搜尋裝置"的核心原始碼
String startIP = "192.1.1.1"; //起始IP
String endIP = "192.1.1.100"; //結束IP
boolean isUsePing = "true"; //是否Ping
//SNMP引數資訊列表
List<SNMPTarget> snmpTargetList = new ArrayList<SNMPTarget>();
SNMPTarget target1 = new SNMPTarget(); //SNMP引數資訊
target1.readCommunity = "public";
target1.port = 161;
target1.snmpVersion = 1; //版本為V2C
snmpTargetList.add(target1);
SNMPTarget target2 = new SNMPTarget();
target2.readCommunity = "public";
target2.port = 161;
target2.snmpVersion = 0; //版本為V1
snmpTargetList.add(target2);
/**
*查詢裝置列表資訊
*/
List<DeviceInfo> deviceInfoList = DiscoverAPI.getDiscoverAPI()
.searchDevice(startIP, endIP, snmpTargetList, isUsePing);
/**
*查詢裝置間的連結資訊
*/
List<LinkInfo> linkInfoList = DiscoverAPI.getDiscoverAPI()
.searchLinkInfo(deviceInfoList);