You will find on this page some instructions to use IPFM, in order to monitor bandwidth usage on a global network.

See also :

License : GPL
Authors : Robert CHERAMY <[email protected]>, Andres KRAPF <[email protected]>
Home Page : http://www.via.ecp.fr/~tibob/ipfm/

Installation

To install IPFM, the following things are required :

  • libpcap, libpcap-dev
  • IPFM sources

Then, you just have to

  • Compile : make
  • Install : make install
  • Launch IPFM : ipfm

Patch

I have modified slightly the source code to adapt IPFM for my personal use.
Here are the changes :

  • Meaning of NOT WITH in the configuration file has changed : it does not mean anymore A of the network MaskA in relation with B of the network MaskB, but A belongs to the MaskA network, but not to the MaskB network.
    This is useful when you want to log only communication with a global network, and not those on the local network.
  • capability of writing the file several time for the same log period.
    This is useful when you intend to monitor your use of the network all the day long, and not only at the end of the day.

WARNING : Help files have not been modified. Changes are made clear in the source code, in the files data.c and filter.c.

Source code is available here.

Quick view script

This is a small script to have a quick view on your total use of the global network. Do not forget to make the script executable, and to have ipfm launched, then just type ./ipfm-status. You maybe would have to modify the log source name.

Download this script

Configuration

Here is my configuration file. For more information, please refer to the man page.

See ipfm.conf

Correction

As somebody told me, you can have these features using the standard version of IPFM :

  • Log just the global network : LOG BOTH 138.195.128.0/255.255.240.0 NOT WITH 138.195.0.0/255.255.0.0. Tell IPFM to LOG in BOTH way (send, receive)the traffic between your machine (here 138.195.xxx.yyy), and all other machines except (NOT WITH) those in the 138.195 subnet.
  • And you can write in different files, and then concatenate these files with a script.

As you can see, sometimes the C source code is more understandable than the man page :-).