The Network Diagnostic Tool (NDT) Server was developed by Internet2 to assist users of research and education (R&E) networks to troubleshoot and measure network performance. Further details can be found at http://e2epi.internet2.edu/ndt/index.html
This installation is based on the NDT server instructions that can be found at Internet2, using Ubuntu 8.10 server. The KAREN NDT Server is currently based on the build detailed below.
An alternative ( and very easy option ) of installation, is using the ready made Performance Toolkit ISO which is available at http://www.internet2.edu/performance/toolkit/index.html. Its based on a Knoppix Boot CD.
Perform a standard installation of Ubuntu 8.10 server.
Edit /etc/network/interfaces to enable IPv6
apt-get update
apt-get upgrade
passwd root
su
apt-get install binutils cpp sendmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential libstdc++6 rcconf libio-pty-perl libnet-ssleay-perl libauthen-pam-perl libmd5-perl gcc gcc-3.4 cpp libpcap-dev kernel-package libncurses5 libncurses5-dev libqt3-mt-dev python2.5-dev fakeroot wget bzip2 libncurses5-dev libreadline5-dev libimlib2 libimlib2-dev sun-java5-bin sun-java5-jdk sun-java5-jre csh
Once these packages are successfully installed download the Web100 and NDT source files.
cd /usr/src
wget http://e2epi.internet2.edu/ndt/download/ndt-3.5.0.tar.gz
wget http://www.web100.org/download/kernel/2.5.22/web100-2.5.22-200810130047.tar.gz
wget http://www.web100.org/download/userland/version1.7/web100_userland-1.7.tar.gz
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2
Extract the New Kernel
tar xjf linux-2.6.27.tar.bz2
Create a symliynk for the newly extracted kernel
ln -s linux-2.6.27 linux
Move into the kernel directory
cd /usr/src/linux
Extract the patch
tar -xvzf /usr/src/web100-2.5.22-200810130047.tar.gz
bzip2 web100/ web100-2.6.27-2.5.22-200810130047.patch
Test the patch
bzip2 -dc /usr/src/linux/web100/ web100-2.6.27-2.5.22-200810130047.patch.bz2 | patch -p1 --dry-run
The output should be similar to what is shown below:
patching file Makefile patching file Documentation/web100/locking.txt patching file Documentation/web100/proc_interface.txt patching file Documentation/web100/sysctl.txt patching file fs/proc/Makefile patching file fs/proc/root.c patching file fs/proc/web100.c patching file include/linux/netlink.h patching file include/linux/proc_fs.h patching file include/linux/sysctl.h patching file include/linux/tcp.h patching file include/net/tcp.h patching file include/net/web100.h patching file include/net/web100_stats.h patching file net/ipv4/Kconfig patching file net/ipv4/Makefile patching file net/ipv4/sysctl_net_ipv4.c patching file net/ipv4/tcp.c patching file net/ipv4/tcp_cong.c patching file net/ipv4/tcp_input.c patching file net/ipv4/tcp_ipv4.c patching file net/ipv4/tcp_minisocks.c patching file net/ipv4/tcp_output.c patching file net/ipv4/tcp_timer.c patching file net/ipv4/web100_stats.c patching file net/ipv6/tcp_ipv6.c
If there are no errors, then it is safe to proceed. Patch the kernel with the following command:
bzip2 -dc /usr/src/linux/web100/web100-2.6.27-2.5.22-200810130047.patch.bz2 | patch -p1
Determine your existing kernel version using
uname –r
Copy your existing configuration, replacing ‘uname-r’ with the output received above, with this command:
cp /boot/config-`uname -r` ./.config
Activate the web100 patch before recompiling the kernel.
make menuconfig
Follow the screenshots below to enable Web100 Network Enhancements.
Choose "exit" four times, and save your new kernel.
Make-kpkg may cause an “unexpected operator” error. If this occurs remove XEN support using make menuconfig. It can be found in Processor Type and Features >> Paravirtualized Guest Support >> Xen.
Issue
make-kpkg clean
then
fakeroot make-kpkg --initrd --append-to-version=-web100 kernel_image kernel_headers
NOTE: This process could take several hours
Check for the presence of the new files
cd /usr/src
ls –l
You should see two files named
linux-headers-2.6.27-web100-web100_2.6.27-web100-web100-10.00.Custom_i386.deb
linux-image-2.6.27-web100-web100_2.6.27-web100-web100-10.00.Custom_i386.deb
Assuming they are both there install them using
dpkg -i linux-image-2.6.27-web100-web100_2.6.27-web100-web100-10.00.Custom_i386.deb
then
dpkg -i linux-headers-2.6.27-web100-web100_2.6.27-web100-web100-10.00.Custom_i386.deb
Reboot the new server making the kernel active
shutdown –r now
Once the server has rebooted check the new kernel version using
uname –r
The output should be
2.6.27-web100-web100
cd /usr/src/
tar -xvzf web100_userland-1.7.tar.gz
cd web100_userland-1.7
./configure --enable-python
make
make install
NOTE: You may encounter python errors because python is installed in …/python2.x directory instead of …/python.
ln -s /usr/include/python2.5 /usr/include/python
ln -s /usr/lib/python2.5 /usr/include/python
This should resolve the python problem.
Remove the files that are no longer needed.
cd ..
rm -Rf web100_userland-1.7
rm web100_userland-1.7.tar.gz
tar -xvzf ndt-3.5.0.tar.gz
cd ndt-3.5.0
./configure
make
make install
A script has been provided to edit the html page
cd conf/
./create-html.sh
Enter the appropriate details for the NDT web page, accepting defaults where required.
Remove files that are no longer required
cd ../..
rm -Rf ndt-3.5.0
rm ndt-3.5.0.tar.gz
rm web100-2.5.22-200810130047.tar.gz
/usr/local/sbin/fakewww >& /dev/null & /usr/local/sbin/web100srv —ipv4 >& /dev/null & /usr/local/sbin/web100srv —ipv6 >& /dev/null &
You can now connect to the NDT using the URL http://<your_server>:7123
Configure the process start commands to run on start up.
Create the following script in /etc/init.d
vi ndtstart.sh
Echo “Starting NDT” /usr/local/sbin/fakewww >& /dev/null & /usr/local/sbin/web100srv -a >& /dev/null &
Make the file executable
chmod +x ndtstart.sh
Then edit /etc/rc.local
Add the follow line to the bottom of rc.local
/etc/init.d/ndtstart.sh
Using a browser with java enabled http://<server IP address>:7123