Manual pages

The SiLK IPset distribution is a subset of SiLK that packages the following command line tools:

rwsetbuild

Read (textual) IP addresses in canonical form or in CIDR notation from an input file or from the standard input and write a binary IPset file.

rwsetcat

Print the contents of a binary IPset file as text. Additional information about the IPset file can be printed.

rwsetmember

Determine whether the IP address or CIDR block specified on the command line is contained in an IPset.

rwsettool

Perform union, intersection, difference, and sampling functions on the input IPset files, generating a new IPset file.

Installation

The SiLK IPset distribution contains a subset of the tools in the SiLK distribution. There is no need to install both SiLK IPset and SiLK.

In general, you can install SiLK IPset by running
./configure ; make ; make install

The configure script has many options to control how SiLK IPset is built and where it is installed. To see the full list of options, run
./configure --help
This document highlights the most important options.

  • --prefix
    • By default, SiLK IPset is installed under the directory /usr/local. If you wish to specify a different location, run configure with the --prefix option and give the location as the argument to the switch, for example --prefix=/usr
  • --enable-ipv6
    • SiLK IPset is built without IPv6 support by default. To enable IPv6 support, provide the --enable-ipv6 switch to configure.
  • --disable-applications
    • By default, the Makefiles build and install the libskipset.so library, the command line tools (e.g., rwsetbuild), and the tools' manual pages.
    • Use the --disable-applications switch to configure the Makefiles to only build the libskipset.so library. For example, you may use this when the command line tools are already installed as part of a complete SiLK installation.
    • (Since SiLK IPset 3.10.0.)
  • --enable-ipset-compatibility
    • The default behavior of the tools is to write IPset files using the oldest record formats, ensuring that older versions of SiLK and SiLK IPset are able to read the files written by newer releases.
    • If compatibility is not usually a concern, the output record format that the tools use by default may be modified by specifying the --enable-ipset-compatibility switch to configure. The argument to the switch is the version of SiLK IPset with which files are to be compatible, such as 3.4.5. The switch accepts any release number, and the IPset record versions for IPv4 IPsets and IPv6 IPsets are selected by determining into which of the following ranges the release number falls:
      Min releaseMax release IPv4 IPsetIPv6 IPset
      3.14.0 999.999.999 45
      3.7.0 3.13.999 44
      0.0.0 3.6.999 23
    • This switch only changes the record version that the tools write by default. Users are still able to tell the tools to write files using the other record versions by setting the SILK_IPSET_RECORD_VERSION environment variable or using the --record-version switch.
    • SiLK IPset uses the values in the final row of the able table when the --enable-ipset-compatibility switch is not given or when the switch is given but the argument is either illegal or missing.
    • (Since SiLK IPset 3.14.0.)
  • --enable-output-compression
    • SiLK IPset has the ability to use third-party libraries to compress the data section of its binary files. At run-time, the user may decide how to compress the binary IPset file (assuming the required library was found at compile-time as described below). When you run configure, you may use the --enable-output-compression option to specify the compression that is used by default when the user does not specify one at run-time.
    • Subject to library availability, you may specify one of these arguments to the switch:
      • lzo1x to choose the LZO real-time data compression library
      • snappy to choose snappy compression (Since SiLK IPset 3.13.0.)
      • zlib to choose zlib compression (the library used by gzip)
      • none to choose no compression
    • If --enable-output-compression is specified with no argument, the configure script will use the first available of lzo1x, snappy, zlib, or none. When the option is not specified, configure uses none.
  • compression libraries and headers
    • To support output compression (see --enable-output-compression above), third party libraries and their header files are required at build time. The configure script will attempt to find these libraries and headers and use them when they are available. To provide the configure script with information on where these libraries are located on your system, you may use the following options:
    • --with-zlib=ZLIB_DIR
      • Specifies that the libz header file (zlib.h) is in ZLIB_DIR/include and that the zlib library file (libz.so [the suffix may differ on some platforms]) is in ZLIB_DIR/lib.
    • --with-zlib-includes=DIR
      • Specifies that zlib.h is in DIR, overriding the ZLIB_DIR/include location.
    • --with-zlib-libraries=DIR
      • Specifies that libz.so is in DIR, overriding the ZLIB_DIR/lib location.
    • --with-lzo=LZO_DIR
      • Specifies that the LZO header file (one of lzo2/lzo1x.h, lzo/lzo1x.h, or lzo1x.h) is in LZO_DIR/include and that the LZO library file (liblzo2.so or liblzo.so) is in LZO_DIR/lib
    • --with-lzo-includes=DIR
      • Specifies that lzo1x.h is in DIR, overriding the LZO_DIR/include location and disabling the searching of the lzo2 and lzo directories.
    • --with-lzo-libraries=DIR
      • Specifies that liblzo2.so or liblzo.so is in DIR, overriding the LZO_DIR/lib location.
    • --with-snappy=SNAPPY_DIR
      • Specifies that the snappy header file (snappy-c.h) is in SNAPPY_DIR/include and that the SNAPPY library file (libsnappy.so) is in SNAPPY_DIR/lib
    • --with-snappy-includes=DIR
      • Specifies that snappy-c.h is in DIR, overriding the SNAPPY_DIR/include location.
    • --with-snappy-libraries=DIR
      • Specifies that libsnappy.so is in DIR, overriding the SNAPPY_DIR/lib location.
    • Note: Libraries and header files are required when building SiLK IPset from source. Some systems (particularly Linux) provide the header files in a separate "development" package from the run-time library, and you must install the package to allow SiLK IPset to use the feature. For example, the name of the development package for the zlib run-time library name is zlib-devel or zlib-dev depending on the Linux distribution.
  • --enable-static
    • As of SiLK IPset 3.10.0, the static library libskipset.a is no longer built by default. To build both a static and dynamic version of the library, specify --enable-static. To build only a static library, specify --disable-dynamic.