[email protected]
[email protected]
C'est une recette de cuisine sur la manière de configurer et d'utiliser
l'aliasing IP sur une machine Linux. De plus, il y a des instructions pour
configurer la machine pour recevoir du courrier électronique sur les
numéros alias IP.
(NDT: l'aliasing IP permet d'associer plusieurs
adresses IP sur la même interface réseau.
)
NDT: c'est plutôt l'option IP Aliasing
). Vérifiez dans le HOW-TO sur les modules
(s'il existe), ou vérifiez dans le fichier /usr/src/linux/Documentation/modules.txt.
/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!
Réponse:
/etc/rc.d/rc.local
./etc/rc.d/rc.local
: (édité pour ne montrer que les parties
intéressantes)
# configuration des interfaces avec IP alias
echo "Configuration des aliases IP: 172.16.3.1, 172.16.3.10, 172.16.3.100..."
/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
# configuration des routes
echo "Configuration des routes IP..."
/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 eth0
/sbin/route add -host 172.16.3.10 eth0:0
/sbin/route add -host 172.16.3.100 eth0:1
/sbin/route add default gw 172.16.3.200
#
Réponse:
/etc/mes_noms.cw
. Il ne doit pas forcémement s'appeler ainsi, ni se trouver
dans le repertoire /etc
.
/etc/mes_noms.cw:
-----------------
# /etc/mes_noms.cw - inclure ici tous les aliases pour votre machine
# # est un commentaire
domaine.un.net
domaine.deux.com
domaine.trois.org
4.5.6.7
sendmail.cf
, à l'endroit où on définit une
macro de classe fichier Fw
, ajoutez:
.
.
.
#################
# infos locales #
#################
.
.
# fichier contenant les noms des hôtes pour lesquels on reçoit du courrier
Fw/etc/mes_noms.cw
.
.
.
sendmail
en mode de test, par exemple:
ganymede$ /usr/lib/sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter < ruleset> < address>
< 0 [email protected]
rewrite: ruleset 0 input: moi @ 4 . 5 . 6 . 7
rewrite: ruleset 98 input: moi @ 4 . 5 . 6 . 7
rewrite: ruleset 98 returns: moi @ 4 . 5 . 6 . 7
rewrite: ruleset 97 input: moi @ 4 . 5 . 6 . 7
rewrite: ruleset 3 input: moi @ 4 . 5 . 6 . 7
rewrite: ruleset 96 input: moi < @ 4 . 5 . 6 . 7 >
rewrite: ruleset 96 returns: moi < @ 4 . 5 . 6 . 7 . >
rewrite: ruleset 3 returns: moi < @ 4 . 5 . 6 . 7 . >
rewrite: ruleset 0 input: moi < @ 4 . 5 . 6 . 7 . >
rewrite: ruleset 98 input: moi < @ 4 . 5 . 6 . 7 . >
rewrite: ruleset 98 returns: moi < @ 4 . 5 . 6 . 7 . >
rewrite: ruleset 0 returns: $# local $: moi
rewrite: ruleset 97 returns: $# local $: moi
rewrite: ruleset 0 returns: $# local $: moi
< 0 [email protected]
rewrite: ruleset 0 input: moi @ 4 . 5 . 6 . 8
rewrite: ruleset 98 input: moi @ 4 . 5 . 6 . 8
rewrite: ruleset 98 returns: moi @ 4 . 5 . 6 . 8
rewrite: ruleset 97 input: moi @ 4 . 5 . 6 . 8
rewrite: ruleset 3 input: moi @ 4 . 5 . 6 . 8
rewrite: ruleset 96 input: moi < @ 4 . 5 . 6 . 8 >
rewrite: ruleset 96 returns: moi < @ 4 . 5 . 6 . 8 >
rewrite: ruleset 3 returns: moi < @ 4 . 5 . 6 . 8 >
rewrite: ruleset 0 input: moi < @ 4 . 5 . 6 . 8 >
rewrite: ruleset 98 input: moi < @ 4 . 5 . 6 . 8 >
rewrite: ruleset 98 returns: moi < @ 4 . 5 . 6 . 8 >
rewrite: ruleset 95 input: < > moi < @ 4 . 5 . 6 . 8 >
rewrite: ruleset 95 returns: moi < @ 4 . 5 . 6 . 8 >
rewrite: ruleset 0 returns: $# smtp $@ 4 . 5 . 6 . 8 $: moi < @ 4 . 5 . 6 . 8 >
rewrite: ruleset 97 returns: $# smtp $@ 4 . 5 . 6 . 8 $: moi < @ 4 . 5 . 6 . 8 >
rewrite: ruleset 0 returns: $# smtp $@ 4 . 5 . 6 . 8 $: moi < @ 4 . 5 . 6 . 8 >
>
Notez que lorsque j'ai testé [email protected]
, cela a envoyé le mail à la
machine locale, alors que [email protected]
a été envoyé à l'agent de
transport smtp.
C'est la réponse correcte.J'espère que ce qui précède sera utile à quelqu'un.
Merci à tous ceux qui ont superbement travaillé sur Linux et l'aliasing IP.
Et particulièrement à Juan Jose Ciarlante pour avoir clarifié mes questions.
Merci aussi à tous ceux qui ont remarqué mes fautes de frappe et m'ont fourni
des suggestions!
Si vous trouvez ce document utile, ou si vous avez des suggestions pour des
améliorations, envoyez moi un courrier électronique à:
[email protected].
Amusez-vous bien.
Des questions? envoyez moi un courrier électronique à [email protected].