Mandriva




Partager sa connexion quand on a qu'une seule carte réseau

DrakgwUneInterface/drakgw-mdk.png

Vous avez l'internet, vous le recevez via un câble réseau et vous voudriez partager cet accès avec un ou plusieurs autres ordinateurs. Comment faire ?

La solution classique pour partager sa connexion

La première solution est d'acheter une carte réseau, un câble croisé, vous lancez le partage de connexion dans drakconf et c'est fini. Si vous voulez partager la connexion avec plus d'un ordinateur, vous pouvez utiliser un hub ou un switch et un câble décroisé à la place du cable croisé.

Maintenant, vous pouvez très bien avoir un hub/switch et votre internet arrive dessus. Puis de cet appareil, le réseau parvient à votre PC qui n'a qu'une seule interface réseau. Comment éviter l'achat d'une nouvelle carte réseau (même si ce n'est pas bien coûteux) ?

Création d'une interface virtuelle

La première chose à faire est de créer une interface virtuelle : de cette manière, vous pourrez clairement distinguer le traffic entre vos ordinateurs locaux et le traffic vers l'internet. L'interface virtuelle s'appellera "eth0:0" (elle partage toutes ses propriétés avec eth0 sauf l'adress ip)

Pour cela, copier et renommer le fichier /etc/sysconfig/network-scripts/ifcfg-eth0 :

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0

Ensuite, configurer l'interface virtuelle, de manière à donner une adresse statique à cette interface. Elle n'a besoin que d'une adresse ip et d'un masque, le reste n'ayant pas d'importance (choisir uniquement une adresse non-routables, telle que 192.168.7.254, par exemple et un masque de 255.255.255.0). Editez ce fichier à la main car MCC semble ne pas trop bien comprendre ce qu'est une interface virtuelle. Voici mon fichier ifcfg-eth0:0 dont on comprend aisément chaque paramètre :

DEVICE=eth0:0
BOOTPROTO=static
IPADDR=192.168.7.254
NETMASK=255.255.255.0
ONBOOT=yes

Lancez ensuite

service network restart
Un petit /sbin/ifconfig vous montrera que vous avez maintenant une interface supplémentaire.

Configuration de shorewall

Shorewall va nous servir de deux manière : en tant que firewall et aussi de passerelle NAT. Le monde extérieur aura l'impression que seul votre PC raccordé à l'internet existe : seule son adresse IP sera visible et pas celle des autres ordinateurs. Ce principe s'appelle le masquerading.

Déjà, si ce n'est pas déjà fait, utilisez drakfirewall pour configurer un firewall pour votre PC raccordé à l'internet : les fichiers de bases seront ainsi créé et vous n'aurez qu'à les modifier. Car, ici aussi, une modification à la main est nécessaire (drakgw qui permet le partage de connexion ne supporte pas les interfaces virtuelles non plus).

Noter que shorewall supporte les interfaces virtuelles mais d'une manière étonnante : en effet, vous ne ferez pas une seule fois référence à l'interface virtuelle dans ce qui suit et pourtant, c'est la manière dont cela doit être fait...

Une fois votre firewall mis en place, il y a trois changements à opérer dans la configuration de shorewall :

/etc/shorewall/interfaces

Préciser ici qu'il est autorisé qu'un paquet qui rentre par une interface puisse ressortir par la même interface (par défaut, shorewall n'autorise pas cela). En effet, shorewall n'est pas dupe et une interface virtuelle n'est pas vraiment considérée comme une interface. Pour cela, il faut rajouter l'option "routeback" à l'interface réelle associée.

Mis à part les commentaires, mon fichier ne contient que cette ligne :

net     eth0    detect routeback

/etc/shorewall/rules

Ici, vous allez autoriser vos ordinateurs à communiquer avec la passerelle, appelée "fw", (ordinateur raccordé à l'internet) et aussi à communiquer avec l'internet, appelé "net".

Si vous avez choisi le même subnet que moi (192.168.7.0/255.255.255.0), rajouter ces deux lignes au dessus de toutes les autres (/24 et /255.255.255.0 sont équivalent) :

ACCEPT  net:192.168.7.0/24      fw
ACCEPT  net:192.168.7.0/24      net

/etc/shorewall/masq

Dans ce fichier, vous indiquez que shorewall doit effectuer un masquage des adresses pour tout paquet à destination de l'internet. Rajouter simplement la ligne suivante (c'est la seule ligne qui apparaît dans mon fichier) :

eth0    192.168.7.0/24

Redémarrage

Lancez :

service shorewall restart
Vérifier qu'il n'y a pas d'erreur (en particulier à la fin), sinon c'est vraisemblablement une erreur de frappe.

Configuration réseau des ordinateurs

Voilà, c'est fini pour la passerelle, il vous reste maintenant à configurer les autres stations. Il faut leur donner une adresse IP dans la plage d'adresses que vous avez défini et différente de la passerelle (de 192.168.7.1 à 192.168.7.253).

Notez que dans ma configuration, ces hôtes ne sont pas protégées par le firewall sur la passerelle : vous devez configurer drakfirewall sur elles aussi. Je préfère ce genre de configuration ou chaque hôte est libre d'utiliser son propre firewall. Sinon, il vous faudra ajuster la règle qui autorise la communication "net -> 192.168.7.0/4".

Vous pouvez aussi utiliser dhcp-server. Là encore, les outils drakx ne vous aideront pas car le drakwizard pour dhcp-server ne semble pas non plus supporter les interfaces virtuelles : il peut néanmoins vous fournir le fichier de base pour votre configuration DHCP.

Afin de tester si la connectivité à partir d'un ordinateur est correcte, deux commandes "ping" suffiront : vers la passerelle et vers une hôte sur l'internet (www.google.com , par exemple).

Blog Home

yoho - DrakgwUneInterface
Version 1.13 last modified by yoho on 01/12/2005 at 22:29

Comments (2)

yoho | 23.09.2005 at 05:43 PM
Que faut-il détailler, bubar ?

bubar | 23.09.2005 at 06:37 PM
petit malin ;) c etait la partie shorewall pour le nat qui n etait pas complete au moment de mon post. C est fait.

Attachments (1)

[img]
drakgw-mdk.png 1.1
PostedBy: yoho on 22/09/2005 (3kb )
 


Multilingualism
RSS
RSS

Creator: yoho on 22/09/2005 at 17:10
(c) Mandriva 2007
1.1-SNAPSHOT.1701