J’ai reçu un PC portable tout neuf il y a quelques temps. Il fallait transférer mon /home qui a plus de 40 go de données vers ce nouveau PC portable. Sans rentrer dans les détails personnels (expliqués ici), j’en ai profité pour expérimenter le fonctionnement du réseau sous Linux. C’est assez compliqué au premier abord, mais qu’est-ce que c’est puissant :D .

J’ai finalement fait : -Configurer un serveur dhcp sur mon desktop, -tant qu’on y est, essayer de partager la connexion internet du desktop vers le laptop, -Couper le wifi sur le laptop pour être sûr que tout fonctionne.

Les deux PCs sons sous Ubuntu. Toutefois, la configuration du partage aurait pû se faire de la même manière sur Debian (je me suis d’ailleurs inspiré de tutoriels et exemples de configuration venant directement de Debian). Quant au PC qui se connecte au réseau, peu importe l’OS qu’il possède, du moment qu’il peut utiliser DHCP :D .

Une particularité de mon système est que le desktop se connecte lui aussi en wifi. La connexion wlan0 correspond donc à la connexion réseau qui a internet ;) .L’interface eth0 est celle qui sera connectée au portable. De plus, un serveur DNS était déjà en place sur le desktop.

Dans cet exemple, l’interface eth0 a pour adresse IP 192.168.2.1, le masque utilisé est 255.255.255.0. C’est bien entendu à adapter à votre cas.

La résolution

Voici les notes prises lors de cette manipulation (elles ont étés remises en forme pour l’occasion ;) ). Toutes les manipulations sont à faire sur le PC qui partage la connexion internet, le but étant que les PCs du second réseau n’aient rien à paramétrer pour se servir de la connexion.

Tout d’abord, il faut ajouter une IP fixe à l’interface qui servira pour le serveur DHCP. Pour cela, on modifie le fichier /etc/network/interfaces (ne fonctionne que sur les distributions Debian-based.

# Interface ETHERNET.
auto eth0
iface eth0 inet static
address 192.168.2.1
netmask 255.255.255.0
broadcast 192.168.2.255
network 192.168.2.0
# passerelle il faut mettre l'adresse IP de l'interface de connexion à Internet (box)
gateway 192.168.1.1

Ensuite, il faut installer et configurer le serveur DHCP.

sudo apt-get install dhcp3-server

Bien entendu, on configure l’attribution des adresses IP (dans le fichier /etc/dhcp3/dhcpd.conf

##### Option générales par défaut #####

### RESEAU ###

## Nom du serveur DHCP
server-name "bartimeus.kankan";

## Mode autoritaire (autoritaire)
authoritative;

## Masque de sous-réseau
option subnet-mask 255.255.255.0;


### DOMAINE ###

## Nom du domaine
option domain-name "kankan";

## Adresse IP du serveur DNS
# a remplacer par l ip de votre serveur dns ou par celle de votre fai
option domain-name-servers 192.168.2.1;

## Type de mise à jour du DNS (aucune)
ddns-update-style none;


### TEMPS DE RENOUVELEMENT DES ADRESSES ###

## par défaut en s (1 h)
default-lease-time 3600;

## maximum (2 h)
max-lease-time 7200;


### Sécurité ###

## refus(deny)/autorise(allow) les clients inconnus (refuse client inconnu)
allow unknown-clients;

## Use this to send dhcp log messages to a different log file (you also
## have to hack syslog.conf to complete the redirection).
log-facility local7;


### PXE ###
## Permet le boot réseau pour TFTP 
allow bootp;
allow booting;


##### RESEAUX #####

## Déclaration sous réseau 192.168.2.*
subnet 192.168.2.0 netmask 255.255.255.0 {
  option domain-name "kankan";
  option broadcast-address 192.168.2.255;
  option routers 192.168.2.1;
          range 192.168.2.2 192.168.2.255;
  ping-check = 1;
  filename "pxelinux.0";
  next-server 192.168.2.1;
}

#### Configuration des hôtes avec IP fixée ####
host aelita {
  # adresse mac de la carte réseau !
  hardware ethernet 00:xx:xx:xx:xx;
  # adresse attribué
  fixed-address 192.168.2.2;
}

On configure également les interfaces sur lesquelles écouter dans le fichier /etc/dhcp3/dhcpd.conf :

##Interfaces d'écoute...
INTERFACES="eth0"

Après cela, on redémarre le service réseau et le serveur DHCP pour qu’ils prennent e charge la nouvelle configuration :

sudo /etc/init.d/networking restart
sudo /etc/init.d/dhcp3-server restart

Attention : si une erreur apparait à ce stade-là au démarrage du serveur DHCP, cela peut-être dû aussi bien à sa configuration qu’à la configuration de l’interface réseau.

Étape suivante, autoriser le routage entre les deux interfaces (en root) :

echo 1 >/proc/sys/net/ipv4/ip_forward

Attention, cette commande échoue si l’on utilise sudo ! Passez en root avec la commande sudo -s pour l’exécuter.

Ensuite, pour partager la connexion internet, on doit faire du NAT avec iptables (en root) :

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Il faut remplacer wlan0 par l’interface à laquelle le PC est connecté à internet.

Et voilà, à présent, le PC portable peut utiliser la connexion internet du PC fixe.

Adresses utiles

http://doc.ubuntu-fr.org/dhcp3-server http://doc.ubuntu-fr.org/partage_de_connexion_internet\ http://www.games-creators.org/wiki/Adresse_IP\ http://formation-debian.via.ecp.fr/apn.html