Réseau local, LAN

Un article de Diablotins.org.


Image:brush.png

Sommaire

Synopsis

Vous disposez de plus d'une machine ou vous avez dans l'idée de récupérer d'anciennes machines pour en faire des diskless et vous souhaitez construire un réseau local(LAN).
Nous allons créer notre réseau sur la base 192.168.0./24, c'est à dire, un masque 255.255.255.0 sur la plage d'adresses de classe C, 192.168.0.0 à 192.168.0.255.
Nous allons appeler ce réseau «Toy.Dolls» en hommage au groupe de roquanrolle bien connu.Pour éviter d'encombrer le tuyau de requêtes DNS vers celui de FAI, nous allons aussi configurer un serveur DNS pour le réseau local.

Le serveur


Ce réseau sera composé d'un serveur principal qui comportera deux cartes réseaux,
- à 10€ la carte de base, n'hésitez pas -
une pour l'accès aux machines du réseau local, l'autre vers votre FAI.

Interfaces

Définissez vos interfaces dans /etc/rc.conf

Hostname="serveur.Toy.Dolls"
ifconfig_fxp0="DHCP"    Interface du réseau FAI, par DHCP le cas échéant
ifconfig_rl0="192.168.0.1 netmask 255.255.255.0" Interface du réseau local

Les machines

Si vous ne voulez pas vous lancer dans la configuration d'un serveur DHCP, associez chaque machine Ă  une IP dans le fichier /etc/hosts.

192.168.0.10   florence.Toy.Dolls florence 
192.168.0.11   Nelly.Toy.Dolls Nelly
192.168.0.12   Deidre.Toy.Dolls Deidre
192.168.0.13   YulBrunner.Toy.Dolls YulBrunner

Routage

Définissez le serveur en tant que routeur dans /etc/rc.conf:

gateway_enable="YES"

Configuez ensuite votre Pare-feu pour qu'il effectue la translation d'adresse entre les deux interfaces.

DNS

FreeBSD est livré avec Bind pour fournir les services DNS.
Déclarez le dans /etc/rc.conf

named_enable="YES"
named_chrootdir="/var/named"

Construisez les bases de Bind:

cp -r /etc/namedb /var/named/etc
cp -r /etc/mtree /var/named/mtree

Editez /var/named/etc/namedb/named.conf et à la suite du commentaire «/// Forward Only»

 forwarders {
               D.N.S.1; D.N.S.2;
       };

OĂą D.N.S.1 et D.N.S.2 sont les adresses des DNS de votre FAI. Construisez la base:

cd /var/named/etc/namedb/
./make-localhost

Les Clients

DNS


Chaque Client devra interroger la base DNS du serveur, dans /etc/resolv.conf:

nameserver 192.168.0.1

Le serveur est aussi son propre client DNS, c'est aussi valable pour lui.

Interface


Si vous n'utilisez pas DHCP, copiez les fichiers /etc/hosts du serveur dans chaque client et définissez leur adresse IP dans /etc/rc.conf:

#Deidre
hostname="Nelly.Toy.Dolls"
ifconfig_rl0="inet 192.168.0.11 netmask 255.255.255.0"
defaultrouter="192.168.0.1"

Si vous utilisez DHCP, la configuration se résume à:

ifconfig_rl0="DHCP"

DHCP et resolution de nom

Si une ou plusieurs interfaces sont clientes DHCP, vous aurez quelques soucis pour définir la résolution de nom.
En effet, le script DHCP va écraser /etc/resolv.conf, qui définit la manière dont la résolution de nom va s'effectuer. Plusieurs solutions s'offrent à vous

Crochet du gauche

Vous allez tout simplement annuler l'écriture d'un nouveau “resolv.conf“.
Pour cela, écrivez un script qui va crocheter ( hook ) les fonctions du script client DHCP,
soit par défaut “/sbin/dhclient-script“.

touch /etc/dhclient-enter-hooks

Redéfinissez la fonction parasite:

add_new_resolv_conf() {
 echo "we are the knights who say NI"
}

Configuration cliente

Vous allez suggérer au client quelques paramètres.
Tout ceci se réalise dans “/etc/dhclient.conf” Supposons que vous donnez la préférence à votre serveur de nom local,
utilisez la fonction ”prepend”:

        interface "rl0" {
              send host-name "david.dmarec.homeunix.net";
              prepend domain-name-servers 127.0.0.1;
              request subnet-mask, broadcast-address, time-offset, routers,
                      domain-name, domain-name-servers, host-name;
              require subnet-mask, domain-name-servers;
              script "/sbin/dhclient-script";
           }

Vous obtiendrez dans “resolv.conf”

nameserver 127.0.0.1
nameserver le.dns.du.dhcp

Uppercut

Puisque vous utilisez la mĂ©thode qui conserve “resolv.conf”, pourquoi demander une adresse pour le serveur DNS ?
Supprimez l'option ”domain-name-servers”:

        interface "rl0" {
              request subnet-mask, broadcast-address, time-offset, routers,
                      domain-name,  host-name;
              require subnet-mask;
              script "/sbin/dhclient-script";
           }

Contrôler les accès

FreeBSD propose existe plusieurs pare-feux dans son monde.

Consultez les documentations de IPFilter ou Packet Filter présentes sur ce site.

En savoir plus

Projets :
Boîte à outils