-
Notifications
You must be signed in to change notification settings - Fork 41
Tutorial 1: DIF over a VLAN (point to point DIF)
This tutorial explains how to configure IRATI to instantiate a normal DIF spanning two machines (systems) interconnected by a VLAN, as illustrated in Figure 1.
Assumptions: IRATI has been successfully installed in the system as explained in How to install the IRATI stack. The software is assumed to have been installed in $INSTALLATION_PATH
.
In order to configure the VLAN, type the following command
ip link add link eth1 name eth1.100 type vlan id 100
ip link set dev eth1 up
ip link set dev eth1.100 up
NOTE: If you are installing IRATI in a VirtualBox VM, please do not use the Intel PRO/1000 net card adaptor since it strips the VLAN tags.
For this simple experiment we will use the shim DIF over 802.1q and the normal DIF, therefore we need to load the modules that provide kernel support for these functionalities.
modprobe rina-irati-core irati_verbosity=7
modprobe rina-default-plugin
modprobe normal-ipcp
modprobe shim-eth-vlan
modprobe shim-tcp-udp
Copy the following files to the $INSTALLATION_PATH
/etc folder (ipcm.conf file assumes INSTALLATION_PATH=/usr/local/irati)
Once the configuration file has the adequate contents, we can start the IPC Manager Daemon, which will trigger the creation of the two IPC Processes and assignment to its respective DIF as specified in the configuration file. To do so, we have to enter the following command in the $INSTALLATION_PATH/bin
folder.
./ipcm -c ../etc/ipcm.conf
If everything went well you should be able to open a telnet session to the IPC Manager console like this:
socat - UNIX:/usr/local/irati/var/run/ipcm-console.sock
And once inside, type the list-ipcps
command, the following output should be shown:
IPCM >>> list-ipcps
Management Agent not started
Current IPC processes (id | name | type | state | Registered applications | Port-ids of flows provided)
1 | eth.1.IPCP:1:: | shim-eth-vlan | ASSIGNED TO DIF 100 | Normal.1.IPCP-1-- | -
2 | Normal.1.IPCP:1:: | normal-ipc | ASSIGNED TO DIF Normal.DIF | - | -
You can obtain more information about a NORMAL IPC Process by using the query-rib
command (not supported by shim IPC Processes yet). By examining this information we can look at the naming and addressing properties of the IPC Process, the configuration of the DIF policies, its neighbors, the registrations to N-1 DIFs, the N-1 Flows it currently relies on, the N-flows it provides to applications, etc. You can exit the IPC Manager console via the ´exit´ or ´quit´ commands.
The configuration of system 2 is dual to the system 1 configuration, with only a minimal change in the IPC Manager configuration file:
Now we have two IPC Processes in two systems that belong to the normal DIF but they don't know about the existence of each other. In order to so, we have to trigger the enrollment procedure, which will make both IPC Processes to discover each other and to become neighbours in the normal DIF. We will trigger the enrollment procedure via the IPC Manager console of System 1 (could also be done from System 2 with a dual procedure).
socat - UNIX:/usr/local/irati/var/run/ipcm-console.sock
The usage of the ´enroll-to-dif´ command is the following: ´USAGE: enroll-to-dif ´. For our case:
IPCM >>> enroll-to-dif 2 normal.DIF 100
DIF enrollment succesfully completed
We will now use the rina-echo-time application in 'ping' mode to test a flow over the normal DIF. This application consists in two types of processes: servers and clients. In the 'ping' mode, the client sends a configurable number of packets (SDUs) at a configurable rate to the server, which echoes them back. The client reports the latency it perceives.
In System 2, go to the $INSTALLATION_PATH/bin
folder and type:
./rina-echo-time -l
Now the server application has registered to the normal DIF. You can see it has done so by inspecting the RIB of the IPC Process test2.IRATI in System 2 via the IPC Manager console, the following new entry should appear:
Name: /dif/management/flowallocator/directoryforwardingtableentries/rina.apps.echotime.server-1--; Class: directoryforwardingtableentry; Instance: 20
Value: App name: rina.apps.echotime.server-1--; Address: 17; Timestamp: 0
Note that the IPC Process test2.IRATI has disseminated the registration of this application through the DIF, therefore the RIB of test1.IRATI will also contain this entry.
In System 1, go to the $INSTALLATION_PATH/bin
folder and type:
./rina-echo-time -c 100
If the command is successful, you will see the following output:
Flow allocation time = 147ms
SDU size = 20, seq = 0, RTT = 17ms
SDU size = 20, seq = 1, RTT = 4605us
SDU size = 20, seq = 2, RTT = 2724us
SDU size = 20, seq = 3, RTT = 33ms
SDU size = 20, seq = 4, RTT = 1682us
SDU size = 20, seq = 5, RTT = 4270us
SDU size = 20, seq = 6, RTT = 13ms
SDU size = 20, seq = 7, RTT = 2721us
SDU size = 20, seq = 8, RTT = 5776us
SDU size = 20, seq = 9, RTT = 3319us
SDU size = 20, seq = 10, RTT = 1637us
SDU size = 20, seq = 11, RTT = 37ms
SDU size = 20, seq = 12, RTT = 1950us
SDU size = 20, seq = 13, RTT = 1631us
...
If you inspect the RIB of any of the two IPC Processes, you will be able to see a new entry describing the flow supported by the normal DIF.
Name: /dif/resourceallocation/flowallocator/flows/16-2; Class: flow; Instance: 21
Value: * State: 2
* Is this IPC Process the requestor of the flow? 1
* Max create flow retries: 1
* Hop count: 3
* Source AP Naming Info: rina.apps.echotime.client:1::
* Source address: 16
* Source port id: 2
* Destination AP Naming Info: rina.apps.echotime.server:1::res:
Destination port id:
* Connection ids of the connection supporting this flow: +
Src CEP-id 0; Dest CEP-id 0; Qos-id 1
* Index of the current active connection for this flow: 0
- Home
- Software Architecture Overview
- IRATI in depth
-
Tutorials
- 1. DIF-over-a-VLAN-(point-to-point-DIF)
- 2. DIF over two VLANs
- 3. Security experiments on small provider net
- 4. Multi-tenant Data Centre Network configured via the NMS-DAF
- 5. Congestion control in multi-tenant DC
- 6. Multi-tenant Data Centre network with Demonstrator
- 7. ISP Security with Demonstrator
- 8. Renumbering in a single DIF
- 9. Application discovery and Distributed Mobility Management over WiFi
- 10. Distributed Mobility Management over multiple providers
- 11. Multi-access: multiple providers, multiple technologies