1
0
mirror of https://github.com/Eising/kipketer.git synced 2024-05-11 05:55:17 +00:00
Eising-kipketer/README.md
2017-03-12 17:27:03 +01:00

94 lines
3.1 KiB
Markdown

[![No Maintenance Intended](http://unmaintained.tech/badge.svg)](http://unmaintained.tech/)
# kipketer
A bandwidth testing platform with a strong templating engine
Kipketer was originally developed for Nianet A/S with the purpose of facilitating line testing on a larger scale.
It is now released under the MIT license excluding certain assets, but in an entirely functional state.
It facilitates the configuration of a loop on a remote CPE, and using this loop initiates and reports on throughput and latency tests.
# Installation
This guide is written for a debian-based linux and requires Ruby 2.3 to be installed through external repositories.
## Architecture
The system requires two servers: A test-initiating server, and a
test-receiving server. The test-initiating server also runs the web service.
The system is designed based around a number test pair addresses that are
looped on the back of a device under test (DUT). In production, this was designed
using two VRFs, each containing unique addresses routed via the DUT.
### routing:
Here the 198.18.0.0/15 network is used for testing. 198.18.0.0/16 belongs to
the first vrf and 198.19.0.0/16 belongs to the second. A number of test-pairs
are configured in the following way:
#### transmit-server
```
ip addr add 198.18.0.2/26 dev eth0
ip addr add 198.18.0.3/26 dev eth0
ip route add 198.19.0.2/32 via 198.18.0.1 dev eth0 source 198.18.0.2
ip route add 198.19.0.3/32 via 198.18.0.1 dev eth0 source 198.18.0.3
```
etc.
#### receive-server
```
ip route add 198.19.0.2/26 dev eth0
ip route add 198.19.0.3/26 dev eth0
ip route add 198.18.0.2/32 via 198.19.0.1 dev eth0 source 198.19.0.2
ip route add 198.18.0.3/32 via 198.19.0.1 dev eth0 source 198.19.0.3
etc.
```
## Required software
### Thrulay-ng
This system requires <a href="http://thrulay-ng.sourceforge.net/">thrulay-ng</a>, available on sourceforge.
Compile it locally and add it to your path
### Ruby
Ruby dependencies are handled through bundler, so make sure it's installed through the ruby gem system
```
gem install bundler
```
### Owamp
OWAMP, as part of the perfsonar suite is also required. Compile it from source also
The required file is available here: http://software.internet2.edu/sources/owamp/owamp-3.3.tar.gz
### NTP
OWAMP requires good time service on both servers, as the difference in clock
accuracy will be source of error in the measurements. Therefore it is
recommended to use proper low-stratum NTP-servers and to use physical servers,
not virtual, to these servers.
## Web service
The system runs using the micro-webserver Puma. It's configured in config/puma.rb to bind to a UNIX socket, and designed to be proxied through nginx.
Refer to the nginx documentation on how to proxy to a unix socket.
# Running through docker
Docker is recommended for local development. It runs with a development
environment that allows local testing.
To run the docker, compile the dockerfile and run the docker.sh file.
The docker.sh file leaves you in a shell, and you must run the following
manually:
```
# thrulayd
# owampd -c /etc/owamp
# service ntp start
# cd /opt/app
# bundle install
# puma -C "-" -p 5000
```
Then you can connect to the docker container ip port 5000