Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ajouter à un bridge une interface eth0 possédant une IP

9 réponses
Avatar
Francois Lafont
Bonjour,

Tout est dans le titre. Sous Linux, lorsqu'on crée une interface
« de type bridge », on peut ensuite ajouter (connecter) à notre bridge
des interfaces eth0, eth1 etc. *sans* *IP*. Apparemment, c'est
impossible si l'interface possède une IP.

Est-ce possible de contourner cela ?

En fait, j'ai une machine avec deux interfaces eth0 et eth1 chacune
avec une IP dans le même réseau IP (mettons 192.168.0.0/24) :

- eth1 est une interface reliée une autre machine distante via un vpn
sachant que la machine distante n'est pas sur le même réseau physique
(mais elle a un IP dans le réseau 192.168.0.0/24).

- eth0 est une interface physiquement reliée au réseau IP
192.168.0.0/24

L'idée serait de faire en sorte que tout se passe comme si les 2
interfaces étaient reliées par un switch afin que la machine
distante soit vue par les machines présentes physiquement dans le
réseau 192.168.0.0/24. D'où l'idée d'un bridge qui contiendrait
les deux interfaces.

--
François Lafont

9 réponses

Avatar
Nicolas George
Francois Lafont , dans le message
<527286d6$0$2409$, a écrit :
L'idée serait de faire en sorte que tout se passe comme si les 2
interfaces étaient reliées par un switch afin que la machine
distante soit vue par les machines présentes physiquement dans le
réseau 192.168.0.0/24. D'où l'idée d'un bridge qui contiendrait
les deux interfaces.



Oui, il faut un bridge qui contienne les deux interfaces, mais les
interfaces ne doivent pas avoir d'adresse IP, c'est le bridge qui doit en
avoir une.
Avatar
Emmanuel Florac
Le Thu, 31 Oct 2013 17:35:34 +0100, Francois Lafont a écrit:


En fait, j'ai une machine avec deux interfaces eth0 et eth1 chacune avec
une IP dans le même réseau IP (mettons 192.168.0.0/24) :



Déjà, c'est a priori une mauvaise idée d'avoir deux interfaces dans le
même réseau. Sauf à avoir défini des routes complexes, tout va passer en
fait par une seule interface...

- eth1 est une interface reliée une autre machine distante via un vpn
sachant que la machine distante n'est pas sur le même réseau physique
(mais elle a un IP dans le réseau 192.168.0.0/24).

- eth0 est une interface physiquement reliée au réseau IP 192.168.0.0/24

L'idée serait de faire en sorte que tout se passe comme si les 2
interfaces étaient reliées par un switch afin que la machine distante
soit vue par les machines présentes physiquement dans le réseau
192.168.0.0/24. D'où l'idée d'un bridge qui contiendrait les deux
interfaces.




Je crois que tu mélanges plusieurs trucs. Tu peux intégrer eth1 dans un
bridge, mais bridgée avec quoi? Si tu veux que ta machine servent de
routeur vers la machine VPN, c'est l'ipforward que tu dois activer, et
iptables que tu dois utiliser. Pas un bridge.

--
I am not a vegetarian because I love animals; I am a vegetarian
because I hate plants.
A. Whitney Brown
Avatar
Francois Lafont
Le 31/10/2013 18:00, Nicolas George a écrit :

Oui, il faut un bridge qui contienne les deux interfaces, mais les
interfaces ne doivent pas avoir d'adresse IP, c'est le bridge qui doit en
avoir une.



Oui absolument, c'est ce que je fais à chaque fois. Simplement, je
me demandais s'il n'y avait pas un moyen pour faire en sorte de
rattacher une interface *avec* *IP* à un bridge ?

C'est sans doute une vision un peu simplificatrice, mais pour moi
le brigde correspond à un switch virtuel et les interfaces
rattachées à ce switch (interfaces sans IP donc) sont de simples
ports de ce switch. Elles n'ont pas d'IP au même titre que les
ports d'un switch n'ont pas d'IP, c'est de l'ethernet, on ne monte
pas jusqu'au protocole IP.

Mais est-ce qu'on ne peut pas prolonger cette comparaison et
avoir une interface niveau IP (avec une adresse IP donc) connectée
à un port de ce switch virtuel, au même titre que dans le monde
« réel » on connecte une interface physique (qui possède une IP
etc.) à un switch réel via un vrai câble ethernet ?

