Tout d'abord, on va prendre en compte l'architecture suivante :

Architecture globale

Le routeur/firewall sert d'accès à internet.
Il donne les configurations IP sur le réseau local 192.168.1.0/24 via son interface locale.

Le PC-1 (en bleu) accède à Internet en se branchant (via sa carte eth0) directement sur le routeur/firewall.

Le PC-2 (en vert) aimerait avoir accès à Internet en utilsant la carte eth1 de PC-1.



Un partage de connexion classique se résumerait par

  • affecter deux sous-réseau différents sur eth0 et eth1 du PC-1
  • activer le routage sur celui-ci
  • déclarer une route statique sur le routeur/firewall

L'architecture ressemblerait à ça :

Architecture type routage



Un partage de connexion en utilisant la fonction bridging du kernel linux permet de mettre le PC-1 et le PC-2 dans le même sous-réseau et ainsi d'éviter de faire du routage sur un réseau qui n'en a pas besoin vu sa taille !!!

Comment activer la fonction bridging dans le kernel Linux ? Il suffit de compiler le module bridge (CONFIG_BRIDGE=m) :

Device Drivers > Networking support > Networking options > 802.1d Ethernet Bridging

  • Charger le module dans le noyau :
root@PC-1:~ # modprobe bridge
  • Couper l'interface eth0 :
root@PC-1:~ # ifdown eth0

Ensuite, il faut éditer le fichier de configuration du réseau /etc/network/interfaces sur debian/ubuntu. Avant la modification du bridge, il ressemble à l'exemple du dessous :

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# This is a list of hotpluggable network interfaces.
# They will be activated automatically by the hotplug subsystem.
mapping hotplug
        script grep
        map eth0

# The primary network interface
iface eth0 inet dhcp
  • Il faut le changer par ce qui suit :
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# This is a list of hotpluggable network interfaces.
# They will be activated automatically by the hotplug subsystem.
mapping hotplug
        script grep
        map bridge eth0 eth1

# The bridge interface
auto bridge
iface bridge inet dhcp
         bridge_ports eth1 eth0
         bridge_stp off
         bridge_fd 2
         bridge_maxwait 0
         name Bridge Interface
  • On monte l'interface bridge :
root@PC-1:~ # ifup bridge

La connexion est de nouveau active sauf que maintenant PC-1 a une interface bridge qui est son interface logique de dialogue sur le réseau 192.168.1.0/24. Selon la machine à atteindre il passera via eth0 ou eth1.

Côté PC-2, il faut configurer l'adressage IP automatique (dhcp) afin que le routeur/firewall puisse lui communiquer les informations IP.

Architecture en bridge

Maintenant PC-1 est un switch sur lequel sont branchés le routeur et PC-2 et toutes ces machines sont dans le même sous-réseau (192.168.1.0/24). Des possibilités de filtrage au niveau 2 sont possibles, mais c'est un autre problème ;o).