ACQUA Desktop Prototype

Troubleshooting guide

ACQUA Client Process

The Skype model should be loaded first. The second one should be

ACQUA Server Process

 The measurement server is called MeasurementServer and it is developed in Java.

To use it do:

 cd <directory of the MeasurementServer>/src

 java fr.inria.acqua.ACQUAServer

The server will now wait for requests from the Client (deployed on Windows).

Important:

 The ACQUA measurement process identifies each experiment with an ID that is not synchronized between client and server (this is ID is progressive and equal to 1 in the beginning).

It is the necessary to activate BOTH client and server at the same time!

(If the client is closed also the server needs to be closed in order to run another experiment).

Apply network configurations

To update the configuration use sudo ifup <network interface> (e.g. eth0).

Note: the use of sudo ifdown <network interface> could be necessary if the interface is already up.

Important: the graphical connection manager seems to have conflicts while configuring manually the network configuration - it is recommended to disable it and proceed with the command line interface.

In case of problems (e.g.: network icon disappearing in the status bar) use sudo service network-manager restart.

Demo mode

The demonstration mode of the ACQUA prototype uses DummyNet to simulate network conditions between two hosts.

DummyNet is supported by most modern OS (FreeBSD, OSX, Linux, Windows).

Note: Linux kernels above version 3.2 are not well supported (in our setup we used Ubuntu 12.04 to avoid such issues).

The following instructions are relative only to the Linux version.

DummyNet management (web interface)

DummyNet is used to manipulate the network conditions.

To use DummyNet a couple of pipes has been defined, to set them up is necessary to run the script: sudo ./ipwf-start.sh

This will define two network pipes that will collect all incoming (pipe 10) and outgoing

(pipe 11) traffic from the current host.

A static web page makes AJAX requests to a CGI server in order to manipulate the network

traffic easily. This web page can be deployed on any host (be aware that DummyNet could

reduce or deny completely the interaction with this remote controller by shaping the

network traffic).

CGI setup

 /etc/apache2/sites-available/default contains the configuration of the Web Server (static web pages and CGI).

By default the CGI directory /usr/lib/cgi-bin/ contains the CGI files served. It is then necessary to put here all the cgi scripts in order to configure through the web interface DummyNet.

Web pages are served from the directory /var/www/. The web interface (index.html) should be placed here (and should be available here).

Sharing a network connection from a Windows 7 host with ICS (Internet Connection Sharing)

1. Open the Network and Sharing Center

2. Click on Change Adapter Settings (sidebar)

3. Right-click on the network device with the connection to be shared (connected to Internet)

4. Select Properties

5. Go on the Sharing tab

6. enable all

7. press on Settings

8. enable all required protocols (e.g.: HTTP, HTTPS, Skype UDP, Skype TCP, ...)

9. define exceptions for ACQUA too:

        a. UDP traffic (default 192.168.137.176:9050, 192.168.137.176:9051)

        b. TCP traffic (default 192.168.137.176:9050, 192.168.137.176:9051)

10. Set firewall exceptions to enable ICMP (ping)

        a. press Start

        b. look for Run

        c. execute firewall.cpl (alternatively look for Windows Firewall with Advanced Security)

        d. click on inbound rules

        e. add new rule (right-click or sidebar)

        f. define a custom rule (accept everything with protocol ICMPv4)

Notes:

ICS will force you to use DHCP with address 192.168.137.1 for the gateway.

The first address assigned by the DHCP to a client is usually 192.168.137.(171-176).

Windows ICS will configure also a DNS server, it is needed to set this one as DNS server on the Linux machine.

Set DNS server on Linux host

1. sudo gedit /etc/resolv.conf

2. add "nameserver 192.168.137.1" (the IP of the network interface sharing the connection)

3. if this configuration does not hold (is overwritten) put this line in the end of the file "nohook resolv.conf"

4. if still not working add Firewall rules / ICS setting to allow DNS traffic on Windows

!IMPORTANT: this has to be done every time the PC is turned on (the configuration is overwritten)

#TODO how to make it stable? (see resolvconf)

Static IP configuration

Static IP configuration is not supported while using Windows’ ICS.

Linux

static ip should be configured in:

 /etc/network/interfaces

This file contains the configuration of each network interface in use.