Rudimentary NMS Software Components (Chapter 7)

Download Report

Transcript Rudimentary NMS Software Components (Chapter 7)

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