Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# 2.6. Traffic Engineering Demo (PENDING)
## Setup Test-Bed
### Setup libyang
$ sudo apt update
$ sudo apt-get install cmake libpcre2-dev git make build-essential
$ mkdir -p ~/testbed
$ cd ~/testbed
$ git clone git@github.com:CESNET/libyang.git
$ cd libyang
$ git checkout v2.0.0
$ mkdir build; cd build
$ cmake -D CMAKE_INSTALL_PREFIX:PATH=/usr -D CMAKE_BUILD_TYPE:String="Release" ..
$ make
$ sudo make install
### Setup Free Range Routing
$ sudo apt update
$ sudo apt-get install git autoconf automake libtool make libreadline-dev texinfo pkg-config libpam0g-dev libjson-c-dev bison flex libc-ares-dev python3-dev python3-sphinx install-info build-essential libsnmp-dev perl libcap-dev python2 libelf-dev libunwind-dev protobuf-c-compiler libprotobuf-c-dev libsystemd-dev
$ mkdir -p ~/testbed
$ cd ~/testbed
$ git clone git@github.com:opensourcerouting/frr.git
$ cd frr
$ curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
$ sudo python2 ./get-pip.py
$ export CFLAGS="-I /usr/local/include -g -O2"
$ sudo rm -rf /usr/lib/frr
$ sudo rm -rf /var/run/frr
$ sudo mkdir -p /etc/frr
$ sudo mkdir -p /var/run/frr
$ sudo chown -R root:root /etc/frr
$ ./bootstrap.sh
$ ./configure \
--prefix=/usr \
--includedir=\${prefix}/include \
--enable-exampledir=\${prefix}/share/doc/frr/examples \
--bindir=\${prefix}/bin \
--sbindir=\${prefix}/lib/frr \
--libdir=\${prefix}/lib/frr \
--libexecdir=\${prefix}/lib/frr \
--localstatedir=/var/run/frr \
--sysconfdir=/etc/frr \
--with-moduledir=\${prefix}/lib/frr/modules \
--enable-configfile-mask=0640 \
--enable-logfile-mask=0640 \
--enable-snmp=agentx \
--enable-multipath=64 \
--enable-user=root \
--enable-group=root \
--enable-vty-group=root \
--enable-vtysh \
--with-pkg-git-version \
--with-pkg-extra-version=-MyOwnFRRVersion \
--enable-systemd=yes \
--enable-config-rollbacks \
--enable-pathd \
--enable-pcep
$ make
$ sudo make install
### Setup NetGen
$ sudo apt update
$ sudo apt-get install git ruby ruby-dev tmux gettext-base
$ mkdir -p ~/testbed
$ cd ~/testbed
$ git clone git@github.com:sylane/netgen.git
$ cd netgen
$ git checkout teraflow
$ sudo gem install bundler:1.15
$ bundle _1.15_ install
### Run the Test-Bed
First load the [teraflow configuration file](./2-6-teraflow-topology.json) using the webui.
The first time the configuration is loaded may partialy fail because it tries to load the topology before the devices and links, but a second load should work.
In first console:
$ cd ~/testbed
$ ../tfs-ctrl/tutorial/2-6-te-demo-start-testbed.sh
Then in second console:
$ sudo -i
# cd /tmp/negen