UIA Quick Start

Disclaimer

At the moment, this guide has only been tested on Ubuntu Linux. It also requires a fair deal of familiarity with Unix. We're working on fixing both of those limitations, but hopefully this guide will still be useful in the meantime.

Prerequisites

To build UIA you need, already installed: On Ubuntu, you can install all of these like this:
       $ apt-get install make gcc g++ subversion libtool \
               autoconf automake libboost-dev libboost-thread-dev \
               python-twisted libqt4-dev libqt4-debug \
               libssl-dev avahi-utils libavahi-compat-libdnssd-dev

Building UIA

       $ cd somewhere
       $ svn co svn://svn.pdos.csail.mit.edu/uia/trunk/uia uia
       $ cd uia
       $ ./configure uianet --with-user=`whoami`
       $ make
       $ sudo make install

Configuring UIA

       $ sudo chown -R `whoami` /etc/uia
       $ echo Your Name >/etc/uia/owner.txt
       $ echo machine-name >/etc/uia/devname.txt
Use your favorite editor to add "nameserver 127.0.0.1" as the first name server line in /etc/resolv.conf. Using ed:
       $ echo '/nameserver/i
       nameserver 127.0.0.1
       .
       wq' | sudo ed /etc/resolv.conf
If you use dhclient, you may need to edit /sbin/dhclient-script (or perhaps /etc/dhcp3/dhclient-script, depending on your system) to make this setting "stick" across DHCP renewals. The edit is to add the --> marked line. (There must be a better way to interact with dhclient.)
       if [ -n "$new_domain_name_servers" ]; then
  -->      echo nameserver 127.0.0.1 >>$new_resolv_conf
                  for nameserver in $new_domain_name_servers; do
                      echo nameserver $nameserver >>$new_resolv_conf
           done
       else # keep 'old' nameservers
Make sure tun device is installed
       $ sudo modprobe tun

Running and Testing UIA

       $ uialegacy restart
If uialegacy restart stops after printing "Starting router...", look in the /var/log/uia/* files to see what's going on.
       $ ifconfig uia
The ifconfig should print information about an IPv6 device named "uia". If not, double-check that the tun driver is loaded.
       $ ping6 -c 1 `cat /etc/uia/eid.txt`
Should succeed in sending a packet! If not, double-check that /etc/uia/uid.txt matches the address printed by ifconfig.
       $ host machine-name.
Should succeed in resolving to the address you just sent a packet to. If not, double-check that "ps axwwu|grep uianamed" finds an instance of uianamed.py, and then look at uianamed.log. Also (cat /etc/uia/names.db.root; echo), which should show a three-line file (missing the trailing newline) with EID (IPv6 address), key, and machine-name.
       $ ping6 -c 1 machine-name.
Should succeed in sending a packet! (If the last two commands worked, this Can't Fail.)
       $ firefox http://machine-name./
Note the trailing dot when referring to machine-name. The trailing dot keeps the DNS resolver from appending the default domain name (e.g., turning machine-name into machine-name.mit.edu). Finally, start the UIA control panel:
       $ uiactl &
(If you don't have a UIA control panel, make sure that the uia configure script found Qt version 4.)


Last Updated: $Id: quick-start.html 3146 2008-02-07 17:13:50Z jastr $