SNMP, LDAP and SOAP Together for a distributed Network
Management Experience
Goal
To implement and deploy a distributed network management system based on
collecting information from agents (SNMP), discovered
through a directory service (LDAP), monitoring and
steering them using an interoperable messaging (SOAP).
1- Introduction
As networks grow in size and in demand, monitoring the
state of the network is becoming critical to avoid
congestion, security breaches and various network
bottlenecks that might occur in any Local or Wide area
networks.
The inherent heterogeneity of a local/wide area network
require from the network management infrastructure to be
as platform independent as possible, thereby imposing a
clear definition of the underlying protocol; the
extensible markup language (XML), self-describing language
allows such a protocol definition to be platform
independent and also provides a human readable description
of its content; these two points make XML a language of
choice in the design of a messaging for a network
management tool.
With the growth of the internet and of new approaches to
computing such as Grid computing, providing seamless
access to resources; the issue of resource/peer discovery
raises a need for distributed directory services capable
of synchronizing their information in an optimal
manner.
The Lightweight Directory Access Protocol (LDAP) is an
effort to provide lightweight directory lookup information
accross a heterogeneous network of peers.
This paper will present the DIMM (Discovery Messaging
Management) infrastructure, enabling SNMP management to
hosts discovered through LDAP directories and using an
XML-based messaging (SOAP); Section 2 will describe the
issues of Discovery, Messaging, Management separately, and
the chosen application solutions will be presented, in
section 4, background and related work will be presented,
section 5 will go through a typical usage
scenario. For reference purposes, installation and
configuration
of the tools used can be found in the appendix.
2- Components of a Network Management system
Any distributed system includes a discovery
mechanisnm, an application and a messaging definition.
2.1- Discovery mechanism
In a distributed network, discovering peers/resources is
a mechanism that can go from a simple query to a central
location known to everyone to a complex distributed
location involving advanced querying mechanisms across the
nodes of the network.
The requirements of a discovery mechanism in a network
management system is to locate a peer or a resource and
provide routing to it in an efficient (number of hops,
time) manner.
Additionaly, a discovery mechanism should be scalable,
allowing any host/node joining the network to be added to
the list of active hosts that could be looked up.
The Domain Name Server (DNS) is the most popular and
currently most scalable discovery mechanism; it is based
on a
hierarchichal lookup mechanism in which a server
(domain name server) runs the BIND utility, which will
convert the name of the requested Uniform Resource
Locator name into its equivalent IP address, if the entry does not
exist in the database, a recursive lookup to a referring domain name
server is performed until the entry is matched, this new
entry is then locally cached for later accesses.
Request forwarding mechanisms such as the ones implemented
in Chord, Pastry of the Content-Addressable Network are
based on a more decentralized approach in which every
entry information is stored at a predefined place (given
by a specific hashing mechanism) and replicated through
some replication policies, the lookup is performed based
on hashing the content to be matched and routing through the
overlay network towards the destination pointed out by the
result of the hash function.
In both of these cases, frequency of updates is an issue
that does not have an immediate answer since the scale of
the entries might get out of proportion (in the scale of
DNS, the internet connected world).
The fundamental question that needs to be resolved is how
to synchronize those distributed entries so that
querries can be guaranteed to get a valid response and
that information stays up to date.
2.2- The network management application
The ability of a network to perform efficiently given its
parameters depends on how well it can stay out of
congestion.
In today's growing network size, network management tools
are becoming essential to control the flow of information
across domains. Network administrators need to move from
the tedious job of analyzing log files to a more efficient
and ubiquitous way of monitoring and controling their
network.
This change will require a system to run an information
gathering agent and a functionality for manager to query
this collected information station.
The ISO Network Management Model has identified the
different requirements of a management architecture by
breaking it up into five areas: {performance, configuration,
accounting, fault and security} management.
The goal of Performance Management is to measure the
performance of network-related componenets of a system in
order to maintain an optimal internetwork functioning.
In a Configuration management system information related
to the managed device is maintained in the information
base for a quick analysis by the network administrator
regarding the device/system configuration; such
information can be: {Operating System, Ethernet Interface,
TCP/IP software, Netware Software, NFS software, Serial
Communication, SNMP ....}
An Accounting management tool measures the
network-utilization parameters in order to better
understand the usage of the system and therefore tweak the
system for optimal resource utilization.
Fault Management's objective is to detect, log, notify
users of, and if possible automatically fix network
faults/problems to keep the network running effectively.
Security Management is responsible for monitoring and
policing network accesses in order to maintain rights of
access to the network by enforcing rules and access
control.
2.3- The messaging
Any distributed system is based on the capability of nodes
to send messages to other nodes in order to perform an
operation.
This messaging can be more or less complex depending on
the requirements of each endpoint. In a network management
system, the need for a heterogeneous messaging, involving
a clear description of the underlying protocols is
fundamental.
The architecture of such a messaging service requires
endpoints to establish a virtual channel on top of the
point-to-point connections between the nodes involved in
the query/response message.
There has been several approaches to messaging systems so
far among which we can point out:
Raw network, Remote Procedure Calls, the Electronic mail
and message oriented middleware.
In a Raw Network type of messaging, every possible transaction
has to be taken care of yielding to high bandwidth
(because built right on top of the network protocols) but
extensive developement of the endpoint message handlers.
A Remote procedure call infrastructure in which specific
subroutines/methods are invoked at a remote end has the
advantage of being simple to deploy.
The elctronic mail system, is today one of the most
commonly used collaborative tool, despite all the efforts
of much more advanced collaborative application providers.
One of the reason for this is probably its extensive
deployment and the numerous clients that implement the
Simple Message Transport Protocol (SMTP). It has the
advantage of being asynchronous and simple but on the
other hand is unreliable and provides no guarantee of
receipt.
A Message Oriented Middleware is somewhat the
"combination" of all of the above messaging system, it is
based on a middleware set of message brokers that
similarly to the ground mail dispatch centers, distribute
messages to the different endpoints. It is not an elegant
solution for high-bandwidth streamed media; comparatively,
sending a letter through ground mail is not going to reach
destination in the next second.
3- Selected Solutions to be studied
3.1- OpenLDAP
Directories can be seen as specialized databases
providing reading, browsing and searching
capabilities. Since directory entries are not meant to be
changing very often and that a directory is more often
read than written, they do not provide advanced complicated
transaction schemes as found in database management
systems. Directory updates are typically simple all or
nothing changes.
In a network management system, finding a host that
matches a profile is of major importance; a system
administrator might need a list of all the hosts in the
LAN which have an open connection to a specific address,
or all hosts which have a specific port open...
LDAP securely stores mnemonic strings in a hierachical tree-like
structure, referenced through a distinctive name and allows
searches to be filtered on a criteria basis.
The attributes of the entries are defined in Schema files
that describe the structure of the data.
Why LDAP ? :
As mentioned above, LDAP is a directory service protocol
as well as a back-end database, it is intended to be used
in systems where data is more often read than written (no
frequent updates) and provides simple querying features
based on simple filters.
Given that our system requires registration of each
managed device in a directory and that the device won't
get to update its entry very often, LDAP seems to be an
interesting technology to use.
3.2- Simple Network Management Protocol
The Simple Network Management system allow administrators/managers
to query agents monitoring a device (bridges, hubs,
routers, network servers etc...). The network-Information
is stored in a Management Information Base which can be
thought of as an Information Warehouse.
A typical agent usually:
- Implements full SNMP protocol
- Stores and retrieves management data as defined by the
Management Information Base
- Can asynchronously signal an event to the manager
- Can be a proxy for some non-SNMP manageable network
node.
A typical manager usually:
- Implements full SNMP protocol
- Is able to
- Query agents
- Get response from agents
- Set variables in agents
- Acknowledge synchronous events from agents
In order to allow information to be queried and modified,
information is structured following the Structure of
Management Information (SMI).
The SMI states that each managed object must have a
name,
a syntax and an encoding.
The name uniquely identifies the object, the syntax
defines the data type, the encoding describes how the
information is serialized for transmission.
- SNMP access particular instances of an object
- All instances of an object in the MIB reside at the
leaf of the MIB tree
- SNMP protocol access objects by formaing an Object
identifier of form x.y where x the true OID for the object
in the MIB, and y is a suffix specified by the procol that
uniquely identifies a particular instance.
Why SNMP ?
Standards in Network Management include the Simple Network
Management Protocol and the Common Management Information
Protocol, they actually both work in a very similar
manner.
CMIP is known to be more robust, secure and elaborate than
SNMP but it also requires more system resource and is more
difficult to program, which might explain its less popular
aspect.
3.3- Simple Object Access Protocol
SOAP is a way to invoke methods on classes
and objects that exist on remote servers; it is a more
advanced version of the earlier XML-RPC remote procedure
call mechanism, compared to which it provides fault
handling and a more extensive list of data types handling. It is emerging
as an Internet-Friendly alternative to other component based
languages such as DCOM, CORBA.
SOAP is theoretically transport independent, therefore using it on top
of HTTP has made it quite popular, although it currently
only defines HTTP as a transport protocol in the specification.
SOAP uses the self-describing eXtensible Markup Language for the syntax; by leveraging those two (HTTP+XML)
ubiquitous technologies it naturally inherits many advantages among
which is interoperability, ubiquity and pervasiveness.
SOAP consists of three parts:
- The SOAP envelope construct defines an overall
framework for expressing what is in a message; who should
deal with it, and whether it is optional or mandatory.
- The SOAP encoding rules defines a
serialization mechanism that can be used to exchange
instances of application-defined datatypes.
- The SOAP RPC representation defines a
convention that can be used to represent remote procedure
calls and responses.
The motivation for such a protocol was to resolve the
interoperability issues that currently tie application
developpers to specific implementations and limit the
interchange of information across systems.
By leveraging the eXtensible Markup Lanaguage, SOAP
allows querries and responses to be in an human-readable
intermediary format and can be directed to the handler of
choice.
Current drawbacks of such a framework is paradoxally
closely linked to its advantages in that the intermediary
format generates an overhead in the messaging that cuts
down performance and therefore limits the usability of
such a framework for very systems requiring frequent
changes and updates.
Being an advanced form of XML-RPC, offering an inherent
interoperable caracteristic, SOAP is a technology that
promises to grow exponentially and successfully.
Known limitations of SOAP include :
- The current SOAP spec describes how SOAP payload can
be transmitted via HTTP, but does not address any other
protocols.
- SOAP does not address higher-level issues such as
object activation or lifetime management.
- SOAP does not mandate any particular language for interface
description, although the XML Schema specification is a
reasonable way to describe interfaces and user-defined
types.
SOAP was designed with simplicity and extensibility in
mind, therefore some features from traditional messaging
systems and distributed object systems are not part of the
core SOAP specification, such as :
- Distributed Garbage Collection
- Boxcarring or batching of messages
- Objects by reference
- Activation
4- Description of the experimental setup
Components
SNMP
The simple network management protocol system that was
deployed is the freely available
net-snmp project
(Version 4.2.2) that can be found at http://net-snmp.sourceforge.net.
This work was based on the Carneggie Mellon and University
of California at Davis SNMP implementations.
It provides:
An extensible agent, An SNMP library, tools to request or set information from SNMP agents,
tools to generate and handle SNMP traps.
It runs on almost any flavor of Unix including (Linux
OpenBSD Solaris Irix).
The client allows the basic GET, SET, GETNEXT, WALK and TRAP through
the MIB trees and more advance features such as TRANSLATE,
STATUS, NETSTAT and TEST.
SNMP was deployed on a Linux Debian [kernel 2.4.2] running
on a Pentium II 350MHz, with the standard mibs:
system, interfaces, ip, tcp, udp, icmp, snmp
OpenLDAP
Version 2.0.18.
Provides the stand-alone (slapd) and replication engine
(slurpd).
Provides client tools : ldapadd, ldapmodify, ldapdelete,
ldapsearch.
SOAP
Deployed SOAP::Lite, a perl binding to SOAP back-end as
well as the perl SOAP client for querying any soap-enabled
back-end.
Also deployed the Apache-SOAP on top of Tomcat servlet+jsp
engine.
4-2 Putting them together
The idea is to look for an SNMP managed device in the
directory service and use a SOAP client to query the
returned device.
4-2.1 The LDAP lookup
Each managed device registers to an LDAP directory using
a distinguished name (DN) entry such as:
dn: cn=node1, dc=netw-manag, dc=com
cn: node1
objectclass: top
objectclass: device
objectclass: ipHost
cn: node1.netw-manag.com
ipHostNumber: 138.89.1.11
macAddress: 00:00:92:90:ee:e2
description: pentium III 1GHz
l: Piscataway, New Jersey
c: US
Performing a search on the host at netw-manag.com for
objectclasses device would return this entry.
The following command-line search shows how this could be done.
ldapsearch -b 'cn=Manager,dc=netw-manag,dc=com' 'objectclass=device'
Once the information is retrieved from the Directory, the
manager gets to know of:
a short description of the managed device, its IP address
and is then ready to establish a direct connection to this
node through a SOAP request.
4-2.2 The SOAP query
#!/usr/bin/perl
use SOAP::Lite;
$client=SOAP::Lite->uri('SNMP');
$myproxy=$client->proxy('http://netw-manag.com/soap/');
$myresult=$myproxy->get(mib)->result;
print "SNMP Response: ".$myresult. "\n";
The client initiates a request to the back-end server
by invoking the remote method triggering the SNMP
response.
Given this mechanism, the client does not
need an SNMP client API but requires a SOAP client access
to the back-end service.
The back-end handles the call by acting as a bilingual
translator between SOAP and SNMP
#!/usr/bin/perl -w
use SOAP::Transport::HTTP;
SOAP::Transport::HTTP::CGI
-> dispatch_to('SNMP')
-> handle;
package SNMP;
sub get($ARG) {
$res=`snmpget localhost public $ARG`;
return $res;
}
Conclusions
In this work, three growing technologies (SNMP, LDAP, SOAP) were evaluated and
combined to provide an interoperable network management system in
which managed devices are discovered through a directory service.
Despite the efficiency inducing such increasing popularity in each
of these technologies, the benefit of combining them does not appear
to be optimal given the problem to be solved.
The advantages of such a system is to leverage the SOAP remote
procedure call and messaging capabilities, providing clients with
the ability to query remote LDAP and SNMP servers without the need
of their local respective client-side APIs; on the other hand,
servers require SOAP to be deployed and provide a strong
binding between the back-end applications (LDAP or SNMP) and the
remote procedure call.
Appendix A
Apache-Tomcat setup
- Install Apache
- Install Tomcat
- Install mod_webapp (connector for apache)
- Modifiy Apache/conf/httpd.conf to contain
LoadModule webapp_module modules/mod_webapp.so
AddModuel mod_webapp.c
...
WebAppConnection conn warp localhost:8008
WebAppDeploy /proj conn
Appendix B
Apache-SOAP
Apache SOAP is a java-only (for now) SOAP binding.
- Install soap
- Deploy soap as a Context in Tomcat or copy the
soap.war file directly into Tomcat/webapps
- When deploying services make sure that SOAP has access
to the classes through the CLASSPATH variable in
catalina.sh
- deploy the service
- Access the service from any SOAP client
Appendix C
SOAP::Lite
SOAP::Lite is a perl to SOAP binding.
- Install Apache and enable it for cgi's
- Install soaplite
- add CGI-based SOAP servers in Apache's cgi-bin
directory. Make sure that the script contains the
#!/usr/local/bin/perl or wherever path to per you require
- access the service through any SOAP client
Appendix D
OpenLDAP
Links
Network Management
SNMP-Simple Network Management Protocol
The Net-SNMP project
Network Weather Service
Apache SNMP modules;
check
http://www.simpleweb.org/
for general information
Network Management at Buffalo
Simple Times:Publications devoted to SNMP
Network Management Using Internet
Technologies;Franck Barillaud IBM
SOAP::Simple Object Access Protocol
SOAP Specification
1.1
IBM developerwork SOAP Tutorial
Quick start guide to SOAP using SOAP::Lite
SOAP
Chapter
12 of
Java & XML, O'Reilly publishing, Brett
McLaughlin
LDAP::Lightweight Directory Access Protocol
LDAP Linux HOWTO
LDAP Implementation HOWTO
OpenLDAP 2.0 Administrator's Guide