Opdrachten

  1. Laad de IP-alias module (je kunt deze stap overslaan als je de module in de kernel compileerde):

    /sbin/insmod /lib/modules/`uname -r`/ipv4/ip_alias.o
  2. Stel de loopback, eth0, en alle IP-adressen beginnend met het hoofd IP-adres in voor de eth0 interface:

    /sbin/ifconfig lo 127.0.0.1
    /sbin/ifconfig eth0 up
    /sbin/ifconfig eth0 172.16.3.1
    /sbin/ifconfig eth0:0 172.16.3.10
    /sbin/ifconfig eth0:1 172.16.3.100

    172.16.3.1 is het hoofd IP-adres, terwijl .10 en .100 de aliassen zijn. De magie is de eth0:x waar x=0,1,2,...n voor de verschillende IP-adressen staat. Het hoofd IP-adres hoeft geen alias te zijn.

  3. Stel de routes in. Routeer eerst het loopback, dan het net, en als laatste de diverse IP-adressen beginnend met het standaard (oorspronkelijk toegewezen) IP-adres:

    /sbin/route add -net 127.0.0.0
    /sbin/route add -net 172.16.3.0 dev eth0
    /sbin/route add -host 172.16.3.1 dev eth0
    /sbin/route add -host 172.16.3.10 dev eth0:0
    /sbin/route add -host 172.16.3.100 dev eth0:1
    /sbin/route add default gw 172.16.3.200

    Dat is alles.

Bij het voorbeeld IP-adres hierboven, gebruik ik het Privé IP-adres (RFC 1918) voor illustratieve doeleinden. Vervang ze door je eigen officiële of privé IP-adressen.

Het voorbeeld toont slechts 3 IP-adressen. Het max is ingesteld op 256 in /usr/include/linux/net_alias.h. 256 IP adressen op EEN kaart is heel veel :-)!

Zo ziet mijn /sbin/ifconfig eruit:

lo	  Link encap:Local Loopback
	       inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0
			 UP BROADCAST LOOPBACK RUNNING	MTU:3584  Metric:1
		    RX packets:5088 errors:0 dropped:0 overruns:0
		    TX packets:5088 errors:0 dropped:0 overruns:0

eth0	  Link encap:10Mbps Ethernet  HWaddr 00:8E:B8:83:19:20
		    inet addr:172.16.3.1  Bcast:172.16.3.255
		    Mask:255.255.255.0
		    UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500
		    Metric:1
		    RX packets:334036 errors:0 dropped:0 overruns:0
		    TX packets:11605 errors:0 dropped:0 overruns:0
		    Interrupt:7 Base address:0x378

eth0:0	  Link encap:10Mbps Ethernet  HWaddr 00:8E:B8:83:19:20
		    inet addr:172.16.3.10  Bcast:172.16.3.255
		    Mask:255.255.255.0
		    UP BROADCAST RUNNING  MTU:1500  Metric:1
		    RX packets:0 errors:0 dropped:0 overruns:0
		    TX packets:0 errors:0 dropped:0 overruns:0

eth0:1	  Link encap:10Mbps Ethernet  HWaddr 00:8E:B8:83:19:20
		    inet addr:172.16.3.100  Bcast:172.16.3.255
		    Mask:255.255.255.0
		    UP BROADCAST RUNNING  MTU:1500  Metric:1
		    RX packets:1 errors:0 dropped:0 overruns:0
		    TX packets:0 errors:0 dropped:0
		    overruns:0

En /proc/net/aliases:

device	       family	 address
eth0:0		 2	172.16.3.10
eth0:1		 2	172.16.3.100

And /proc/net/alias_types:

type	name		n_attach
2	ip		2

Natuurlijk werd dat in /proc/net aangemaakt met de opdracht ifconfig en niet met de hand!