Pages : 1
#1 Le 05/04/2011, à 17:21
- Lolichou
Faire un pont réseau avec bridge-utils
Salut, j'ai deux réseaux (un en dhcp et un autre en statique.) et j'essaye de les reliés avec un pont, seulement je n'arrive pas à pinger d'un réseau à l'autre...
Voici mon fichier de configuration (/etc/network/interfaces.)
auto eth0
iface eth0 inet static
address 192.168.20.225
netmask 255.255.255.0
network 192.168.20.0
broadcast 192.168.20.255
gateway 192.168.20.1
auto eth1
iface eth1 inet dhcp
auto br0
iface br0 inet static
address 192.168.0.10
netmask 255.255.255.0
broadcast 192.168.0.255
bridge_ports eth1 eth0
bridge-ageing 7200
bridge_spt off
Merci.
Hors ligne
#2 Le 05/04/2011, à 17:31
- slasher-fun
Re : Faire un pont réseau avec bridge-utils
Bonjour,
Si tu as deux cartes réseau, il est bien plus simple de configurer chacun des sous-réseaux sur une carte et d'activer l'ipv4 forwarding
Hors ligne
#3 Le 05/04/2011, à 18:02
- droopy191
Re : Faire un pont réseau avec bridge-utils
Salut,
Vous ne pouvez pas faire un pont entre 2 sous-réseaux distincts.
Il faut forcement faire du routage ( cf réponse de slasher-fun ). Activation du routage sur la machine de liaison et indiquer les routes sur les passerelles des 2 sous-réseaux.
Un pont est comme un switch. Voir presque un domino pour relier 2 cables ethernet si on ne configure pas d'ip à la machine qui fait le pont.
PS: inutile de configurer des ips sur des interfaces que l'on ponte ensuite.
auto eth1
iface eth1 inet manual
est suffisant
Dernière modification par droopy191 (Le 05/04/2011, à 18:03)
Hors ligne
#4 Le 06/04/2011, à 19:47
- Lolichou
Re : Faire un pont réseau avec bridge-utils
Re, sinon on m'a donné ce document, ce que je dois faire en fait c'est un pont filtrant..., mais il faut re-compiler le noyaux (sans doute pour ça que ça ne marche pas.)
Voici ce que dit le document :
d'abord vous devez avoir un ordinateur avec deux cartes réseaux pour pouvoir interconnecter /filtrer les deux réseaux. Le support du "pont" est intégré à partir du kernel 2.4. , mais vous devez prendre le dernier kernel à jour (2.4.19 lors de la rédaction de ce document) pour avoir le meilleur support du pont. Vous devez aussi appliquer un patch kernel, pour ajouter le support du pont à iptable (pour pouvoir filtrer les paquets qui vont traverser le pont):
bridge-nf-0.0.7-against-2.4.19.diff
Ceci est le patch pour le kernel 2.4.19. Si lors de la lecture de ce document, le dernier kernel n'est plus le 2.4.19, récupérez alors le patch pour la version du kernel actuelle que vous trouverez ici:
Site officiel "pont filtrant" pour Linux
Appliquez alors le patch à votre kernel, pour le 2.4.19 par exemple, allez dans le répertoire des sources du kernel et faites un :
patch -p1 < bridge-nf-0.0.7-against-2.4.19.diff
Recompilez alors votre kernel, en activant dans la partie Network Options :
Network Packet Filtering (remplace ipchains) (em module ou en natif)
Passez en module (ou en natif) toutes les options de :
IP: Netfilter Configuration
et activer aussi le support du pont :
[*] 802.1d Ethernet Bridging
A partir de ce moment, notre machine peut faire office de pont, et filtrer les paquets du pont.
Il vous faut aussi les utilitaires de configuration, c'est à dire les programmes pour configurer le pont lui-même, que vous téléchargez ici:
bridge-utils-0.9.6.tar.gz
Comme avec n'importe quelle source de programmes, vous "détarballez" et compilez le tout :
tar zxvf bridge-utils-0.9.6.tar.gz
cd bridge-utils
./configure
make
make install
Rappel : si votre distribution contient un paquetage pour bridge-utils, préférez utiliser ce paquetage plutôt que les sources. Certains puristes prétendrons qu'utiliser les sources c'est l'esprit Linux, mais ce sont surtout des problèmes de dépendances non gérées, des choix par forcément simple à faire sur l'utilisation de telle ou telle fonctionnalité du logiciel que l'on désire compiler.
Pour vérifier que votre distribution contient un paquetage pour bridge-utils, il faut utiliser l'outil de gestion de paquetage de celle-ci. Par exemple :
• pour Debian : apt-cache search bridge-utils
• pour Gentoo : emerge -s bridge-utils
• pour Mandriva : urpmq bridge-utils
• pour Slackware : swaret --search bridge-utils
Votre distribution contient aussi presque surement un outil graphique pour obtenir cette information.
Pour plus d'information sur ces questions, consulter cette documentation.
Configuration du pont lui même
Comme nous l'avons dit plus haut, le pont en lui-même n'a pas besoin d'adresse IP (ni même d'adresse MAC) pour fonctionner. Donc dans un premier temps, nous enlevons toute adresse IP des deux cartes réseaux qui constituent notre pont, et les passons en mode "promisc" pour qu'elles puissent écouter tout le réseau et donc transférer les trames réseaux d'un réseau à l'autre.
ATTENTION Si vous etes en telnet ou ssh sur cette machine, la connexion va être coupée, faites donc ces manipulations en console sur la machine elle-même.
ifconfig eth0 0.0.0.0 promisc
ifconfig eth1 0.0.0.0 promisc
Maitenant nous mettons en place le pont lui-même, c'est-à-dire nous donnons un nom au bridge lui-même (mon-pont) et déclarons les interface réseaux qui vont servir au pont (eth0 et eth1):
brctl addbr mon-pont
brctl addif mon-pont eth0
brctl addif mon-pont eth1
Pour certains équipement actifs (switch, routeur, etc) le pont doit se "déclarer" pour que tout fonctionne bien. Si la connexion entre les deux réseaux ne fonctionne pas, essayez ces commandes (mais dans 90% des cas cela n'est pas nécessaire) :
brctl sethello mon-pont 1
brctl setfd mon-pont 4
Pour vérifier que tout marche, normalement toute machine du réseau1 doit pouvoir pinguer toutes les machines du réseau2 et inversement. Et si vous faites un "traceroute" d'une machine du réseau1 vers le réseau2 (ou inversement), vous ne verrez PAS le pont. Il se comporte là comme un simple "fil" reliant les deux réseaux.
Par contre, vous avez peut-être besoin d'accéder en réseau à la machine qui sert de pont (pour faire du ssh ou autre), il faut donc lui donner une adresse IP. Mais comment faire étant donné que les deux interfaces réseaux servent au pont ? Il y a deux solutions :
- Soit vous ajoutez une 3éme carte réseau a cette machine, que vous configurez normalement, avec une adresse IP etc....
- Soit vous configurez le pont lui-même AVEC une adresse Ip. Le pont se comporte donc exactement comme une interface réseau et pour lui affecter une adresse IP, on le fait de la même manière que pour une interface "normale", par exemple :
ifconfig mon-pont 192.168.1.50 netmask 255.255.255.0
Et si vous refaites des traceroute, vous ne le verrez toujours PAS sur le résultat du traceroute
Et après il commence le script pour les iptables.
Mais il parle de deux sous réseaux, mais pour avoir plusieurs sous réseau il faut passer par la couche 3 (le routage...), et un pont ça agit comme un switch, c'est ça que je comprends pas, qu'entend t-il par sous réseau ?
Hors ligne
#5 Le 06/04/2011, à 19:55
- chibbata
Re : Faire un pont réseau avec bridge-utils
ton exemple date un peu!!!
pourquoi ne pas relier tes pc a un seul serveur? ce seait plus simple
Hors ligne
#6 Le 06/04/2011, à 23:51
- Pam547
Re : Faire un pont réseau avec bridge-utils
Salut,
Je m'y connais peut-être moins que toi. Mais je veux bien essayer d'y réfléchir, histoire de progresser sur les réseaux.
L'histoire de sous-réseaux est peut-être une description mal approprié à ton problème ?.?
Ici, au paragraphe 1.3 il est sympathiquement offert une explication.
Je ne comprends pas :
auto eth0
iface eth0 inet static
address 192.168.20.225
netmask 255.255.255.0
network 192.168.20.0
broadcast 192.168.20.255
gateway 192.168.20.1
auto eth1
iface eth1 inet dhcp
auto br0
iface br0 inet static
address 192.168.0.10
netmask 255.255.255.0
broadcast 192.168.0.255
bridge_ports eth1 eth0
bridge-ageing 7200
bridge_spt off
eth0 premier réseau, en statique.
eth1 deuxième réseau, en dhcp.
Mais pourquoi ils sont sur le fichier config d'un seul PC ? Deux réseaux, c'est au moins deux serveurs ...
Dernière modification par Pam547 (Le 06/04/2011, à 23:53)
Art.9.(code civil) Chacun a droit au respect de sa vie privée.
Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.
Hors ligne
#7 Le 07/04/2011, à 15:39
- Lolichou
Re : Faire un pont réseau avec bridge-utils
J'y ai réfléchis, et en effet, un seul serveur pourrait suffire.
Je met deux cartes réseaux sur le serveur pour le routage d'un réseau à l'autre car le pont ne peut pas faire de routage. (vu que c'est comme un switch.)
Et je met un pont dans un des deux réseau entre le serveur et le switch de ce réseau pour appliquer le filtrage entre les deux réseau.
Ca me fait donc deux machines avec deux carte réseaux : le serveur et le pont. ^^
Pour le pont je penses que ça doit marcher sans devoir recompiler le noyaux.
Et je penses que par sous réseau il entends les deux réseau qui sont de part et d'autre du pont.
Dernière modification par Lolichou (Le 07/04/2011, à 15:41)
Hors ligne
#8 Le 07/04/2011, à 16:12
- Pam547
Re : Faire un pont réseau avec bridge-utils
Ca me fait donc deux machines avec deux carte réseaux : le serveur et le pont. ^^
Pourquoi pas une machine (serveur) avec deux cartes ... Connexion et pont.
Et tes machines clientes avec une seule carte pour la connexion. C'est quoi l'intérêt de leur en mettre deux ?
Art.9.(code civil) Chacun a droit au respect de sa vie privée.
Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.
Hors ligne
#9 Le 07/04/2011, à 19:16
- droopy191
Re : Faire un pont réseau avec bridge-utils
Lolichou a écrit :Ca me fait donc deux machines avec deux carte réseaux : le serveur et le pont. ^^
Pourquoi pas une machine (serveur) avec deux cartes ... Connexion et pont.
Et tes machines clientes avec une seule carte pour la connexion. C'est quoi l'intérêt de leur en mettre deux ?
Je crois en effet qu'il faudrait plus d'explication sur le role de ce serveur.
Le serveur à une patte dans chaque réseau- ca c'est clair.
Ensuite, il faut joindre les réseaux puis vous parlez de filtrer ?
Dernière modification par droopy191 (Le 07/04/2011, à 20:11)
Hors ligne
#10 Le 07/04/2011, à 21:03
- Lolichou
Re : Faire un pont réseau avec bridge-utils
En fait il faut joindre les deux réseaux tout en faisant un firewall indétectable entre les deux réseaux (un pont filtrant avec les iptables permet de le faire.) afin de paramétrer les accès entre le réseau 1 et le réseau 2.
Les machines clientes n'ont que une carte réseau.
Mais pour le serveur/routeur et le pont il en faut deux..., ou je me trompe ?
En fait je ne vois pas comment je peux faire pour être sûr que tout ce qui passe d'un réseau à l'autre (Et seulement ce qui passe d'un réseau à l'autre.) passe aussi par le pont...
Alors je pensais faire ceci : (un schéma sera plus clair.)
R = le routeur.
P = le pont.
R1 = le réseau 1.
R2 = le réseau 2.
Dernière modification par Lolichou (Le 07/04/2011, à 21:19)
Hors ligne
#11 Le 07/04/2011, à 23:42
- Pam547
Re : Faire un pont réseau avec bridge-utils
Et internet viens d'où ?
Un routeur ... Un hub ne suffirait-il pas ?
Art.9.(code civil) Chacun a droit au respect de sa vie privée.
Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.
Hors ligne
#12 Le 08/04/2011, à 07:36
- Lolichou
Re : Faire un pont réseau avec bridge-utils
Internet vient d'un parefeu qui lui même est branché sur le routeur ADSL.
Non, un seul routeur ne suffirait pas car il faut le routeur ADSL pour relié le parefeu à internet et un autre pour relier les deux réseaux locaux.
Et les machines clientes ont comme passerelle par défaut le parefeu ce qui leur permet d'avoir internet., j'ai aussi activé le partage de connexion sur le serveur, donc pour l'internet pas de problème.
Dernière modification par Lolichou (Le 08/04/2011, à 07:39)
Hors ligne
#13 Le 10/04/2011, à 11:35
- Lolichou
Re : Faire un pont réseau avec bridge-utils
Au pire je me casse pas la tête, je mets toutes les machines dans le même réseau..., ainsi plus besoin de faire de routage entre les deux réseaux...
Hors ligne
#14 Le 10/04/2011, à 17:13
- droopy191
Re : Faire un pont réseau avec bridge-utils
Au pire je me casse pas la tête, je mets toutes les machines dans le même réseau..., ainsi plus besoin de faire de routage entre les deux réseaux...
Vous faites comme vous voulez, mais je ne comprends tjs pas l'intérêt du pont filtrant à cet endroit. Vous faites un routeur classique et vous filtrer avec iptables éventuellement entre réseaux mais vu qu'on parle de 2 réseaux locaux, je ne filtrerais qu'en sorti de réseau.
Hors ligne
#15 Le 14/04/2011, à 17:49
- Lolichou
Re : Faire un pont réseau avec bridge-utils
Bah le routeur est détectable sur le réseau : avec un traceroute on le voit;
tandit que le pont lui non. ^^
Le pont est donc plus difficile à pirater.
Dernière modification par Lolichou (Le 14/04/2011, à 17:50)
Hors ligne
#16 Le 14/04/2011, à 19:21
- droopy191
Re : Faire un pont réseau avec bridge-utils
Bah le routeur est détectable sur le réseau : avec un traceroute on le voit;
tandit que le pont lui non. ^^
Le pont est donc plus difficile à pirater.
J'ai bien dit faites comme vous voulez
votre pont filtrant est situé entre 2 réseaux locaux, non ?
Pour l'absence d'ip du pont, oui sur le principe, mais il va bien falloir l'administrer d'une facon ou d'une autre. Vous allez bien finir pas lui installer un sshd à la place d'une console physique ....
Hors ligne
#17 Le 14/04/2011, à 19:40
- _Raum_
Re : Faire un pont réseau avec bridge-utils
Hello,
Perso, j'ai à la main... le pont et tout...
En gros cela donne un truc du genre, par script et dans le rc.local à la limite :
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig br0 192.168.0.10 netmask 255.255.255.0
ifconfig br0 up
Maintenant pour revenir à ton problème, il faut bien comprendre qu'un pont agit un niveau 2 (LAN) alors que tu veux utiliser des sous-réseaux, donc niveau 3 (IP). De fait, il est fort à parier que cela ne peut pas fonctionner correctement.
Premier problème que je vois, ton client, qui a pour adresse 192.168.20.50 par exemple, veut pinger une adresse en 192.168.10.60. L'adresse qu'il essaie de pinger n'appartient pas à son sous-réseau, il envoie à sa passerelle par défaut qui est 192.168.20.225.... Il doit y avoir d'abord une demande de résolution ARP... Là, comme la passerelle par défaut est 192.168.20.1, j'avoue que je suis perplexe sur le résultat... un tcpdump sur eth0 pour voir, puis sur br0 et tu y verrais plus clair
Par contre je ne vois pas pourquoi tu veux un pont et pourquoi tu n'utilises pas un simple routage inter-réseau ? ce serait beaucoup plus simple, non ?
Hors ligne
#18 Le 20/04/2011, à 17:27
- Lolichou
Re : Faire un pont réseau avec bridge-utils
Oui, le routage est obligatoire car les deux réseaux sont dans des sous réseaux différents.
Je suis sûr maintenant que l'erreur vient du fait que je voulais utiliser le pont avec deux sous réseaux, hors qu'il faut obligatoirement passer par un routeur sinon ça ne passe pas!
Je vais essayer ça, et je vous dis quoi..., bien que maintenant j'ai un problème de hardware au niveau du routeur, du coup il ne détecte qu'une carte réseau hors que j'en ai mis 2 sur la machine, un problème de bus PCI sur la carte mère. =/
Je penses que je vais devoir laisser tomber le pont, ou alors je mets les machines des deux atelier dans le même sous réseau..., je penses que c'est la solution la plus simple et la de toutes façon je n'ai plus le choix! (Et là plus besoin de routage!)
(Il y a juste le fait que je dois changer toute la config au niveau du serveur.)
Hors ligne