This code lets you have multiple IP addresses for a single interface.  It
is useful in those situations where you have multiple logical nets on the
same physical network segment, or for instance if you need several IP
address for virtual Web hosting.

You can download the code from ftp://ftp.nethelp.no/pub/net/vif-1.11.tar.gz.

The code was originally written by John Ioannidis. I have included part of
his original message in the README.ji file. Note that with my version of
the code, the extraneous network route mentioned by John Ioannidis does
*not* appear, and therefore does not need to be deleted.

I have cleaned up the code a little, ported it to HP-UX 9.05, and made it
modloadable (and unloadable) on SunOS 4.1.3/4.1.4. Please note that I have
tested the code myself only on the following hardware/OS combinations:

	SunOS 4.1.3	sun4c
	SunOS 4.1.3_U1	sun4m
	SunOS 4.1.4	sun4m, sun4c
	HP-UX 9.05	HP 700

Other have reported success on

	HP-UX 9.x	HP 300		Mike Ferrara <mikef@sr.hp.com>
	HP-UX 9.x	HP 800		John Sullivan <sullivan@interex.org>
	Ultrix		DECstation	Phil Brandenberger <phil@wharton.upenn.edu>

Note that using this code is entirely unsupported, and you are very much
on your own if it crashes your machine! It is not recommended for people
who have never configured a new Unix kernel. Root privileges are (obviously)
needed for installation. If you have problems getting vif to work, please
read the FAQ!

I expect it should be portable to other operating systems with BSD based
networking code.

HP gotcha #1: The code will almost certainly not work on interfaces using
checksum offload (eg. FDDI).

HP gotcha #2: You won't be able to add a published ARP entry after the
virtual interface has been ifconfig'ed. But you can do it *before* the
ifconfig.

WARNING: Do *not* use vif on a host which runs RIP. RIP is not prepared
to handle several interfaces with the same Ethernet address.

I would be happy to receive feedback on this code, ports to other operating
systems etc.

Notes on multiple IP address support in other operating systems and versions:

1. Solaris 2.x: You don't need vif, since the operating system already has
the necessary functionality. Note that in Solaris 2.1 - 2.4 it is *not*
supported by Sun, and not mentioned in the man pages. In Solaris 2.5 it is
supported and documented.

Here is the description from Casper Dik's FAQ for Solaris 2, URL:

	http://www.fwi.uva.nl/pub/solaris/solaris2.html

Solaris 2.x provides a feature in ifconfig that allows having more than
one IP address per interfaces. (Undocumented but existing prior to 2.5,
documented in 2.5)

Syntax: 

	ifconfig IF:N ip-address up

where "IF" is an interface (e.g., le0) and N is a number between 1 and
255. Removing the pseudo interface and associated address is done with
"ifconfig IF:N 0.0.0.0 down".

As with physical interfaces, all you need to do is make the appropriate
/etc/hostname.IF:X file.

2. HP-UX 10.x: You don't need vif, since the operating system already has
the necessary support for multiple IP addresses per interface. If you want
a solution supported by HP, you need to buy the ServiceGuard product. If
you just want the functionality, a small program from Julian Perry
<jules@limitless.co.uk> will do the job. Included in the vif distribution
as ifalias.c. The original is at the following URL:

	http://www.limitless.co.uk/hp_ifalias.html

Please tell your friendly HP sales person that you would like to have this
functionality available as part of the base operating system, and not need
to buy an unbundled product. If enough people ask for it, HP is more likely
to do something about it.

Another note for HP-UX 10.x: There have been versions of the networking
jumbo patch which have broken the ability to have multiple IP addresses
for one interface. Please check Julian Perry's URL (see above) for further
information.

3. Irix 5.3 is said to support multiple IP addresses per interface. I
haven't been able to find anything in the manual page, but a 'strings' on
the ifconfig binary shows a 'primary' option which is not documented. I
believe Irix 6.x also supports it.

4. AIX has supported multiple IP addresses per interface since AIX 3.2.

5. Digital Unix (formerly DEC OSF/1) supports multiple IP addresses per
interface. Look for the ifconfig alias command.

6. FreeBSD/NetBSD/OpenBSD all support multiple IP addresses per interface.

7. Linux 1.2.x with the appropriate patches support multiple IP addresses
per interface. The patches are available from

	ftp://ftp.mindspring.com/users/rsanders/ipalias/

I believe Linux 1.3.x supports it without any patches. Linux 2.0 certainly
does.
