Mini HOW-TO: Linux et l' internet sur reseau cable

V1.0 Ghislain BALLESTER gba@cybercable.tm.fr


Sommaire:

  • - Preambule
  • - I) Configuration
  • - II) Preparation du kernel
  • - III) Installation du demon DHCP
  • - IV) Creation des scripts de lancement et d' arret
  • - V) Fichiers de configuration reseau
  • - VI) Test de la configuration
  • - VII) Conclusion

    Preambule:

    Ce petit document a pour objectif d' expliquer comment proceder pour raccorder un PC fonctionnant avec LINUX sur un reseau cable, type Lyonnaise Cable.
    Il permet d' avoir un appercu rapide de la procedure a adopter. Quelques corrections mineures ont ete apportees au document, suite a des remarques diverses, des uns et des autres.

    I) Configuration.

    La configuration proposee par les cabloperateurs est la suivante:

    Dans le cas d' une addresse IP statique la procedure de raccordement est identique a tout raccordement de machine sur un reseau ethernet, ce cas n' est pas detaille ici car il est de loin plus facile, et largement detaille dans tout un tas de bouquins et de HOWTOS.

    II) Preparation du kernel.

    Il faut tout d' abord commencer par connaitre le type de carte ethernet installee dans le PC. Le mieux est de se poser la question lors de l'installation du materiel par les techniciens du reseau cable.

    Lorsque la carte a ete identifiee, il faut recompiler le kernel, avec le support de la carte. (NE2000, 3COM .....). Toute cette phase est clairement detaillee dans le KERNEL-HOWTO, s' y referer si besoin est.

    Dans mon cas (RED HAT 4.2), j' ai procede comme suit:

          1) cd /usr/src/linux
          2) make menuconfig puis choix de l' option carte ethernet NE2000.
          3) make clean
          4) make dep
          5) make zImage
          6) cp /usr/src/linux/arch/i386/boot/zImage /boot/vmlinuz
          7) /sbin/lilo
      
          puis dans le cas de modules inclus (a partir du kernel2.0.X.X)
          8) rm -R /lib/modules/old
          9) mv /lib/modules/2.0.xx /lib/modules/old
          10) make modules
          11) make modules_install
          12) depmod -a
      

      A partir de ce moment apres un reboot la carte ethernet doit etre vue lors de la phase d'initialisation. Rappel: les messages qui apparaissent durant cette phase peuvent etre vus a tout moment par la commande dmesg. Dans mon cas il y a:

           .
           .
           .
           ne.c: PCI BIOS reports ne2000 clone at i/o 0x6000, irq 11.
           ne.c:v1.10 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)
           NE*000 ethercard probe at 0x6000: 00 20 18 2a 4b 3e
           eth0: NE2000 found at 0x6000, using IRQ 11.
           .
           .
           .
      

      Noter que l' on peut ainsi connaitre l' adresse MAC de sa carte (implantee par le constructeur) ici: 00 20 18 2a 4b 3e

      III) Installation du demon DHCP.

      Lors d' une connection dynamique le reseau utilise un protocole, qui permet de dire, d'une maniere imagee:

           "HE HO, JE SUIS LA, DONNE MOI UNE ADDRESSE IP"
           le reseau repond alors
           "OK BIEN COMPRIS TON ADDRESSE EST LA SUIVANTE: xxx.xxx.xxx.xxx"
      

      Ce protocole est le DHCP (dynamic host control protocol) toutes les infos relatives a ce protocole peuvent etre consultees a l' addresse suivante: http://www.isc.org/dhcp.html

      Il existe un demon dhcp a l' addresse precitee, mais qui necessite pas mal de configuration, ainsi qu' un autre sur le sunsite: ( ftp://sunsite.unc.edu/pub/linux/system/network/daemon/dhcpcd-0.6 ) qui est autoconfigurable (ou presque). Je detaillerai donc ce dernier puisque c' est celui que j' utilise.

      Apres l' avoir recupere par ftp, et placer sous sa home directory, il suffit de le decompresser, et de le detarer: gzip -d dhcpcd-0.6.tar.gz
      suivi de tar -xvf dhcpcd-0.6.tar

      Des lors il suffit de lancer le script d'auto config, puis la compile: configure, puis make.

      Si tout s' est bien passe, on peut alors l' installer en passant root, et en tapant make install. A partir de ce moment le demon est installe et pret a etre utilise.

      IV) Creation des scripts de lancement et d' arret.

      Plutot que de tout lancer manuellement a chaque fois, il est plus cool de tout automatiser lors de l' initialisation du terminal, ainsi que d' arreter le daemon sur un shutdown.

      J' ai donc ecrit deux petits shells scripts dhcp-on et dhcp-off que voici:

      dhcp-on:

      >------------------------------ COUPER ICI -----------------------------------------<

      #!/bin/sh

      # Demarrage du reseau en utilisant l' addresse IP # dynamique fournie par le serveur.

      # Suppression de l' ancienne valeur IP
      if [ -f /var/run/dhcpcd-cache.eth0 ]; then

      rm -rf /var/run/dhcpcd-cache.eth0
      fi

      # Suppression de l' ancien fichier de config if [ -f /etc/dhcpc/hostinfo-eth0 ]; then

      rm -rf /etc/dhcpc/hostinfo-eth0
      fi

      # Suppression de l' ancien fichier de PID if [ -f /var/run/dhcpcd-eth0.pid ]; then

      rm -rf /var/run/dhcpcd-eth0.pid
      fi

      # Demarrage du demon
      dhcpcd
      echo 'Demarrage du reseau TV CABLE :)'

      >------------------------------ COUPER ICI -----------------------------------------<

      dhcp-off:

      >------------------------------ COUPER ICI -----------------------------------------<

      #!/bin/sh

      PID=`cat /var/run/dhcpcd-eth0.pid`
      kill $PID
      echo "arret du reseau TV CABLE :("

      >------------------------ COUPER ICI-----------------------------------------<

      L' appel de ces deux scripts est ajoute dans mon fichier /etc/rc.d/init.d/inet:

             .
             .
             .
             .
        case "$1" in
             start)
                  echo -n "Starting INET services: "
                  daemon inetd
      
                  echo
                  touch /var/lock/subsys/inet
                  echo -n "Starting DHCP daemon: dhcpcd..."
                  dhcp-on
                  ;;
             stop)
                  # bringing down NFS filesystems isn't inet's problem I don't know 
                  # why this script used to do that -- ewt
      
                  echo -n "Stopping INET services: "
                  killproc inetd
      
                  echo
                  rm -f /var/lock/subsys/inet
      
                  echo -n "Stopping DHCP daemon: dhcpcd..."
                  dhcp-off
                  ;;   
              .
              .
              .
              .
      

      Des lors tout demarrage et arret de la machine doit automatiquement demarrer, ou arreter le demon.

      Il ne faut pas non plus oublier de configurer les fichiers reseau:

      V) Fichiers de configuration reseau.

      Tout d' abord le fichier contenant les addresses de serveur de resolution des noms DNS:
      /etc/resolv.conf:
      domain cybercable.tm.fr
      nameserver 195.132.0.132
      nameserver 195.132.0.193

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

      puis le fichier /etc/hosts
      127.0.0.1 localhost

      VII) Test de la configuration.

      Il ne reste plus qu' a rebooter la machine et a se logger. Si tout s'est bien passe la commande netstat -r devrait afficher un message identique a celui-ci:

      Kernel IP routing table

      Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
      195.132.11.0    *               255.255.255.0   U      1500 0          0 eth0
      127.0.0.0       *               255.0.0.0       U      3584 0          0 lo
      default         gate-r11.cyberc 0.0.0.0         G      1500 0          0 eth0
      

      Si c'est le cas c'est que ca marche, tout devrait alors fonctionner: ftp, telnet, WEB .... :)

      VII) Conclusion.

      J'espere que ce document permet de repondre aux attentes des utilisateurs soucieux d'utiliser leur OS prefere. Ce document n' est qu' un debut, j' attend vos remarques et vos commentaires.

      Ghislain BALLESTER
      gba@cybercable.tm.fr