What is User Level Networking?
ULN is a software designed to allow the
dynamic allocation of IP addresses.
The basic idea is to give different IP addresses to different users, thus
identifyng the couple UID-HOST with just the IP address.
How does it works?
ULN is developed under Linux.
It includes a patch to the kernel which must be applied to every client
in the LAN, a suid executable which will be used by the users to get their
IP address from the server and activate it on a virtual interface (like eth0:*) on the local computer, and an executable which will be launched by sshd on
the server host.
A server host runs a sshd daemon, and users must log in there in order to
get their IP. This host manages availables addresses and performs logging.
The kernel patch will modify IPv4 and IPv6
bind and connect calls to check user permissions to the given
local IP address. Besides, it will include a couple of new ioctls which
must be used to specify IP addresses ownership.
A PDF document explaining what ULN is, how it works, and what can be useful
for can be downloaded here.
ULN at ICN 2004
User Level Networking has been presented at the
Download User Level Networking
This project is still in the very first stage of development.
The last release of User Level Networking is dated May 30 2004, it is
fully IPv6 compliant, it includes a patch for the 2.6 version of
the Linux kernel and can be downloaded from
If you are using Debian GNU/Linux you
can download and install ULN with apt; in order to do that you should
add to /etc/apt/sources.list the following lines:
deb http://tassi.web.cs.unibo.it/debian/uln ./
deb-src http://tassi.web.cs.unibo.it/debian/uln ./
Alternatively, you can download ULN with CVS.
In this case, you should execute the following cvs commands:
cvs -d:pserver:email@example.com:/cvsroot/uln login
cvs -z3 -d:pserver:firstname.lastname@example.org:/cvsroot/uln co uln
You can also also browse the CVS tree.
User Level Networking is developed by
Enrico Tassi and
Last update: 1085943550 seconds since 00:00:00 1970-01-01 UTC (May 30 2004)