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:
- make
- GCC / G++
- Subversion
- libtool
- autoconf
- automake
- Boost (including threading support)
- Python's Twisted RPC library
- Qt 4 (+ debug builds)
- OpenSSL
- Either Apple's Bonjour library or Avahi-utils
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 $