Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Rudimentary NMS Software Components (Chapter 7) Network Management, MIBs, and MPLS Stephen B. Morris Revised Spring 2006 Rudimentary NMS Software Components 1 Overview How to build and use Simple Network Management Protocol (SNMP) code components Two commercial Application Programming Interfaces (APIs) Microsoft Visual C++ version 6.0 Sun Microsystems Java Development Management Kit (JDMK) version 4.2 Revised Spring 2006 Rudimentary NMS Software Components 2 Building a Rudimentary Management System Minimum Required Components SNMP manager Management Information Bases (MIBs) Database SNMP agents Revised Spring 2006 Rudimentary NMS Software Components 3 Configuring SNMP on Windows NT/2000/XP Windows NT If the SNMP Service is already installed: Click Start-Settings-Control Panel Select Services and scroll down to the SNMP Service If the SNMP Service is not installed: Double click the Control Panel icon and select the Services tab Click the Add button and the scroll down to the SNMP Service and then click OK Revised Spring 2006 Rudimentary NMS Software Components 4 Configuring SNMP on Windows NT/2000/XP (continued) Windows 2000/XP If the SNMP Service is already installed: Double click the Control Panel Administrative Tools icon and select the Services tab Right click on the SNMP Service and select the Properties option If the SNMP Service is not installed: Double click the Control Panel icon and select the Add Remove Programs tab Click the Add /Remove Windows Components button and the scroll down to the Management and Monitoring Tools and then click Details Check the box next to Simple Network Management Protocol and click OK Revised Spring 2006 Rudimentary NMS Software Components 5 Setup Required for the Visual C++ Program Supplied software was tested in the following environments Windows NT Workstation Version 4.00 Build 1381 Service Pack 6a Windows 2000 Version 5.0.2195 Service Pack 2 Build 2195 Revised Spring 2006 Rudimentary NMS Software Components 6 Building the Sample Visual C++ SNMP Manager Get.bat – Executes single SNMP GET Set.bat – Executes single SNMP SET Walk.bat – Walks a specified agent MIB table Gettraps.bat – Prepares program for receiving traps Getnext.bat – Executes single SNMP getNext snmpdefs.h – Header file snmpmgr.c – C code snmpmgr.exe – Executable Revised Spring 2006 Rudimentary NMS Software Components 7 Building the Sample Visual C++ SNMP Manager The Source Code Components snmpdefs.h and snmpmgr.c provide the codebase snmpdefs.h is comprised of three main sections Symbolic constants for SNMP operations Global variables Available function calls Revised Spring 2006 Rudimentary NMS Software Components 8 Building the Sample Visual C++ SNMP Manager Structure of the Sample Program Supports the following operations GET GETNEXT SET WALK TRAP Revised Spring 2006 Rudimentary NMS Software Components 9 Using the Rudimentary Management System Basic Architecture Revised Spring 2006 Rudimentary NMS Software Components 10 Using the Rudimentary Management System An SNMP GET Revised Spring 2006 Rudimentary NMS Software Components 11 Using the Rudimentary Management System An SNMP GETNEXT Revised Spring 2006 Rudimentary NMS Software Components 12 Using the Rudimentary Management System An SNMP SET Revised Spring 2006 Rudimentary NMS Software Components 13 Using the Rudimentary Management System An SNMP TRAP Revised Spring 2006 Rudimentary NMS Software Components 14 Using the Rudimentary Management System Combining the Batch Files These batch files can be chained together For example, a SET followed by a GET A real NMS uses this type of logic to create rich sets of functions Revised Spring 2006 Rudimentary NMS Software Components 15 Using the Rudimentary Management System A Security Violation Security is increasingly important in network management Two actions a remote agent should take upon receiving an incorrect community string Discard the message so that no reply occurs Emit an authenticationFailure(4) trap Revised Spring 2006 Rudimentary NMS Software Components 16 Using the Rudimentary Management System Security Failure and Associated Actions Revised Spring 2006 Rudimentary NMS Software Components 17 Using the Rudimentary Management System Security Violations and Retries Revised Spring 2006 Rudimentary NMS Software Components 18 A Note On Security Types of network attacks Hacking Denial of Service Message interception Message modification Message replay Protection must be provided at all levels Revised Spring 2006 Rudimentary NMS Software Components 19 The Sample JDMK Java SNMP Manager Evaluation copies of JDMK toolkit can be downloaded from Sun Microsystems The code used for this example implements the following SNMP requests GetRequest GetNext Revised Spring 2006 Rudimentary NMS Software Components 20 The Sample JDMK Java SNMP Manager Installing JDMK Install the Java Development Kit (JDK). Text example used Java 2 SDK Standard Edition v1.3.1_02 Install JDMK. Text example used JDMK 4.2 for JDK 1.1.8 and for Java 2 Platform Run Setup.bat Extracts JDMK class files jdmk42_nt-12.class jdmk42_nt_11.class Revised Spring 2006 Rudimentary NMS Software Components 21 The Sample JDMK Java SNMP Manager Installing JDMK (continued) Set environment variables. Text examples shown below JDMKPATH=C:\Program Files\SUN\Wjdmk\jdmk4.2\1.2 PATH=%JDMKPATH%\bin;C:\jdk1.3.1_02\bin CLASSPATH=%JDMKPATH%\lib\collections.jar; %JDMKPATH%\lib\jdmkrt.jar; %JDMKPATH%\lib\jdmktk.jar; Ensure SNMP agent has two configured community strings public (read-only) private (read-write) Revised Spring 2006 Rudimentary NMS Software Components 22 Building the Sample Java Manager mib_II.txt – Contains the definition of the MIB II standard objects SynchronousManager. java – Contains the Java class that sends either and SNMP GET or getNext message Get.bat – Executes single SNMP GET GetNext.bat – Executes single SNMP getNext Revised Spring 2006 Rudimentary NMS Software Components 23 Building the Sample Java Manager To Build the Java Program Two commands are required mibgen –mo –d . mib_II.txt This builds a file called RFC1213_MIBOidTable.java javac –d . *.java Creates the bytecode file SynchronousManager.class Revised Spring 2006 Rudimentary NMS Software Components 24 Building the Sample Java Manager An SNMP GET Revised Spring 2006 Rudimentary NMS Software Components 25 Building the Sample Java Manager An SNMP GETNEXT Revised Spring 2006 Rudimentary NMS Software Components 26 Building the Sample Java Manager The Structure of the Synchronous Manager Simple. All of the code is contained in one file that also contains a Java class Operation Command line options are validated Required operation is recorded API is prepared for making SNMP calls SNMP request is executed Exceptions are caught in a try/catch block Revised Spring 2006 Rudimentary NMS Software Components 27 Building the Sample Java Manager The Synchronous Manager JDMK API provide synchronous and asynchronous operation Production standard NMS needs to be asynchronous. It could be synchronous if it used multiple threads Book examples are synchronous for simplicity Revised Spring 2006 Rudimentary NMS Software Components 28 Building the Sample Java Manager Comparing the Visual C++ and JDMK 4.2 APIs Revised Spring 2006 Rudimentary NMS Software Components 29 Ways to Improve the Two Sample Programs Make operations asynchronous Move parameters off the command line or encrypt them Make the programs independent of MIB object specifications Provide a facility for adding support for new MIBS Revised Spring 2006 Rudimentary NMS Software Components 30 Ways to Improve the Two Sample Programs (continued) Allow multiple OIDs in one PDU Move all SNMP API code into a separate module or a separate server Remove global variables Provide a non-debug version of the C++ program Revised Spring 2006 Rudimentary NMS Software Components 31 Ways to Improve the Two Sample Programs (continued) Allow table-based operations Provide an external data sourse other than the command line Support SNMPv3 Revised Spring 2006 Rudimentary NMS Software Components 32 Extending the Sample SNMP Programs Utilize distinct or possibly distributed components Fault server Configuration server Accounting server Performance server Security server Straight-forward to build a complex system once basic agent and management entities are in place Revised Spring 2006 Rudimentary NMS Software Components 33 Selected Bibliography Microsoft Visual C++ Link to Microsoft Visual C++ (http://msdn.microsoft.com/visualc/) Link to SNMP Builder for C++ (http://www.hallogram.com/snmpc++/) Sun Microsystems JDMK Link to Sun Microsystems JDMK (http://www.sun.com/software/jdmk/) Revised Spring 2006 Rudimentary NMS Software Components 34 Summary Two simple programs that interact with Windows NT/2000/XP SNMP agents Visual C++ Java SNMP’s process of handling security violations was demonstrated These programs can be used individually or together as building blocks for more complex systems or a NMS Revised Spring 2006 Rudimentary NMS Software Components 35