/sbin/insmod /lib/modules/`uname -r`/ipv4/ip_alias.o
/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 est le numéro IP principal, alors que .10 et .100 sont les aliases.
La magie vient de eth0:x
, ou x=0,1,3,...n pour les différents numéros IP.
Le numéro IP principal n'a pas besoin d'alias.
/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
C'est tout.
Dans l'exemple ci-dessus, j'utilise les numéros IP privés (RFC 1918
) dans un
but d'illustration. Remplacez-les par vos propres numéros IP, officiels ou
privés.
L'exemple ne montre que 3 numéros IP. Le maximum est défini à 256 dans
/usr/include/linux/net_alias.h
. 256 numéros IP sur UNE carte, c'est
beaucoup :-) !
Voila à quoi ressemble mon /sbin/ifconfig
:
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
Et /proc/net/aliases
:
device family address
eth0:0 2 172.16.3.10
eth0:1 2 172.16.3.100
Et proc/net/alias_types
:
type name n_attach
2 ip 2
Bien sûr, les données de /proc/net
ont été créées par la commande
ifconfig
, et non à la main!