For years we enjoyed pushing the limits of our software products (our nBox recorder is able to handle multi-10Gbit interfaces for instance), but our roots are not there. All started in 2003 with this small PowerPC-based nBox
where we have first integrated nProbe into it. Now after 10 years, it is time to rethink all this and try again. On the market there are several small and cheap platforms such as the Raspberry Pi, the BeagleBone Black and the EdgeMax that are ideal platforms for our apps. We have then decided to start our endeavour with the BeagleBone. As we plan to release a new ntopng version in the near future, we decided to refresh out software and make sure it works out-of-the-box on it.
The BeagleBone Black is a 45$ ARM-powered board fast enough to run our apps (1 GHz CPU)
beaglebone:~$ cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 2 (v7l) BogoMIPS : 990.68 Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x3 CPU part : 0xc08 CPU revision : 2 Hardware : Generic AM33XX (Flattened Device Tree) Revision : 0000 Serial : 0000000000000000
and equipped with 512 MB of RAM and 2 GB of storage. It comes with Ångström Linux and all you have to do is to compile the apps. Both nProbe and ntopng compile out of the box from source code. For sake of space we cover ntopng compilation that is more complex than nProbe to compile, due to its dependencies. The first step os to install the prerequisites as follows:
opkg install subversion libpcap rrdtool-dev wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-stable make
Done that it is time to compile ntopng as follows
svn co https://svn.ntop.org/svn/ntop/trunk/ntopng/ cd ntopng ./configure make
That’s all. Now you can start ntopng as you do on your Linux or Windows box.
nProbe
beaglebone:~/nProbe$ ./nprobe -v Welcome to nprobe v.6.15.131010 ($Revision: 3730 $) for armv7l-unknown-linux-gnueabi Copyright 2002-13 by Luca Deri <deri@ntop.org>
ntopng
beaglebone:~/ntopng$ ./ntopng -h ntopng armv7l v.1.0.2 (r6859) - (C) 1998-13 ntop.org Usage: ntopng or ntopng [-m ] [-d ] [-e] [-g ] [-n mode] [-i <iface|pcap file>] [-w ] [-p ] [-P] [-d ] [-c ] [-r ] [-l] [-U ] [-s] [-v] [-C] [-F] [-B ] [-A ] ...
Resource usage is pretty low and there is plenty of room for running ntopng.
top - 17:37:59 up 2:00, 4 users, load average: 0.05, 0.33, 0.58 Tasks: 114 total, 1 running, 111 sleeping, 2 stopped, 0 zombie Cpu(s): 6.7%us, 3.8%sy, 0.0%ni, 88.8%id, 0.0%wa, 0.0%hi, 0.6%si, 0.0%st Mem: 510820k total, 505692k used, 5128k free, 32464k buffers Swap: 0k total, 0k used, 0k free, 337412k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 13519 nobody 20 0 114m 11m 5128 S 5.7 2.4 0:27.73 ntopng 13550 deri 20 0 2628 1160 896 R 2.9 0.2 0:00.21 top 13503 root 20 0 27760 1852 1116 S 0.6 0.4 0:04.10 redis-server
As future work items, after ntopng 1.1 has been released, we plan to optimise our apps for these low-cost platforms so that everyone can monitor its Internet connection at low cost without purchasing complex (to configure and maintain) and expensive devices.
We cannot tell you more, but more news will follow. Stay tuned!
PS. When used tethered the BeagleBone has 2 ethernet interfaces (you need one for management and one for receiving packets to analyse). You can add an extra ethernet interface using a USB Ethernet adapter if you need an extra monitoring port.