Page suivante Page précédente Table des matières

2. Ethernet et TCP/IP entre zorg et sakapuss

Nous avons choisit le premier réseau IP de classe C dédié par les RFC aux réseaux locaux hors Internet , c'est à dire 192.168.0.0. L'adresse IP 192.168.0.1 fut réservée à Sakapuss et l'adresse 192.168.0.2 à zorg.

2.1 Configuration de sakapuss (ma machine Linux)

Il faut tout d'abord s'assurer que Linux reconnait bien la carte réseau. Voici ce que me donne, entre autres chose, un cat /proc/pci


PCI devices found:
  Bus  0, device  11, function  0:
    Ethernet controller: Realtek 8029 (rev 0).
      Medium devsel.  IRQ 10.  
      I/O at 0x6400.

La lecture de l'Ethernet-HOWTO m'apprend alors que les cartes NE2000 à base de Realtek sont supportées : «Various clone manufacturers have started making PCI ne2000 clones based on the RealTek 8029 chip. These cards are also supported by the linux ne2000 driver for v2.0 kernels. However you only benefit from the faster bus interface, as the card is still using the age-old ne2000 driver interface». Le pilote des NE2000 PCI est le même que celui des NE2000 ISA. J'ai recompilé alors mon noyau Linux avec le pilote NE2000, qui a reconnu la carte comme prévu.

Nous avons décider de nous amuser à donner un nom à notre réseau IP local : intel.outside. Pour rendre la chose encore plus amusante, j'ai aussi décidé de faire tourner un serveur de nom gérant le domaine intel.outside. Au fait, je ne l'ai pas précisé mais sakapuss est un Cyrix 6x86 et zorg un AMD K6, d'où le nom de notre domaine.

Le fichier /etc/hosts est réduit à sa plus simple expression (ce fichier n'a pas beaucoup d'intérêt lorsque l'on bénéficie des services d'un DNS) :


 127.0.0.1        localhost       localhost.localdomain
 192.168.0.1      sakapuss        sakapuss.intel.outside

Au passage, merci à Thierry Boudet pour ses corrections :-). Idem pour les fichiers de configuration du résolveur /etc/resolv.conf:
 search intel.outside 
 nameserver 192.168.0.1

et /etc/host.conf :
 order hosts,bind
 multi on

Le fichier /etc/hosts pourrait très bien être vide mais il vaut mieux avoir un minimum comme ici.

Quand au fichier /etc/networks (il est accessoire), il se résume à :


 localdomain     127.0.0.0
 intel.outside   192.168.0.0

Voici ce que donne la commande ifconfig


 lo        Link encap:Local Loopback  
           inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0
           UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1
           RX packets:43427 errors:0 dropped:0 overruns:0
           TX packets:43427 errors:0 dropped:0 overruns:0

 eth0      Link encap:10Mbps Ethernet  HWaddr 00:00:E8:DC:0A:A7
           inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:47323 errors:0 dropped:0 overruns:0
           TX packets:51181 errors:0 dropped:0 overruns:0
           Interrupt:10 Base address:0x6400 

Voici enfin la table de routage obtenue par la commande route
 Kernel IP routing table
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
 intel.outside   *               255.255.255.0   U     0      0       63 eth0
 localdomain     *               255.0.0.0       U     0      0      109 lo

Grâce au fichier /etc/networks, la colonne destinations contient le noms des réseaux en lieu et place de leurs adresses IP.

Sur la RedHat 4.2, la configuration des interfaces réseau et des tables de routage peut être faite graphiquement par le control-panel ou manuellement en modifiant les fichiers se trouvant dans /etc/sysconfig/. Ces fichiers sont interprétés lors du boot par le script /etc/rc.d/init.d/network responsable de la configuration du réseau. Il est possible mais déconseillé de passer outre en exécutant des ifconfig et route dans /etc/rc.d/rc.local.

Faire tourner un petit serveur de noms est tout compte fait une chose très très simple. Il suffit d'installer le paquetage BIND, disponible sous toutes les distributions Linux (et Unix en général). BIND comporte entre autres choses un daemon nommé named, chargé d'assurer le service DNS en écoutant les ports standard TCP/UDP 53. En général, named lit au moment de son lancement sa configuration dans le fichier /etc/named.boot. En voici le contenu sur Sakapuss


 directory                               /etc/named.d
 cache           .                       root.cache
 primary         0.0.127.in-addr.arpa    zone/127.0.0
 primary         0.168.192.in-addr.arpa  zone/192.168.0
 primary         intel.outside           zone/intel.outside

Qui peut s'interpréter de la façon suivante : le répertoire des données DNS est /etc/named.d/, le fichier contenant les adresses des serveurs primaires est /etc/named.d/root.cache, notre DNS est primaire pour le domaine intel.outside et les réseaux 127.0.0.0 et 192.168.0.0, leur fichiers de zone étants respectivement dans les fichiers /etc/named.d/zone/intel.outside, /etc/named.d/zone/127.0.0.0 et /etc/named.d/zone/192.168.0.0.

Ce fichier /etc/named.boot devra être modifié lorsque l'on fera de l'IP-masquerading. Des directives «forwarders» apparaîtront alors.

Le fichier /etc/named.d/root.cache contient normalement les adresses des DNS des «top domains». Mais pour un réseau local, on peut le laisser vide. Celà permet d'obtenir une réponse négative immédiate au requettes DNS portant sur une machine extérieure à notre réseau local. Il faudra cependant y revenir lors des connections PPP. On en reparlera de toute manière pour l'IP-masquerading.

Les fichiers de zone de sakapuss se trouvent dans les annexes /etc/named.d/zone/intel.outside, /etc/named.d/zone/127.0.0 et /etc/named.d/zone/192.168.0.

Remarque très importante : Dans tout les fichiers de configuration évoqués précédement, le séparateur de champs est la tabulation et pas l'espace. De plus, il n'y a pas d'espaces au début des lignes (très important pour les fichiers du serveur de nom).

2.2 Configuration de zorg (sa machine Windows 95)

Le pilote de la carte réseau pour Win95 était fourni sur disquette. Un petit problème de partage d'IRQ avec le port USB fut vite résolu. Il ne restait plus qu'à installer et configurer le pilote pour réseaux TCP/IP, ce qui se révéla très facile. Voici les paramètres saisis dans la boite de dialogue sur TCP/IP dans le module réseau du paneau de configuration :

Pour l'instant, le fait que sakapuss soit passerelle pour zorg n'a pas d'importance. C'est même totalement inutile. On verra qu'il en sera tout autrement lorsque l'on fera de l'IP-masquerading pour accéder à Internet à partir de zorg à travers le réseau local puis via le modem de sakapuss.

2.3 Les tests

Il nous faut à présent passer à la phase des tests. Tout d'abord des «ping 192.168.0.1» et «ping 192.168.0.2» sur sakapuss et sur zorg. Si ça marche, on peut remplacer les numéro IP par leur équivalents en toutes lettres pour tester par la même occasion le DNS. Le DNS peut être questionné sous sakapuss par le mode interactif de la commande nslookup. Malheurseusement, Microsoft ne fournit pas de programme équivalent en standard sous Windows 95.


Page suivante Page précédente Table des matières