-
Notifications
You must be signed in to change notification settings - Fork 40
Tutorial 2: DIF over two VLANS
This tutorial explains how to configure IRATI to instantiate a normal DIF spanning three machines (systems) interconnected by two VLANs, as illustrated in Figure 1.
ip link add link eth1 name eth1.100 type vlan id 101
ip link set dev eth1 up
ip link set dev eth1.100 up
### Configuration files
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
ip link add link eth2 name eth2.101 type vlan id 101
ip link set dev eth2 up
ip link set dev eth2.101 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.
ip link add link eth1 name eth1.101 type vlan id 101
ip link set dev eth1 up
ip link set dev eth1.101 up
Log in the IPC Manager console of System 1 and enter the following commands:
socat - UNIX:/usr/local/irati/var/run/ipcm-console.sock
IPCM >>> enroll-to-dif 2 normal.DIF 100
DIF enrollment succesfully completed
Log in the IPC Manager console of System 3 and enter the following commands:
socat - UNIX:/usr/local/irati/var/run/ipcm-console.sock
IPCM >>> enroll-to-dif 2 normal.DIF 101
DIF enrollment succesfully completed
Now test1.IRATI can reach test3.IRATI via IPC Process test2.IRATI. If we check the RIB of IPC Process test2.IRATI we'll see that it has two neighbors and two N-1 flows over the different N-1 shim DIFS (100 and 101).
...
Name: /daf/management/neighbors/test1.IRATI; Class: neighbor; Instance: 19
Value: Name: test1.IRATI-1-Management-; Address: 16; Enrolled: 1
; Supporting DIF Name: 100; Underlying port-id: 1; Number of enroll. attempts: 0
Name: /daf/management/neighbors/test3.IRATI; Class: neighbor; Instance: 23
Value: Name: test3.IRATI-1-Management-; Address: 18; Enrolled: 1
; Supporting DIF Name: 101; Underlying port-id: 2; Number of enroll. attempts: 0
...
Name: /dif/resourceallocation/nminusoneflowmanager/nminusoneflows/1; Class: nminusone flow; Instance: 18
Value: Local app name: test2.IRATI-1--Remote app name: test1.IRATI-1--
N-1 DIF name: 100; port-id: 1
Flow characteristics: Jitter: 0; Delay: 0
In oder delivery: 0; Partial delivery allowed: 1
Max allowed gap between SDUs: -1; Undetected bit error rate: 0
Average bandwidth (bytes/s): 0; Average SDU bandwidth (bytes/s): 0
Peak bandwidth duration (ms): 0; Peak SDU bandwidth duration (ms): 0
Name: /dif/resourceallocation/nminusoneflowmanager/nminusoneflows/2; Class: nminusone flow; Instance: 22
Value: Local app name: test2.IRATI-1--Remote app name: test3.IRATI-1--
N-1 DIF name: 101; port-id: 2
Flow characteristics: Jitter: 0; Delay: 0
In oder delivery: 0; Partial delivery allowed: 1
Max allowed gap between SDUs: -1; Undetected bit error rate: 0
Average bandwidth (bytes/s): 0; Average SDU bandwidth (bytes/s): 0
Peak bandwidth duration (ms): 0; Peak SDU bandwidth duration (ms): 0
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 3, go to the $INSTALLATION_PATH/bin
folder and type:
./rina-echo-time -l
Now the server application has registered to the normal DIF.
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 = 34ms
SDU size = 20, seq = 0, RTT = 10ms
SDU size = 20, seq = 1, RTT = 8907us
SDU size = 20, seq = 2, RTT = 4496us
SDU size = 20, seq = 3, RTT = 6290us
SDU size = 20, seq = 4, RTT = 6011us
SDU size = 20, seq = 5, RTT = 7215us
SDU size = 20, seq = 6, RTT = 6611us
SDU size = 20, seq = 7, RTT = 7170us
SDU size = 20, seq = 8, RTT = 6696us
SDU size = 20, seq = 9, RTT = 7753us
...
If you inspect the RIB of any of test1.IRATI or test3.IRATI, 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: 27
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::es:
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