# \[RESOLU\] Multiple passerelle pour plusieurs IP publiques

**URL:** <https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477>\
**Category:** Support Debian\
**Created:** [Avril 23, 2018, 12:17 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477 "2018-04-23T12:17:36Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![guedz45](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/839c29/32.png) [@guedz45](https://www.debian-fr.org/u/guedz45)\
**Post date:** [Avril 23, 2018, 12:17 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/1 "2018-04-23T12:17:36Z")

</div>

Bonjour à tous,

je rencontre un souci technique sur lequel je ne vois pas comment procéder pour le traiter :

Sur mon interface eth0 je dispose de plusieurs IP publiques (eth0:0, eth0:1 etc…)

Sur mon interface eth1 j’ai mon lan et sur eth2 ma dmz.

Toutes mes machines sortent par défaut avec l’IP défini sur eth0 juste là pas de souci.

Mon besoin aujourd’hui de faire sortir certaines machines sur Internet avec une ip publique différente de celle d’eth0 :

LAN ou DMZ -----\> gateway ---------\> IP publique d’eth0

Objectif:  
Certaines machines du LAN ou DMZ -------\> gateway ------\> IP publique autre qu’eth0 par exemple eth0:2

Pour le moment j’écume les forums et autres pour trouver un tuto, une piste de comment procéder mais j’ai certainement un souci de mot clef dans mes recherches sur les moteurs de recherches.

Est-ce que je dois créer des interfaces supplémentaires sur eth1 (ex eth1:0 avec une ip autre que eth1) et eth2 pour pouvoir les indiquer comme passerelle à mes machines du LAN ou DMZ et avec iptables je peux forcer la sortie de mes requêtes sur eth0:xx ?

Merci d’avance pour votre aide ou piste d’approche pour traiter mon souci

Cordialement,  
Guedz

---

<div class="post-metadata">

**Author:** ![Minus](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/8dc957/32.png) [@Minus](https://www.debian-fr.org/u/Minus)\
**Post date:** [Avril 23, 2018, 3:11 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/2 "2018-04-23T15:11:26Z")

</div>

Il faut regarder du coté de snat avec iptables et oui il te faudra des interfaces supplementaires, une par ip publique dispo

IPTABLES -t nat -A POSTROUTING -o eth0.0 -p tcp -d [xxx.xxx.xxx.xxx](http://xxx.xxx.xxx.xxx) -j SNAT --to-source [xxx.xxx.xxx.xxx](http://xxx.xxx.xxx.xxx)

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Avril 23, 2018, 7:04 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/3 "2018-04-23T19:04:34Z")

</div>

> [@guedz45](#):
>
> j’écume les forums et autres pour trouver un tuto

Pas besoin de tutoriel ; ce que tu cherches à faire est trivial.

> [@guedz45](#):
>
> Sur mon interface eth0 je dispose de plusieurs IP publiques (eth0:0, eth0:1 etc…)

Note : Les «&nbsp;alias IP&nbsp;» (eth0:0…) sont obsolètes. Il y a très longtemps qu’on n’en a plus besoin pour affecter plusieurs adresses IP à une même interface.

> [@guedz45](#):
>
> Est-ce que je dois créer des interfaces supplémentaires sur eth1 (ex eth1:0 avec une ip autre que eth1)

Non, strictement aucun intérêt.  
Note : Les alias IP ne sont pas des interfaces. Ils ne sont reconnus ni dans les les tables de routage ni dans les règles iptables.

> [@Minus](#):
>
> oui il te faudra des interfaces supplementaires

Non.

> [@Minus](#):
>
> IPTABLES -t nat -A POSTROUTING -o eth0.0 -p tcp -d xxx.xxx.xxx.xxx -j SNAT --to-source xxx.xxx.xxx.xxx

Attention : Ne pas confondre une interface VLAN IEEE 802.1Q (eth0.0) et un alias IP (eth0:0). Comme je l’ai déjà écrit, les alias IP ne sont pas des interfaces donc ne sont pas reconnus par les règles iptables. L’interface de sortie est simplement eth0.  
D’autre part, la règle ne doit pas se baser sur l’adresse de destination mais sur l’adresse source.  
Exemple :

```
iptables -t nat -A POSTROUTING -o eth0 -s adresse.ip.privee -j SNAT --to adresse.ip.publique

```

A placer avant la règle générale qui applique l’adresse IP publique par défaut.  
La source peut également être un préfixe, un groupe d’adresses ayant un certain nombre de bits de poids fort en commun. Exemple : 192.168.25.128/28 = 192.168.25.128 à 192.168.25.143.

PS : où est-il question de «&nbsp;multiples passerelles&nbsp;» là-dedans ?

---

<div class="post-metadata">

**Author:** ![anon93295908](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/b782af/32.png) [@anon93295908](https://www.debian-fr.org/u/anon93295908)\
**Post date:** [Avril 24, 2018, 4:07 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/4 "2018-04-24T04:07:47Z")

</div>

Bonjour

j’avais bookmarker un article sur ce que tu cherche surement.

voici le lien : [https://www.bggofurther.com/fr/2014/04/setup-multiple-default-routes-on-linux/](https://www.bggofurther.com/fr/2014/04/setup-multiple-default-routes-on-linux/)

---

<div class="post-metadata">

**Author:** ![guedz45](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/839c29/32.png) [@guedz45](https://www.debian-fr.org/u/guedz45)\
**Post date:** [Avril 24, 2018, 6:41 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/5 "2018-04-24T06:41:35Z")

</div>

Bonjour à tous,

d’abord merci pour toutes ces réponses et aux vues de ces dernières je pense que j’ai certainement mal qualifié mon souci.

Pour moi le fait de pouvoir sortir sur une IP publique de mon pool spécifique pour 1 ou plusieurs machines devait passer par la définition d’une passerelle spécifique pour ce flux.

Me reste maintenant à tester la règle IPTABLES pour cloturer le sujet par contre je suis étonné des propos sur les “Alias IP” qui seraient obsolètes.

Pourriez vous me dire comment on fait maintenant ?

Cordialement,  
Guedz

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Avril 24, 2018, 8:28 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/6 "2018-04-24T08:28:14Z")

</div>

> [@guedz45](#):
>
> Pour moi le fait de pouvoir sortir sur une IP publique de mon pool spécifique pour 1 ou plusieurs machines devait passer par la définition d’une passerelle spécifique pour ce flux.

Quelle drôle d’idée. D’autre part, c’est contradictoire avec le contenu de ton message initial.

Une passerelle (ou plutôt un routeur car le terme «&nbsp;passerelle&nbsp;», jugé trop vague, a été abandonné depuis longtemps) est une machine. Plusieurs routeurs, c’est donc plusieurs machines ayant chacune une ou plusieurs adresses IP publiques. Or tu ne parles que d’une seule machine qui a plusieurs adresses IP publiques.

Ou bien tu commets un abus de langage et veux parler de plusieurs «&nbsp;adresses de passerelle&nbsp;» (ou plutôt de routeur) affectées à une même interface de l’unique routeur (eth0 ou eth2). Cela n’aurait strictement aucun intérêt : l’adresse de routeur ne sert qu’à résoudre l’adresse MAC de l’interface de destination des paquets à envoyer au routeur. Tous les paquets envoyés à une interface donnée ont la même adresse MAC, quelle que soit l’adresse de routeur utilisée, donc l’adresse de routeur ne peut pas être un critère suffisant pour sélectionner l’adresse IP publique de sortie.

> [@guedz45](#):
>
> je suis étonné des propos sur les “Alias IP” qui seraient obsolètes.  
> Pourriez vous me dire comment on fait maintenant ?

On ajoute simplement chaque adresse IP à l’interface avec `ip addr add...`  
Dans une configuration avec le fichier /etc/network/interfaces, on peut définir plusieurs strophes pour une même interface avec chaque adresse IP statique.

---

<div class="post-metadata">

**Author:** ![Minus](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/8dc957/32.png) [@Minus](https://www.debian-fr.org/u/Minus)\
**Post date:** [Avril 24, 2018, 8:32 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/7 "2018-04-24T08:32:17Z")

</div>

comme toujours PascalHambourg est une bibliothèque ambulante 😉

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Avril 24, 2018, 8:42 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/8 "2018-04-24T08:42:30Z")

</div>

La connaissance des mécanismes sous-jacents est un avantage certain pour la compréhension de ce qui se passe. Le rôle exact d’une adresse de passerelle (ou plutôt de routeur) n’est pas évident. Un paquet IP envoyé à router à un routeur ne contient pas l’adresse IP du routeur mais seulement l’adresse MAC.

---

<div class="post-metadata">

**Author:** ![guedz45](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/839c29/32.png) [@guedz45](https://www.debian-fr.org/u/guedz45)\
**Post date:** [Avril 24, 2018, 9:10 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/9 "2018-04-24T09:10:50Z")

</div>

Bonjour,

PI J’ai pas encore pris le temps de tester la solution du SNAT

ma situation est la suivante :

```nohighlight
iface eth0 inet static
    address x.x.x.4
    netmask 255.255.255.240
    gateway x.x.x.1
    up ip addr add x.x.x.5/28 dev eth0 label eth0:0
    down ip addr del x.x.x.5/28 dev eth0 label eth0:0
    up ip addr add x.x.x.11/28 dev eth0 label eth0:1
    down ip addr del x.x.x.11/28 dev eth0 label eth0:1
    up ip addr add x.x.x.12/28 dev eth0 label eth0:2
    down ip addr del x.x.x.12/28 dev eth0 label eth0:2 

```

Pour ma part j’ai toujours suivi les tutos du wiki debian : [https://wiki.debian.org/NetworkConfiguration](https://wiki.debian.org/NetworkConfiguration)

et sans passer par un alias je ne comprends pas comment tu peux faire

Concernant mon souci je souhaite que mon serveur email et autres machines de mon lan sortent avec l’ip publique eth0:2 et non mon eth0

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Avril 24, 2018, 9:35 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/10 "2018-04-24T09:35:32Z")

</div>

Tu peux faire avec `ip addr add` si tu veux, mais les options `label eth0:N` sont inutiles. Elles ne servent qu’à rendre les adresses IPv4 supplémentaires visibles avec `ifconfig` (au moins avec les anciennes versions jusqu’à Jessie ; la version de Stretch a visiblement été retravaillée et semble avoir plus de points communs avec `ip`, donc n’en a peut-être plus besoin - pas testé).

Sinon, avec les versions récentes de Debian tu peux maintenant faire :

```
iface eth0 inet static
 address x.x.x.4/28
 gateway x.x.x.1

iface eth0 inet static
 address x.x.x.5/28
...

```

> [@guedz45](#):
>
> je souhaite que mon serveur email et autres machines de mon lan sortent avec l’ip publique eth0:2 et non mon eth0

eth0:2 et eth0 ne sont pas des adresses IP. Ce sont une interface et un «&nbsp;alias IP&nbsp;» (en fait une simple étiquette). Tu veux dire «&nbsp;avec l’adresse IP publique de eth0:2&nbsp;» ou bien «&nbsp;avec l’adresse IP publique x.x.x.12&nbsp;» car on se fiche totalement qu’elle soit associée à l’étiquette eth0:2.

---

<div class="post-metadata">

**Author:** ![guedz45](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/839c29/32.png) [@guedz45](https://www.debian-fr.org/u/guedz45)\
**Post date:** [Avril 24, 2018, 9:39 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/11 "2018-04-24T09:39:22Z")

</div>

Merci pour ton retour  
C’est intéressant d’échanger avec toi  
Je me coucherai moins c… 🙂

Update : sur le lien que j’ai communiqué sur le wiki on peut lire pour la méthode proposée par PascalHambourg

Note however that this method is dangerous! Certain driver/hardware combinations may sometimes fail to bring the link up if no labels are assigned to the alias interfaces.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Avril 24, 2018, 11:40 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/12 "2018-04-24T11:40:15Z")

</div>

Je suis très dubitatif au sujet de cette réserve, car à ma connaissance ni le matériel ni les pilotes ne sont concernés par les alias IP.

---

<div class="post-metadata">

**Author:** ![guedz45](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/839c29/32.png) [@guedz45](https://www.debian-fr.org/u/guedz45)\
**Post date:** [Avril 24, 2018, 12:17 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/13 "2018-04-24T12:17:30Z")

</div>

Bonjour,

Merci beaucoup je confirme que la solution suivante m’a permis de traiter mon besoin

> [@PascalHambourg](#):
>
> iptables -t nat -A POSTROUTING -o eth0 -s adresse.ip.privee -j SNAT --to adresse.ip.publique

Merci beaucoup pour votre aide et vos explications

Cordialement,  
Guedz

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Avril 24, 2018, 12:44 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/14 "2018-04-24T12:44:55Z")

</div>

Merci du retour. Il y a une case à cocher quelque part pour marquer le sujet comme résolu plutôt que dans le titre.

---

<div class="post-metadata">

**Author:** ![AnonymousCoward](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f9ae1b/32.png) [@AnonymousCoward](https://www.debian-fr.org/u/AnonymousCoward)\
**Post date:** [Avril 24, 2018, 12:53 UTC](https://www.debian-fr.org/t/resolu-multiple-passerelle-pour-plusieurs-ip-publiques/76477/15 "2018-04-24T12:53:52Z")

</div>

> [@PascalHambourg](#):
>
> Tu peux faire avec ip addr add si tu veux, mais les options label eth0:N sont inutiles. Elles ne servent qu’à rendre les adresses IPv4 supplémentaires visibles avec ifconfig (au moins avec les anciennes versions jusqu’à Jessie ; la version de Stretch a visiblement été retravaillée et semble avoir plus de points communs avec ip, donc n’en a peut-être plus besoin - pas testé).

En effet, la commande `ip` fait partie du package [iproute2](https://packages.debian.org/stretch/iproute2) . La commande `ifconfig` fait partie, elle, du package [net-tools](https://packages.debian.org/stretch/net-tools) .  
Or, sous Stretch on peut voir que le package `iproute2` est installé avec le système de base alors que le package `net-tools` est optionnelle.

Sous Jessie les deux packages étaient installés avec le système de base.

On peut le vérifier avec l’information [priority](https://unix.stackexchange.com/a/90533) dans les informations concernant un package.  
Par exemple :  
`apt-cache show iproute2`

Et il était temps ! Cela fait depuis 2002 que iproute2 est censé être la manière dont le réseau se gère.

Plus qu’à éradiquer la dépendance à net-tools du package [bind9](https://packages.debian.org/stretch/bind9) et je serais un debianiste content !

–  
AnonymousCoward