Par exemple, avec Xen, en général on a un bridge et les interfaces
des VM (les domU) qui possèdent bien une IP sont bien reliées
(d'une façon qui m'échappe) à ce bridge. En particulier, sous
Debian avec Xen, on a un bridge xenbr0 (par exemple), et pour un
domU (le domU id=1 par exemple) on a une interface vif1.0 qui est
rattachée au bridge et qui est effectivement sans IP, mais d'une
manière mystérieuse pour moi, cette interface vif1.0 est reliée
à l'interface eth0 du domU si bien qu'indirectement cette interface
(virtuelle) est bien reliée au bridge.

C'est un peu ça que je voudrais arriver à faire mais sans Xen
et sans VM etc. Ce n'est peut-être pas possible...

--
François Lafont
Avatar
Francois Lafont
Le 31/10/2013 20:51, Emmanuel Florac a écrit :

Déjà, c'est a priori une mauvaise idée d'avoir deux interfaces dans le
même réseau. Sauf à avoir défini des routes complexes, tout va passer en
fait par une seule interface...



Ah, c'est possible. Faut que je médite là-dessus. :-)

Je crois que tu mélanges plusieurs trucs. Tu peux intégrer eth1 dans un
bridge, mais bridgée avec quoi? Si tu veux que ta machine servent de
routeur vers la machine VPN, c'est l'ipforward que tu dois activer, et
iptables que tu dois utiliser. Pas un bridge.



