prerequisites -
building and installing Splash -
testing your installation -
special situations
Splash - Installation Guide
SNMP Plus a Lightweight API for SNAP Handling
Prerequisites
To run splash you need to have the following software installed on your system:
-
Linux kernel; tested with 2.4.7 and 2.4.20.
-
gcc; tested with version 2.96 and 3.2.2
-
libc; tested with glibc 2.2.4 and 2.3.2
-
GNU make; tested with v 3.79.1 and 3.80
-
GNU patch; tested with v 2.5.4
We were able to install Splash on both RedHat 7.1 and
Gentoo 1.4_rc4 distros. Installation should pose no
problem on any relatively recent distribution.
We are very interested in build experiences on other
software platforms. Please post a message in the forum if you get it to work on for instance
a system running a v2.2 or 2.5 kernel.
Building and Installing Splash
Automatic
Starting with version 1.0.1 it is possible to install Splash using the
install.sh script bundled with the package.
This will install Splash using the standard options into /usr/local.
Manual
The Splash package consists of three separate modules. It is imperative that these are
compiled in the right order!
To successfully install the system you should build the individual modules in the following
order:
- net-snmp vanilla
- snap_svc
- snap-wjdb
- net-snmp patched
First of all, download net-snmp v 5.0.6 from the
net-snmp project's website.
Detailed installation instructions for net-snmp can be found on their website. However,
if you do not need any special settings, you can simply install the module by executing
the following commands:
tar xvzf [packagename].tgz
cd [packagename]
./configure && make && make install
Follow the same procedure for building the next two modules (snap_svc, snap-wjdb).
The last module, net-snmp patched, can be built in the same fashion after having been
patched. There's a small introduction into patching below if you don't know how to do
this.
Patching net-snmp v 5.0.6
After having succesfully executed the first three build steps, we can patch the
SNMP daemon to include support for SNAP packets. You can accomplish this by
going to the net-snmp directory and executing the following statement:
patch -p1 < [locationofpatchfile]/net-snmp-5.0.6-snap.diff
When the patch has succesfully been applied, clean up the stale objects from the previous
installation of net-snmp (step 1) and rebuild the package using
./configure && make && make install
Testing your installation
Testing net-snmp
If all modules installed without errors you should now have a bunch of new
applications in /usr/local/bin. To test pure net-snmp
functionality, start up the daemon as you normally would. We recommend using
solely the -f and -L options.
These options disallow snmpd to redirect output and detach itself from the running process.
Test the running daemon by executing a simple snmpget instruction,
for instance:
snmpget -v 2c -c public localhost sysName.0
The program should return the name of the current host. Consult the net-snmp documentation
if snmpd failed to return the right information.
Testing SNAP
To test SNAP, fire up the stand alone daemon, snapd, in one
console. In another console, send a simple packet using snap_exec.
For this, you need to have an assembled SNAP packet. For this purpose you can use the
snap_proto_surveyor.sas packet found in snap_packets.tgz. Optionally, you can download
the file here. Assemble this file
by issuing the following command:
snapas snap_proto_surveyor.sas
Then, you can send the bytecode version of this packet to the local daemon
snap_exec localhost localhost snap_proto_surveyor.sbc
If all went well the client should respond with the following output
DEMUX output = [ok]
Testing Splash enabled snmpd
If the previous tests went fine, test the augmented daemon by restarting snmpd with
the following options: -f -L -S. The last option tells the daemon to listen for
SNAP packets. Now you should be able to both send SNAP pakcets and snmp requests.
The previous two examples are prime candidates to test this functionality.
Finally, you can test the back-end connection
between SNAP and the MIB by issuing a SNAP request that utilizes the snmp backend. For
this purpose you can select the file 1get.sas from snap_packets.tgz
(or download it directly here.
Special Situations
Building Vanilla Snap
Bundled with Splash is an altered version of the SNAP interpreter v1.1. If you do not need
SNMP access, but only SNAP, the installation process will involve some hacking.
The interpreter, packed
in the file snap-wjdb-X.X.tgz, only needs one file from
snap_svc-X.X.tgz,
namely snap_svc.h.
If you want to use services, both packages need to be built in the order given above. However,
if the service infrastructure is of no concern, simply copy the mentioned headerfile into
the interpreter's source directory (under [snap sourcedir]/lib.
Regardless whether the service infrastructure is used or not, the Makefile.am files need to be
altered. In these files, remove all references to net-snmp libraries, i.e. change all
occurrences of
[object]_LDFLAGS = -version-info 1:1:0 -lpthread -ldl -lcrypto \
-lnetsnmp -lnetsnmpagent -lnetsnmphelpers -lnetsnmpmibs
into
[object]_LDFLAGS = -version-info 1:1:0 -lpthread -ldl -lcrypto
in the various files before you start the build process.
Upgrading
Reinstalling a newer version of the software can be troublesome. If you upgrade the
system and receive an error, execute a
make distclean before
doing a make. This is of no concern to new users, of course.
Patching non 5.0.6 net-snmp versions
Patching another (newer) version of the net-snmp package will probably have to be carried out
by hand. There is a chance that the only files we want to patch,
agent/snmpd.c and agent/Makefile.am, are
identical to their 5.0.6 counterparts. In this case the automated patch
will work. Otherwise you can simply copy-paste the few necessary changes from the
diff file.
|