Ok, je comprends l'idée mais dans ce cas la machine distante intégrée
au réseau via VPN ne sera pas accessible aux machines qui se trouvent
physiquement sur le réseau ethernet qui supporte le réseau IP. Je
m'explique. Tu as un réseau ethernet physique avec des switch etc.
qui supporte un réseau IP (par exemple 192.168.0.0/24). Et tu as une
machine distante D qui n'est *pas* sur le réseau physique ethernet mais
qui a une IP dans le 192.168.0.0/24 et qui est reliée à ce réseau IP
via mon « routeur VPN » (il y a un tunnel qui relie le eth1 du « routeur
VPN » à une interface virtuelle ppp0 de la machine D (ce tunnel passe
par le grand Internet). Pour moi, s'il n'y a pas une sorte de brigde
quelque part au niveau de ce « routeur VPN », une machine M du réseau
physique (qui est dans le réseau IP 192.168.0.0/24) ne pourra pas faire
un ping vers la machine D car la machine M voudra résoudre l'IP de D
en adresse MAC via une requête ARP whos-has mais personne ne répondra à
cette requête ARP car dans le réseau physique ethernet aucune machine ne
possède cette IP qui est réservée à D qui se trouve physiquement ailleurs.
Du coup, je rate mon objectif qui était d'arriver à faire en sorte
que tout se passe comme si D était dans le réseau physique ethernet.

J'espère que je suis clair...


--
François Lafont
Avatar
Nicolas George
Francois Lafont , dans le message
<52730972$0$3427$, a écrit :
Mais est-ce qu'on ne peut pas prolonger cette comparaison et
avoir une interface niveau IP (avec une adresse IP donc) connectée
à un port de ce switch virtuel, au même titre que dans le monde
« réel » on connecte une interface physique (qui possède une IP
etc.) à un switch réel via un vrai câble ethernet ?



On peut, mais ta comparaison n'est pas bonne, puisque dans cette
comparaison, tu as quelque chose d'extérieur connecté au switch : ça
correspond à avoir une seconde machine branchée à une des interfaces qui
composent le bridge, ce n'est pas ce dont tu parles.

Ce dont tu parles, il me semble, c'est d'avoir une adresse IP pour la
machine qui héberge le bridge, comme une machine branchée au switch par
l'intérieur.

C'est possible, évidemment, mais il faut te rappeler que sur un switch, tous
les ports sont équivalents : l'adresse IP va bien sur le bridge, pas sur un
de ses composants.
Avatar
Pascal Hambourg
Salut,

Francois Lafont a écrit :

Tout est dans le titre. Sous Linux, lorsqu'on crée une interface
« de type bridge », on peut ensuite ajouter (connecter) à notre bridge
des interfaces eth0, eth1 etc. *sans* *IP*. Apparemment, c'est
impossible si l'interface possède une IP.



Ah ? Qu'est-ce qui te fait dire ça ? La dernière fois que j'ai essayé,
c'était possible. Tu ne confondrais pas "c'est impossible" avec "ça ne
fait pas ce que je veux" ?

En fait, j'ai une machine avec deux interfaces eth0 et eth1 chacune
avec une IP dans le même réseau IP (mettons 192.168.0.0/24) :



Comme d'autres l'ont déjà écrit, en général c'est une mauvaise idée.

- eth1 est une interface reliée une autre machine distante via un vpn
sachant que la machine distante n'est pas sur le même réseau physique
(mais elle a un IP dans le réseau 192.168.0.0/24).



eth1 est une interface virtuelle ? Sinon je ne comprends pas.

- eth0 est une interface physiquement reliée au réseau IP
192.168.0.0/24

L'idée serait de faire en sorte que tout se passe comme si les 2
interfaces étaient reliées par un switch afin que la machine
distante soit vue par les machines présentes physiquement dans le
réseau 192.168.0.0/24. D'où l'idée d'un bridge qui contiendrait
les deux interfaces.



Pour faire cela il est inutile que les interfaces pontées aient des
adresses IP.
Avatar
Pascal Hambourg
Francois Lafont a écrit :

Tu as un réseau ethernet physique avec des switch etc.
qui supporte un réseau IP (par exemple 192.168.0.0/24). Et tu as une
machine distante D qui n'est *pas* sur le réseau physique ethernet mais
qui a une IP dans le 192.168.0.0/24 et qui est reliée à ce réseau IP
via mon « routeur VPN » (il y a un tunnel qui relie le eth1 du « routeur
VPN » à une interface virtuelle ppp0 de la machine D (ce tunnel passe
par le grand Internet).



Je ne comprends pas bien. Normalement une liaison PPP s'établit entre
deux interfaces ppp*, pas entre une interface ppp* et une interface
eth*. A ma connaissance pppd ne supporte pas ethernet sur PPP.

Pour moi, s'il n'y a pas une sorte de brigde
quelque part au niveau de ce « routeur VPN », une machine M du réseau
physique (qui est dans le réseau IP 192.168.0.0/24) ne pourra pas faire
un ping vers la machine D car la machine M voudra résoudre l'IP de D
en adresse MAC via une requête ARP whos-has mais personne ne répondra à
cette requête ARP car dans le réseau physique ethernet aucune machine ne
possède cette IP qui est réservée à D qui se trouve physiquement ailleurs.



Il y a le proxy ARP pour ça, même si ce n'est pas très propre. Et
justement, pppd sait faire.
Avatar
Eric Masson
Francois Lafont writes:

'Lut,

Ok, je comprends l'idée mais dans ce cas la machine distante intégrée
au réseau via VPN ne sera pas accessible aux machines qui se trouvent
physiquement sur le réseau ethernet qui supporte le réseau IP.



Le monde est bien fait, ppp fournit le mécanisme de proxy arp qui résout
le problème :
http://www.tldp.org/HOWTO/PPP-HOWTO/x1552.html

La notion de bridge est utilisée par OpenVPN en mode L2 :
http://openvpn.net/index.php/open-source/documentation/miscellaneous/76-ethernet-bridging.html

--
et pis d'abord c'est quoi un dino ? une sorte de casimir avec de la
guinness en guise de blouguiboulga ?
-+-JFP in <http://www.le-gnu.net> : L'île aux dinos -+-
Avatar
Francois Lafont
Salut tout le monde,

Merci pour vos réponses. En fait, j'ai posté ce fil suite à
une discussion avec un collègue qui essaye de mettre en place
un VPN et qui m'a soumis ce problème réseau que j'ai essayé de
retranscrire (maladroitement) ici. La question m'avait intéressé.
Mais il s'avère que je ne maîtrise pas l'aspect VPN et tout
l'environnement autour.

Bref... je vais me retourner vers mon collègue afin ensuite de
vous exposer le problème précisément... ce que j'aurais dû faire
avant de poster. Vraiment toutes mes excuses.

--
François Lafont