6. Informations spécifiques sur les technologies réseau.

Contenu de cette section

Les sous-chapitres suivants traitent de technologies réseau particulières. Les informations mentionnées ne s'appliquent pas nécessairement aux autres types.

6.1 ARCNet

Les noms de fichier périphériques de ARCNET sont `arc0s', `arc1e', `arc2e' etc, ou bien `arc0s', `arc1s', `arc2s', etc. La première carte détectée par le noyau devient `arc0e' ou `arc0s' et les autres sont nommées en suivant dans l'ordre de leur détection. La lettre finale dépend de votre choix: soit un format d'encapsulation de paquets Ethernet, soit un format de paquets suivant RFC1051.

Options de compilation du noyau:

Network device support  --->
    [*] Network device support
    <*> ARCnet support
    [ ]   Enable arc0e (ARCnet "Ether-Encap" packet format)
    [ ]   Enable arc0s (ARCnet RFC1051 packet format)

Si vous avez construit convenablement votre noyau pour supporter votre carte Ethernet, alors la configuration de la carte est facile.

Typiquement vous devriez utiliser quelque chose comme ceci:

# ifconfig arc0e 192.168.0.1 netmask 255.255.255.0 up
# route add -net 192.168.0.0 netmask 255.255.255.0 arc0e
Merci de vous référer aux documents /usr/src/linux/Documentation/networking/arcnet.txt et /usr/src/linux/Documentation/networking/arcnet-harware.txt pour d'autres informations.

Le support ARCNet fut développé par Avery Pennarun, apenwarr@foxnet.net.

6.2 Appletalk (AF_APPLETALK)

Le support Appletalk ne possède pas de noms de périphériques spécifiques car il utilise les périphériques réseau existants.

Options de compilation noyau:

Networking options  --->
    <*> Appletalk DDP
Le support Appletalk permet à votre machine Linux de dialoguer avec les réseaux Apple. Son utilisation principale est de pouvoir partager des ressources, comme les imprimantes et les disques, entre vos ordinateurs Linux et Apple. Un logiciel supplémentaire est requis, il s'appelle netatalk. Wesley Craig netatalk@umich.edu représente une équipe appelée le `Research Systems Unix Group' à l'université du Michigan. Celle-ci a élaboré le paquetage netatalk, qui fournit un logiciel implémentant la pile protocole Appletalk et quelques utilitaires. Soit ce paquetage netatalk vous a été fourni avec votre distribution Linux, soit vous pouvez le récupérer par ftp depuis le site University of Michigan

Pour construire et installer le paquetage, vous faites:

# cd /usr/src
# tar xvfz .../netatalk-1.4b2.tar.Z
- Vous pouvez editer le fichier `Makefile' a ce stade, plus 
precisement pour changer la valeur de la variable
 DESTDIR qui definit l'endroit ou les fichiers seront 
installes plus tard.
 Le repertoire par defaut,/usr/local/atalk, semble
 tres raisonnable.
# make
- puis, en temps que root:
# make install

Configurer le support Appletalk.

La première chose à faire pour que tout fonctionne est de s'assuere que les entrées adéquates sont présentes dans le fichier /etc/services. Ces entrées sont:

rtmp    1/ddp   # Routing Table Maintenance Protocol
nbp     2/ddp   # Name Binding Protocol
echo    4/ddp   # AppleTalk Echo Protocol
zip     6/ddp   # Zone Information Protocol

L'étape suivante consiste à créer les fichiers de configuration appletalk dans le répertoire /usr/local/atalk/etc (ou bien à l'endroit où vous avez installé le paquetage).

Le premier fichier à créer est /usr/local/atalk/etc/atalkd.conf. Initialement ce fichier ne nécessite qu'une ligne qui indique le périphérique supportant le réseau sur lequel sont vos machines Apple:

eth0

Le programme démon Appletalk ajoutera d'autres détails quand il tournera.

Exporter un système de fichiers Linux avec Appletalk.

Vous pouvez exporter des systèmes fichiers depuis votre machine Linux vers le réseau en sorte qu'une machine Apple puisse les partager.

Pour cela vous devez configurer le fichier /usr/local/atalk/etc/AppleVolumes.system. Il y a une autre fichier de configuration appelé /usr/local/atalk/etc/AppleVolumes.default qui a exactement le même format et qui décrit quels systèmes de fichiers les utilisateurs connectés pourront recevoir avec des privilèges d'invités.

Tous les détails,qui vous diront comment configurer ces fichiers et avec quelles options, peuvent être trouvés dans la page de manuel de afpd.

Un simple exemple:

/tmp Scratch
/home/ftp/pub "Public Area"

Ce qui exportera votre système de fichiers /tmp comme volume AppleShare `Scratch' et votre répertoire public ftp comme volume AppleShare `Public Area'. Les noms de volume ne sont pas obligatoires, le programme démon choisissant pour vous, mais ça ne coûte rien de les spécifier quand même.

Partager votre imprimante Linux avec Appletalk.

Partager votre imprimante Linux avec vos machines Apple est très simple. Vous devez faire tourner le programme papd qui est le démon protocole d'accès aux imprimantes de Appletalk. Lorsque vous faites tourner ce programme il acceptera les requêtes émanant de vos machines Apple et spoulera le travail d'impression vers votre démon local d'impression.

Vous devrez éditer le fichier /usr/local/atalk/etc/papd.conf pour configurer le démon. La syntaxe de ce fichier est la même que le fichier habituel /etc/printcap. Le nom que vous donnez à la définition de l'imprimante doit être conforme au protocole de désignation Appletalk, NBP.

Un exemple de configuration ressemble à ceci:

TricWriter:\
   :pr=lp:op=cg:

Ce qui fera une imprimante nommée `TricWriter' disponible pour le réseau Appletalk et tous les travaux acceptés seront imprimés sur l'imprimante linux `lp' (telle que définie dans le fichier /etc/printcap) utilisant lpd. L'entrée `op=cg' indique que l'utilisateur linux `cg' est l'opérateur de l'imprimante.

Démarrer Appletalk.

Bon, vous devriez être prêts pour essayer cette configuration de base. Le fichier rc.atalk fourni avec le paquetage netatalk devrait vous convenir, alors vous faites ceci:

# /usr/local/atalk/etc/rc.atalk

et tout devrait démarrer et tourner sans problémes. Vous ne devriez voir aucun message d'erreurs et le programme devrait vous envoyer des messages sur la console indiquant chaque étape qui démarre.

Tester Appletalk.

Pour tester si le programme fonctionne correctement, allez sur une des machines Apple, faites dérouler le menu Pomme, cliquez sur AppleShare, et votre boîte Linux devrait apparaitre.

Mises en garde sur Appletalk.

Autres informations

Pour en savoir plus sur la configuration de Appletalk pour Linux, référez vous à la page de Anders Brownworth Linux Netatalk-HOWTO sur thehamptons.com .

6.3 ATM

Werner Almesberger <werner.almesberger@lrc.di.epfl.ch> dirige un projet en vue de fournir un support Mode de Transfert Asynchrone (Asynchronous Transfer Mode) pour Linux. Les informations sur l'état du projet se trouvent sur: lrcwww.epfl.ch .

6.4 AX25 (AF_AX25)

Les noms de périphériques AX.25 sont `sl0', `sl1', etc. dans les noyaux 2.0.* ou `ax0', `ax1', etc. dans les noyaux 2.1.*.

Options de compilation du noyau:

Networking options  --->
    [*] Amateur Radio AX.25 Level 2
Les protocoles AX25, Netrom et Rose sont couverts par le document AX25-HOWTO . Ces protocoles sont utilisés par les radio-amateurs du monde entier pour l'expérimentation packet-radio.

La plupart du travail d'implémentation de ces protocoles a été réalisé par Jonathon Naylor, jsn@cs.nott.ac.uk.

6.5 DECNet

Le support pour DECNet est en cours d'élaboration. Vous devriez le voir apparaitre dans l'un des prochains noyaux 2.1.*.

6.6 EQL - égaliseur de charge à lignes multiples

Le nom du périphérique EQL est `eql'. Avec les sources standards du noyau vous ne pouvez avoir qu'un seul périphérique EQL par machine. EQL permet d'utiliser plusieurs lignes point à point telles que PPP, SLIP ou PLIP comme si c'était un seul lien logique de transport tcp/ip. C'est souvent moins cher d'utiliser plusieurs lignes à faible débit que d'avoir une ligne à haut débit.

Options de compilation du noyau:

Network device support --->
    [*] Network device support
    <*> EQL (serial line load balancing) support

Pour supporter ce mécanisme la machine à l'autre bout de la ligne doit également supporter EQL. Linux, Livingstone Portmasters et de nouveaux serveurs de ligne supportent des systèmes compatibles.

Pour configurer EQL vous avez besoin des outils eql, disponibles sur: sunsite.unc.edu .

La configuration est plutôt directe. Vous commencez par configurer l'interface eql. C'est exactement comme un autre périphérique réseau. Vous configurez l'adresse IP et le mtu en utilissant l'outil ifconfig , comme ceci:

ifconfig eql 192.168.10.1 mtu 1006

Ensuite vous devez initialiser manuellement chacune des lignes que vous allez utiliser. Ce peut être toute combinaison de périphériques réseau point à point. La façon d'initialiser les connexions dépend du type de lien, voyez les paragraphes appropriés pour d'autres informations.

Enfin vous devez associer le lien série et le dispositif EQL, cela s'appelle `mise en esclavage' (enslaving) et est réalisé avec la commande eql_enslave comme suit:

eql_enslave eql sl0 28800
eql_enslave eql ppp0 14400
Le paramètre `estimated speed' que vous fournissez à eql_enslave ne fait rien directement. Il est utilisé par le pilote EQL pour déterminer comment les datagrammes vont se répartir sur ce périphérique, aussi vous pouvez régler l'équilibrage des lignes en jouant avec cette valeur.

Pour libérer une ligne d'un périphérique EQL vous utilisez la commande eql_emancipate comme ci-dessous:

eql_emancipate eql sl0

Vous ajoutez le routage comme vous le feriez pour tout lien point à point; sauf que vos routes doivent se rapporter au dispositif eql plutôt qu'aux périphériques séries eux-mêmes. Typiquement vous devriez utiliser:

route add default eql

Le pilote EQL fut développé par Simon Janes, simon@ncm.com.

6.7 Ethernet

Les noms de périphériques Ethernet sont `eth0', `eth1', `eth2' etc. La première carte détectée par le noyau devient `eth0' et le reste est nommé dans l'ordre de détection.

Pour savoir comment faire marcher votre carte Ethernet sous Linux référez-vous au Ethernet-HOWTO .

Une fois que vous avez compilé convenablement votre noyau pour supporter les cartes Ethernet, la configuration des cartes est aisée.

Typiquement vous faites ainsi:

# ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
# route add -net 192.168.0.0 netmask 255.255.255.0 eth0

La plupart des pilotes Ethernet ont été développés par Donald Becker, becker@CESDIS.gsfc.nasa.gov.

6.8 FDDI (Fiber Distributed Data Interface)

Les noms de périphériques FDDI sont `fddi0', `fddi1', `fddi2' etc. La première carte détectée par le noyau s'appelle `fddi0' et le reste est nommé dans l'ordre de détection.

Lawrence V. Stefani, larry_stefani@us.newbridge.com, a développé un pilote pour les cartes Digital Equipment Corporation FDDI EISA et PCI.

Options de compilation noyau:

Network device support  --->
    [*] FDDI driver support
    [*] Digital DEFEA and DEFPA adapter support

Lorsque vous avez construit votre noyau pour supporter le pilote FDDI et qu'il est installé, la configuration de l'interface FDDI est presque identique à celle d'une interface Ethernet. Vous devez spécifier le nom de l'interface FDDI appropriée dans les commandes ifconfig et route.

6.9 Relais de trame (Frame Relay)

Les noms de périphériques de `Frame Relay' sont `dlci00', `dlci01' etc pour les systèmes d'encapsulation DLCI et `sdla0', `sdla1' etc pour les FRAD(s) (Frame Relay Access Device).

Frame Relay est une nouvelle technologie réseau conçue pour s'adapter au trafic de transmission de données `par à coups' ou de nature intermittente. Vous vous connectez à un réseau Frame Relay en utilisant un dispositif d'accès Frame Relay (FRAD). Les supports Linux Frame Relay supportent IP par dessus Frame Relay comme décrit dans la RFC-1490.

Options de compilation noyau:

Network device support  --->
    <*> Frame relay DLCI support (EXPERIMENTAL)
    (24)   Max open DLCI
    (8)   Max DLCI per device
    <*>   SDLA (Sangoma S502/S508) support

Mike McLagan, mike.mclagan@linux.org, a développé le support Frame Relay et les outils de configuration.

A l'heure actuelle le seul FRAD supporté est Sangoma Technologies S502A, S502E et S508.

Pour configurer les systèmes FRAD et DLCI après avoir reconstruit votre noyau, vous aurez besoin des outils de configuration. Ils sont disponibles sur ftp.invlogic.com . Compiler et installer les outils est très facile, mais le manque de fichier Makefile au premier niveau oblige à le faire à la main:

# cd /usr/src
# tar xvfz .../frad-0.15.tgz
# cd frad-0.15
# for i in common dlci frad; make -C -$i clean; make -C $i; done
# mkdir /etc/frad
# install -m 644 -o root -g root bin/*.sfm /etc/frad
# install -m 700 -o root -g root frad/fradcfg /sbin
# install -m 700 -o root -g root dlci/dlcicfg /sbin

Après l'installation vous devez créer un fichier /etc/frad/router.conf Vous pouvez utiliser cet exemple, qui est une version modifiée de l'un des fichiers donné en exemple:

# /etc/frad/router.conf
# C'est un modele de configuration pour relais de trame.
# Tout y est inclus. Les valeurs par defaut sont basees sur le code
# fourni avec les pilotes DOS de la carte Sangoma S502A.
#
# Une ligne avec '#' est un commentaire
# Les blancs sont ignores (vous pouvez utiliser des tabulations aussi).
# Les sections [] inconnues et les entrees inconnues sont ignorees.
#

[Devices]
Count=1                 # number of devices to configure
Dev_1=sdla0             # the name of a device
#Dev_2=sdla1            # the name of a device

# Ce qui est specifie ici s'applique a tous les peripheriques, et peut etre 
# mis a jour pour chaque carte individuelle.
#
Access=CPE
Clock=Internal
KBaud=64
Flags=TX
#
# MTU=1500              # Maximum transmit IFrame length, default is 4096
# T391=10               # T391 value    5 - 30, default is 10
# T392=15               # T392 value    5 - 30, default is 15
# N391=6                # N391 value    1 - 255, default is 6
# N392=3                # N392 value    1 - 10, default is 3
# N393=4                # N393 value    1 - 10, default is 4

# On specifie ici les valeurs par defaut pour toutes les cartes
# CIRfwd=16             # CIR forward   1 - 64
# Bc_fwd=16             # Bc forward    1 - 512 
# Be_fwd=0              # Be forward    0 - 511
# CIRbak=16             # CIR backward  1 - 64
# Bc_bak=16             # Bc backward   1 - 512
# Be_bak=0              # Be backward   0 - 511


#
#
# Configurations specifiques
#
#

#
#  Sangoma S502E
#
[sdla0]
Type=Sangoma            # Type of the device to configure, currently only 
                        # SANGOMA is recognised
#
# Specifique des types 'Sangoma'
#
# cartes S502A, S502E, S508
Board=S502E
#
# Le nom du logiciel de carte en essai pour Sangoma
# Testware=/usr/src/frad-0.10/bin/sdla_tst.502
#
# Le nom du logiciel de carte FR 
# Firmware=/usr/src/frad-0.10/bin/frm_rel.502
#
Port=360                # Port for this particular card
Mem=C8                  # Address of memory window, A0-EE, depending on card
IRQ=5                   # IRQ number, do not supply for S502A
DLCIs=1                 # Number of DLCI's attached to this device
DLCI_1=16               # DLCI #1's number, 16 - 991
# DLCI_2=17
# DLCI_3=18
# DLCI_4=19
# DLCI_5=20
#
# Ce qui est specifie ici s'applique au peripherique seulement, 
# et remplace les valeurs par defaut
#
# Access=CPE            # CPE or NODE, default is CPE 
# Flags=TXIgnore,RXIgnore,BufferFrames,DropAborted,Stats,MCI,AutoDLCI
# Clock=Internal        # External or Internal, default is Internal
# Baud=128              # Specified baud rate of attached CSU/DSU
# MTU=2048              # Maximum transmit IFrame length, default is 4096
# T391=10               # T391 value    5 - 30, default is 10
# T392=15               # T392 value    5 - 30, default is 15
# N391=6                # N391 value    1 - 255, default is 6
# N392=3                # N392 value    1 - 10, default is 3
# N393=4                # N393 value    1 - 10, default is 4

#
# Le second peripherique est une autre carte
#
# [sdla1]
# Type=FancyCard        # Type of the device to configure.
# Board=                # Type of Sangoma board
# Key=Value             # values specific to this type of device


#
# Parametres de configuration DLCI par defaut.
# Peuvent etre ecrases par des configurations specifiques
#
CIRfwd=64               # CIR forward   1 - 64
# Bc_fwd=16             # Bc forward    1 - 512 
# Be_fwd=0              # Be forward    0 - 511
# CIRbak=16             # CIR backward  1 - 64
# Bc_bak=16             # Bc backward   1 - 512
# Be_bak=0              # Be backward   0 - 511

#
# Configuration DLCI
# Optionnel. La convention d'appellation est
# [DLCI_D<devicenum>_<DLCI_Num>]
#

[DLCI_D1_16]
# IP=
# Net=
# Mask=
# Flags defined by Sangoma: TXIgnore,RXIgnore,BufferFrames
# DLCIFlags=TXIgnore,RXIgnore,BufferFrames
# CIRfwd=64
# Bc_fwd=512
# Be_fwd=0
# CIRbak=64
# Bc_bak=512
# Be_bak=0

[DLCI_D2_16]
# IP=
# Net=
# Mask=
# Flags defined by Sangoma: TXIgnore,RXIgnore,BufferFrames
# DLCIFlags=TXIgnore,RXIgnore,BufferFrames
# CIRfwd=16
# Bc_fwd=16
# Be_fwd=0
# CIRbak=16
# Bc_bak=16
# Be_bak=0

Lorsque vous avez construit votre fichier /etc/frad/router.conf la seule étape restante est de configurer les périphériques eux-mêmes. C'est un tout petit peu plus compliqué que la configuration normale d'un périphérique réseau; vous devez vous souvenir de monter le périphérique FRAD avant les périphériques d'encapsulation DLCI.

# Configure le materiel frad et les parametres DLCI 
/sbin/fradcfg /etc/frad/router.conf || exit 1
/sbin/dlcicfg file /etc/frad/router.conf
#
# Montage du dispositif FRAD
ifconfig sdla0 up
#
# Configure les interfaces d'encapsulation DLCI et le routage
ifconfig dlci00 192.168.10.1 pointopoint 192.168.10.2 up
route add -net 192.168.10.0 netmask 255.255.255.0 dlci00
#
ifconfig dlci01 192.168.11.1 pointopoint 192.168.11.2 up
route add -net 192.168.11.0 netmask 255.255.255.0 dlci00
#
route add default dev dlci00
#

6.10 Enregistrement IP (IP Accounting)

Les possibilités d'enregistrement IP du noyau Linux vous permettent de recueillir et d'analyser les données d'utilisation du réseau. Les données collectées comprennent le nombre de paquets et le nombre d'octets en cumul depuis la dernière remise à zéro. Vous avez à votre disposition une grande variété de règlages pour obtenir les données que vous désirez.

Options de compilation noyau:

Networking options  --->
    [*] IP: accounting

Après avoir compilé et installé le noyau vous devez utiliser la commande ipfwadm pour configurer l'enregistrement IP. Il y a différentes possibilités pour choisir les informations à enregistrer. J'ai pris un exemple simplifié qui pourrait vous être utile; lisez plutôt la page de manuel ipfwadm pour plus d'informations.

Scenario: Vous avez un réseau Ethernet qui est relié à l'Internet via une liaison PPP. Sur l'Ethernet vous avez une machine qui offre un grand nombre de services et vous voulez savoir quel trafic est engendré par le trafic telnet, rlogin, ftp et www.

Vous pouvez utiliser une commande qui ressemble à ceci:

#
# Donne les reglages d'enregistrement
ipfwadm -A -f
#
# Ajoute des reglages pour le segment Ethernet local
ipfwadm -A in -a -P tcp -D 44.136.8.96/29 20
ipfwadm -A out -a -P tcp -S 44.136.8.96/29 20
ipfwadm -A in -a -P tcp -D 44.136.8.96/29 23
ipfwadm -A out -a -P tcp -S 44.136.8.96/29 23
ipfwadm -A in -a -P tcp -D 44.136.8.96/29 80
ipfwadm -A out -a -P tcp -S 44.136.8.96/29 80
ipfwadm -A in -a -P tcp -D 44.136.8.96/29 513
ipfwadm -A out -a -P tcp -S 44.136.8.96/29 513
ipfwadm -A in -a -P tcp -D 44.136.8.96/29
ipfwadm -A out -a -P tcp -D 44.136.8.96/29
ipfwadm -A in -a -P udp -D 44.136.8.96/29
ipfwadm -A out -a -P udp  -D 44.136.8.96/29
ipfwadm -A in -a -P icmp -D 44.136.8.96/29
ipfwadm -A out -a -P icmp -D 44.136.8.96/29
#
# Reglages par defaut
ipfwadm -A in -a -P tcp -D 0/0 20
ipfwadm -A out -a -P tcp -S 0/0 20
ipfwadm -A in -a -P tcp -D 0/0 23
ipfwadm -A out -a -P tcp -S 0/0 23
ipfwadm -A in -a -P tcp -D 0/0 80
ipfwadm -A out -a -P tcp -S 0/0 80
ipfwadm -A in -a -P tcp -D 0/0 513
ipfwadm -A out -a -P tcp -S 0/0 513
ipfwadm -A in -a -P tcp -D 0/0
ipfwadm -A out -a -P tcp -D 0/0
ipfwadm -A in -a -P udp -D 0/0
ipfwadm -A out -a -P udp  -D 0/0
ipfwadm -A in -a -P icmp -D 0/0
ipfwadm -A out -a -P icmp -D 0/0
#
# Liste les reglages
ipfwadm -A -l -n
#
La dernière commande liste chacune des règles d'enregistrement et affiche le total.

Il est important de noter, lorsque l'on analyse les enregistrement IP, que les totaux sont incrémentés à chaque fois, donc pour connaitre les différences vous devez exécuter les opérations mathématiques nécessaires. Par exemple si je veux savoir combien de données ne venaient pas de ftp, telnet, rlogin ou www je dois soustraire les totaux individuels correspondant à chaque port.

# ipfwadm -A -l -n
IP accounting rules
 pkts bytes dir prot source               destination          ports
    0     0 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> 20
    0     0 out tcp  44.136.8.96/29       0.0.0.0/0            20 -> *
    0     0 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> 23
    0     0 out tcp  44.136.8.96/29       0.0.0.0/0            23 -> *
   10  1166 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> 80
   10   572 out tcp  44.136.8.96/29       0.0.0.0/0            80 -> *
  242  9777 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> 513
  220 18198 out tcp  44.136.8.96/29       0.0.0.0/0            513 -> *
  252 10943 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> *
  231 18831 out tcp  0.0.0.0/0            44.136.8.96/29       * -> *
    0     0 in  udp  0.0.0.0/0            44.136.8.96/29       * -> *
    0     0 out udp  0.0.0.0/0            44.136.8.96/29       * -> *
    0     0 in  icmp 0.0.0.0/0            44.136.8.96/29       *
    0     0 out icmp 0.0.0.0/0            44.136.8.96/29       *
    0     0 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> 20
    0     0 out tcp  0.0.0.0/0            0.0.0.0/0            20 -> *
    0     0 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> 23
    0     0 out tcp  0.0.0.0/0            0.0.0.0/0            23 -> *
   10  1166 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> 80
   10   572 out tcp  0.0.0.0/0            0.0.0.0/0            80 -> *
  243  9817 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> 513
  221 18259 out tcp  0.0.0.0/0            0.0.0.0/0            513 -> *
  253 10983 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> *
  231 18831 out tcp  0.0.0.0/0            0.0.0.0/0            * -> *
    0     0 in  udp  0.0.0.0/0            0.0.0.0/0            * -> *
    0     0 out udp  0.0.0.0/0            0.0.0.0/0            * -> *
    0     0 in  icmp 0.0.0.0/0            0.0.0.0/0            *
    0     0 out icmp 0.0.0.0/0            0.0.0.0/0            *
# 

6.11 IP Aliasing

Il y a des applications où être en mesure d'affecter plusieurs adresses IP à un seul périphérique réseau pourrait être utile. Certains fournisseurs d'accès à l'Internet utilise souvent cette possibilité pour fournir des offres www et ftp `à la carte' pour leurs clients.

Options de compilation du noyau:

Networking options  --->
    ....
    [*] Network aliasing
    ....
    <*> IP: aliasing support

Aprés avoir compilé et installé le noyau avec le support IP_Alias, la configuration est très simple. Les alias sont ajoutés aux périphériques réseau virtuels associés au périphérique réseau réel. Une simple convention de noms s'applique pour périphériques: <nom de périphérique>:<numéro de périphérique virtuel>, par ex. eth0:0, ppp0:10 etc.

Par exemple, supposons que vous ayez un réseau Ethernet avec simultanément deux sous-réseaux IP et que vous vouliez que votre machine ait un accès direct aux deux, vous pouvez faire quelque chose comme ceci:

#
# ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0 up
# route add -net 192.168.1.0 netmask 255.255.255.0 eth0:0
#
# ifconfig eth0:1 192.168.10.1 netmask 255.255.255.0 up
# route add -net 192.168.10.0 netmask 255.255.255.0 eth0:0
#

Pour supprimer un alias vous ajoutez simplement un `-' au bout de son nom et et vous faites aussi simplement que ça:

# ifconfig eth0:0- 0
Toutes les routes associées avec cet alias seront enlevées automatiquement.

6.12 IP Firewall

IP Firewall et les publications sur le Firewalling sont traités plus complètement dans le document Firewall-HOWTO . Le IP Firewalling vous permet de sécuriser votre machine contre les accès réseau non-autorisés en filtrant, ou acceptant, des datagrammes venant de, ou allant vers, des adresses IP de votre choix. Il y a différentes règles: le filtrage en entrée, le filtrage en sortie, et le filtrage en retransmission. Les règles en entrée s'appliquent aux datagrammes qui sont reçues par un dispositif réseau. Les règles en sortie s'appliquent aux datagrammes qui sont transmis par un dispositif réseau. Les règles en retransmission s'appliquent aux datagrammes qui ne sont pas pour cette machine, c'est à dire les datagrammes qui seront reroutés.

Options de compilation noyau:

Networking options  --->
    [*] Network firewalls
    ....
    [*] IP: forwarding/gatewaying
    ....
    [*] IP: firewalling
    [ ] IP: firewall packet logging

La configuration du IP firewall est réalisée en utilisant la commande ipfwadm. Comme mentionné plus haut, la sécurité n'est pas ma spécialité, aussi, bien que je vous présente un exemple utilsable par vous-même, faites des recherches et mettez au point vos propres règlages si la sécurité est importante pour vous.

Vraisemblablement l'utilisation la plus courante de l'IP firewall est lorsque vous utilisez votre machine Linux comme routeur et passerelle firewall et que vous voulez protéger votre réseau local contre les accès extérieurs non autorisés.

La configuration suivante est due à Arnt Gulbrandsen, <agulbra@troll.no>.

L'exemple décrit une configuration de firewall pour une machine Linux /firewall/routeur illustrée par ce diagramme:

-                                   -
 \                                  | 172.16.37.0
  \                                 |   /255.255.255.0
   \                 ---------      |
    |  172.16.174.30 | Linux |      |
NET =================|  f/w  |------|    ..37.19
    |    PPP         | router|      |  --------
   /                 ---------      |--| Mail |
  /                                 |  | /DNS |
 /                                  |  --------
-                                   -

Les commandes suivantes doivent être normalement placées dans un fichier rc de telle sorte qu'elles seront démarrées automatiquement à chaque redémarrage du système. Pour une sécurité maximum, elles devront être effectuées après la configuration des interfaces réseau, mais avant le montage de ces interfaces pour éviter que quelqu'un ne puisse se connecter pendant que la machine firewall reboute.

#!/bin/sh

# Flush the 'Forwarding' rules table
# Change the default policy to 'accept'
#
/sbin/ipfwadm -F -f
/sbin/ipfwadm -F -p accept
#
# .. and for 'Incoming'
#
/sbin/ipfwadm -I -f
/sbin/ipfwadm -I -p accept

# First off, seal off the PPP interface
# I'd love to use '-a deny' instead of '-a reject -y' but then it
# would be impossible to originate connections on that interface too.
# The -o causes all rejected datagrams to be logged. This trades
# disk space against knowledge of an attack of configuration error.
#
/sbin/ipfwadm -I -a reject -y -o -P tcp -S 0/0 -D 172.16.174.30

# Throw away certain kinds of obviously forged packets right away:
# Nothing should come from multicast/anycast/broadcast addresses
#
/sbin/ipfwadm -F -a deny -o -S 224.0/3 -D 172.16.37.0/24
#
# and nothing coming from the loopback network should ever be
# seen on a wire
#
/sbin/ipfwadm -F -a deny -o -S 127.0/8 -D 172.16.37.0/24

# accept incoming SMTP and DNS connections, but only
# to the the Mail/Name Server
#
/sbin/ipfwadm -F -a accept -P tcp -S 0/0 -D 172.16.37.19 25 53
#
# DNS uses UDP as well as TCP, so allow that too
# for questions to our name server
#
/sbin/ipfwadm -F -a accept -P udp -S 0/0 -D 172.16.37.19 53
#
# but not "answers" coming to dangerous ports like NFS and
# Larry McVoy's NFS extension.  If you run squid, add its port here.
#
/sbin/ipfwadm -F -a deny -o -P udp -S 0/0 53 \
        -D 172.16.37.0/24 2049 2050

# answers to other user ports are okay
#
/sbin/ipfwadm -F -a accept -P udp -S 0/0 53 \
        -D 172.16.37.0/24 53 1024:65535

# Reject incoming connections to identd
# We use 'reject' here so that the connecting host is told
# straight away not to bother continuing, otherwise we'd experience
# delays while ident timed out.
#
/sbin/ipfwadm -F -a reject -o -P tcp -S 0/0 -D 172.16.37.0/24 113

# Accept some common service connections from the 192.168.64 and
# 192.168.65 networks, they are friends that we trust.
#
/sbin/ipfwadm -F -a accept -P tcp -S 192.168.64.0/23 \
        -D 172.16.37.0/24 20:23

# accept and pass through anything originating inside
#
/sbin/ipfwadm -F -a accept -P tcp -S 172.16.37.0/24 -D 0/0

# deny most other incoming TCP connections, and log them
# (append 1:1023 if you have problems with ftp not working)
#
/sbin/ipfwadm -F -a deny -o -y -P tcp -S 0/0 -D 172.16.37.0/24

# ... for UDP too
#
/sbin/ipfwadm -F -a deny -o -P udp -S 0/0 -D 172.16.37.0/24

De bonnes configurations firewall sont dures à faire. Cet exemple peut être un bon point de départ pour vous. La page de manuel ipfwadm offre une aide pour savoir comment utiliser cet outil. Si vous voulez configurer un firewall, demandez autour de vous et recueillez des avis venant de sources de confiance et prenez contact avec quelqu'un qui est à l'extérieur pour tester votre configuration et en vérifier la fiabilité.

6.13 Encapsulation IPIP

Pourquoi vouloir encapsuler des paquets IP dans d'autres paquets IP? Cela semble bizarre si vous n'avez jamais vu d'applications auparavant. Il y a deux endroits où c'est utilisé: le Mobile-IP et l'IP-Multicast. C'est dans un environnement qui est peut-être le plus largement utilisé et qui est le moins connu: l'amateurisme-Radio.

Options de compilation du noyau:

Networking options  --->
    [*] TCP/IP Networking
    [*] IP: forwarding/gatewaying
    ....
    <*> IP tunelling

Les périphériques IP tunnel s'appellent `tunl0',`tunl1',etc..

"Mais pourquoi ?" D'accord. D'accord. Les règles de routage classiques spécifient qu'un réseau IP comprend une adresse IP et un masque de réseau. Ceci fournit un ensemble d'adresses contiguës qui peuvent toutes être routées par l'intermédiaire d'une seule entrée de routage. Cela marche, mais signifie que vous ne pouvez utiliser une seule adresse uniquement lorsque vous êtes connecté à un point du réseau auquelle elle appartient. Dans la plupart des cas, il n'y a pas de problèmes, mais si vous êtes en mouvement alors vous ne pouvez pas rester connecté au même endroit tout le temps. L'encapsulation IP/IP ( IP tunneling) vous permet de passer outre cette contrainte en permettant aux paquets destinés à votre adresse d'être enveloppés et redirigés vers une autre adresse. Si vous savez que vous allez opérer depuis un autre réseau IP pour quelques temps, vous pouvez régler une machine qui est chez vous pour accepter des paquets destinés à votre adresse IP et les rediriger vers l'adresse que vous allez utiliser provisoirement.

Une configuration de réseau avec tunneling.

Comme toujours, je pense qu'un schéma m'épargnera beaucoup de texte confus, aussi en voilà un:

 192.168.1.24                         192.168.2.24

     -                                    -
     |      ppp0 =           ppp0 =       |
     |  aaa.bbb.ccc.ddd  fff.ggg.hhh.iii  |
     |                                    |
     |   /-----\                 /-----\  |
     |   |     |        //       |     |  |
     |---|  A  |------//---------|  B  |  |
     |   |     |    //           |     |  |
     |   \-----/                 \-----/  |
     |                                    |
     -                                    -

Ce diagramme montre une autre raison possible d'utiliser l'encapsulation IPIP: le réseau privé virtuel. Cet exemple présuppose que vous ayez deux machines chacune avec une seule connexion Internet. Chaque hôte a une seule adresse IP. Derrière chacune de ces machines se trouve des réseaux privés locaux configurés avec des adresses IP réservées. Supposez que vous vouliez permettre à chacun des hôtes du groupe A de se connecter à n'importe quel hôte du groupe B, comme s'ils étaient vraiment connectés à l'Internet via un routage réseau. L'encapsulation IPIP vous permettra de le faire. A noter que l'encapsulation ne vous permettra pas de faire en sorte que chacun des hôtes des réseaux A et B puissent parler à n'importe qui sur l'Internet, vous aurez toujours besoin de choses comme IP masquerade pour pouvoir le faire. L'encapsulation est normalement accomplie par une machine fonctionnant comme routeur.

Le routeur Linux `A' sera configuré comme suit:

#
PATH=/sbin:/usr/sbin
#
# Ethernet configuration
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
route add -net 192.168.1.0 netmask 255.255.255.0 eth0
#
# ppp0 configuration (start ppp link, set default route)
pppd
route add default ppp0
#
# Tunnel device configuration
ifconfig tunl0 192.168.1.1 up
route add -net 192.168.2.0 netmask 255.255.255.0 gw fff.ggg.hhh.iii tunl0

Le routeur Linux `B' sera configuré comme suit:

#
PATH=/sbin:/usr/sbin
#
# Ethernet configuration
ifconfig eth0 192.168.2.1 netmask 255.255.255.0 up
route add -net 192.168.2.0 netmask 255.255.255.0 eth0
#
# ppp0 configuration (start ppp link, set default route)
pppd
route add default ppp0
#
# Tunnel device configuration
ifconfig tunl0 192.168.2.1 up
route add -net 192.168.1.0 netmask 255.255.255.0 gw aaa.bbb.ccc.ddd tunl0

La commande:

route add -net 192.168.1.0 netmask 255.255.255.0 gw aaa.bbb.ccc.ddd tunl0
dit: `Envoyer tous les datagrammes destinés à 192.168.1.0/24 dans un paquet d'encapsulation ayant pour adresses de destination aaa.bbb.ccc.ddd'.

Notez que les configurations sont inversées à l'autre bout. Le périphérique tunnel utilise `gw' dans la commande route comme destination du paquet IP où se trouve le datagramme qu'il doit router. Cette machine doit savoir comment `désencapsuler' les paquets IPIP, c'est à dire qu'elle doit aussi être configurée comme périphérique tunnel.

Une configuration d'hôte pour l'encapsulation IPIP.

Ce n'est pas tout un réseau que vous aurez à router. Vous pouvez par exemple ne router qu'une seule adresse IP. Dans ce cas vous devrez configurer le périphérique tunl sur la machine `distante' avec sa propre adresse IP et à l'extrémité A n'utiliser qu'une route hôte (avec Proxy Arp) plutôt qu'une route réseau via le périphérique tunnel. Refaisons et modifions notre configuration de manière appropriée. Maintenant nous avons seulement l'hôte `B' qui veut agir comme si il était à la fois connecté à l'Internet et également au réseau distant supporté par l'hôte `A':

 192.168.1/24

     -
     |      ppp0 =                ppp0 =
     |  aaa.bbb.ccc.ddd      fff.ggg.hhh.iii
     |
     |   /-----\                 /-----\
     |   |     |       //        |     |
     |---|  A  |------//---------|  B  |
     |   |     |     //          |     |
     |   \-----/                 \-----/
     |                      also: 192.168.1.12
     -

Le routeur Linux `A' sera configuré comme suit:

#
PATH=/sbin:/usr/sbin
#
# Ethernet configuration
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
route add -net 192.168.1.0 netmask 255.255.255.0 eth0
#
# ppp0 configuration (start ppp link, set default route)
pppd
route add default ppp0
#
# Tunnel device configuration
ifconfig tunl0 192.168.1.1 up
route add -host 192.168.1.12 gw fff.ggg.hhh.iii tunl0
#
# Proxy ARP for the remote host
arp -s 192.168.1.12 xx:xx:xx:xx:xx:xx pub

L'hôte Linux `B' sera configuré comme suit:

#
PATH=/sbin:/usr/sbin
#
# ppp0 configuration (start ppp link, set default route)
pppd
route add default ppp0
#
# Tunnel device configuration
ifconfig tunl0 192.168.1.12 up
route add -net 192.168.1.0 netmask 255.255.255.0 gw aaa.bbb.ccc.ddd tunl0

Ce type de configuration est vraiment typique d'une application IP-Mobile, où un simple hôte veut seulement se balader sur l'Internet et maintenir une adresse IP utilisable tout le temps. Référez-vous au paragraphe Mobile-IP pour avoir plus d'informations et savoir comment faire en pratique.

6.14 IPX (AF_IPX)

Le protocole IPX est la plupart du temps utilisé dans les environnements réseaux locaux Novell NetWare(tm). Linux offre un support pour ce protocole, et peut être configuré pour agir comme extrémité réseau, ou comme routeur pour les environnements réseaux IPX.

Options de compilation du noyau:

Networking options  --->
    [*] The IPX protocol
    [ ] Full internal IPX network

Le protocole IPX et le NCPFS sont traités en détail dans le document IPX-HOWTO .

6.15 IPv6

A peine pensez-vous avoir commencé à comprendre comment fonctionne le réseau IP, les règles ont changé! IPv6 est l'abbréviation de version 6 du `Protocole Internet' (version 6 de IP). Il fut développé initialement pour calmer les inquiétudes de la communauté Internet quant à la pénurie éventuelle d'adresses IP. Les adresses IPv6 ont 16 octets de long (128 bits). IPv6 inclut un certain nombre d'autres changements, la plupart du temps des simplifications, qui rendront les réseaux IPv6 plus facilement gérables que les réseaux IPv4.

Linux a déjà une implémentation IPv6 qui marche, mais pas encore complètement, dans la série des noyaux 2.1.*.

Si vous voulez essayer cette nouvelle génération de technologie Internet, ou si vous voulez un renseignement, lisez le document IPv6-FAQ qui se trouve sur www.terra.net .

6.16 ISDN

L'Integrated Services Digital Network (ISDN)(NdT: équivalent français RNIS: Réseau Numérique à Intégration de Services) est une série de normes donnant les spécifications d'un réseau de données numériques à usage général. Un `appel' ISDN crée un service synchrone de données point à point vers la destination. L'ISDN est généralement délivré sur une ligne à haut débit divisée en un certain nombre de canaux discrets.. Il y a deux types de canaux, les `canaux B' qui transportent effectivement les données utilisateurs, et un canal unique appelé `canal D' qui est utilisé pour envoyer les informations de contrôle pendant l'échange ISDN en vue d'établir des appels et autres fonctions. En Australie, par exemple, l'ISDN peut être fourni sur une liaison 2 Mps qui est divisée en 30 canaux B discrets de 64 kps et un canal D de 64 kps. N'importe quel nombre de canaux peuvent être utilisés en même temps et ceci dans toutes les combinaisons possibles. Vous pouvez par exemple établir 30 appels différents de 64 kps vers 30 destinations différentes, ou bien 15 appels de 128 kps chacun vers 15 destinations différentes (2 canaux utilisés par appel), ou seulement un petit nombre d'appels, le reste étant inactif. Un canal peut être utilisé pour des appels entrant ou sortant. Le but initial de ISDN était de permettre aux sociétés de Télécommunications de fournir un simple service de données pouvant délivrer soit le téléphone (avec une voix digitalisée) ou bien des services de données vers votre domicile ou votre bureau sans avoir à effectuer de changements pour obtenir une configuration spéciale.

Il y a plusieurs façons de connecter votre ordinateur à un service ISDN. L'une consiste à utiliser un dispositif appelé `Adaptateur de Terminal' qui se branche sur l'unité de terminal réseau que votre opérateur de télécommunications a installé au moment de l'obtention de votre service ISDN, et qui présente des interfaces séries. L'une de ces interfaces est utilisée pour entrer les commandes pour établir les appels et la configuration, et les autres sont reliées aux périphériques réseau qui utiliseront les circuits de données quand la connexion sera faite. Linux peut travailler avec ce type de configuration sans modifications, vous devez juste traiter le port de l'adaptateur de terminal comme vous traitez tout périphériques série. Une autre façon consiste en ce que le support ISDN du noyau vous permet d'installer une carte ISDN dans votre machine Linux et le logiciel Linux prend en charge les protocoles et fait les appels lui-même.

Options de compilation noyau:

ISDN subsystem  --->
        <*> ISDN support
        [ ] Support synchronous PPP
        [ ] Support audio via ISDN
        < > ICN 2B and 4B support
        < > PCBIT-D support
        < > Teles/NICCY1016PC/Creatix support

L'implémentation Linux de ISDN supporte différents types de cartes internes ISDN. Il y a celles enumérées dans les options de configuration noyau:

Certaines de ces cartes ont besoin de logiciels que l'on doit télécharger pour les rendre opérationnelles. Il y a un utilitaire séparé pour le faire.

Tous les détails pour configurer le support ISDN Linux se trouvent dans le répertoire /usr/src/linux/Documentation/isdn/ et un document FAQ dédié à isdn4linux est disponible sur www.lrz-muenchen.de . (Vous pouvez cliquer sur le drapeau anglais pour obtenir la version anglaise).

Note au sujet de PPP. L'ensemble des protocoles PPP peut travailler sur des lignes série synchrone ou asynchrone. Le démon PPP `pppd' couramment distribué pour Linux ne supporte que le mode asynchrone. Si vous désirez utiliser les protocoles PPP avec votre service ISDN vous aurez besoin d'une version spéciale. Les détails pour la trouver se trouvent dans la documentation mentionnée ci-dessus.

6.17 IP Masquerade

Beaucoup de gens ont une simple connexion par téléphone pour aller sur l'Internet. Presque tout le monde ne se voit offrir qu'une seule adresse IP par le founisseur d'accès avec ce type de configuration. Ceci est normalement suffisant pour permettre un accès complet au réseau. IP Masquerade est une astuce intelligente qui vous permet d'avoir plusieurs machines utilisant une seule adresse IP, en faisant croire aux autres hôtes qu'il n'y a que la machine supportant la connexion (NdT: d'où le terme masquerade=duperie, mascarade). Il y a qu'une seule mise en garde, qui est que la fonction `masquerade' ne travaille pratiquement que dans un seul sens: les hôtes sous `masquerade' peuvent appeler mais ne peuvent accepter ou recevoir des connexions réseau de la part d'hôtes éloignés. Cela signifie que certains services réseau comme talk ne peuvent fonctionner et que d'autres, comme ftp doivent être configurés pour fonctionner en mode passif (PASV). Heureusement la plupart des services réseau comme telnet, World Wide Web et irc fonctionnent correctement.

Options de compilation du noyau:

Code maturity level options  --->
    [*] Prompt for development and/or incomplete code/drivers
Networking options  --->
    [*] Network firewalls
    ....
    [*] TCP/IP networking
    [*] IP: forwarding/gatewaying
    ....
    [*] IP: masquerading (EXPERIMENTAL)

Normalement votre machine Linux supportant un lien SLIP ou PPP se comportera comme si elle était toute seule. De plus elle peut avoir un autre périphérique réseau configuré, par exemple une carte Ethernet, avec des adresses réseau réservée. Les hôtes utilisant `masquerade' seront ceux du second réseau. Chacun de ces hôtes aura l'adresse IP du port Ethernet réglée comme passerelle ou routeur par défaut.

Une configuration typique ressemble à ceci:

-                                   -
 \                                  | 192.168.1.0
  \                                 |   /255.255.255.0
   \                 ---------      |
    |                | Linux | .1.1 |
NET =================| masq  |------|
    |    PPP/slip    | router|      |  --------
   /                 ---------      |--| host |
  /                                 |  |      |
 /                                  |  --------
-                                   -

Les commandes adéquates pour cette configuration sont:

# Network route for Ethernet
route add -net 192.168.1.0 netmask 255.255.255.0 eth0
#
# Default route to the rest of the internet.
route add default ppp0
#
# Cause all hosts on the 192.168.1/24 network to be masqueraded.
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 

Vous pouvez obtenir plus d'informations sur IP Masquerade avec IP Masquerade Resource Page

6.18 IP Transparent Proxy

IP transparent proxy est un dispositif qui vous permet de rediriger des serveurs ou des services destinés à une autre machine vers les services de votre machine. Typiquement c'est utile lorsque vous avez une machine Linux routeur et qui fournit aussi un serveur proxy. Vous redirigerez toutes les connexions à ce service distant vers le serveur proxy local.

Options de compilation du noyau:

Code maturity level options  --->
        [*] Prompt for development and/or incomplete code/drivers
Networking options  --->
        [*] Network firewalls
        ....
        [*] TCP/IP networking
        ....
        [*] IP: firewalling
        ....
        [*] IP: transparent proxy support (EXPERIMENTAL)

La configuration du dispositif transparent proxy est réalisé en utilisant la commande ipfwadm.

Par exemple:

ipfwadm -I -a accept -D 0/0 80 -r 8080
Cet exemple fera en sorte que toutes les tentatives de connexion vers le port 80 (www), de n'importe quel hôte, seront redirigées vers le port 8080 de ce même hôte. Ceci peut être utilisé pour s'assurer que tout le trafic WWW venant de votre réseau est automatiquement dirigé vers un programme cache local.

6.19 IP Mobile

Le terme "mobilité IP" décrit la possibilité qu'un hôte a de transférer sa connexion réseau d'un point de l'Internet vers un autre sans changer d'adresse IP ou sans perdre la connectivité. Normalement quand un hôte IP change de point de connexion, il change aussi d'adresse IP. La mobilité IP résoud ce problème en allouant une adresse IP fixe à l'hôte qui se déplace et en utilisant une encapsulation IP (tunneling) avec routage automatique pour s'assurer que les datagrammes qui lui sont destinés seront routés vers l'adresse effectivement utilisée à ce moment.

Un projet est en cours en vue de fournir un paquetage complet d'outils Linux pour la mobilité IP. L'état de ce projet et les outils peuvent être obtenus sur: Linux Mobile IP Home Page .

6.20 Multicast

L'IP Multicast permet à un nombre quelconque d'hôtes IP, qui se trouvent sur des réseaux différents, d'avoir des datagrammes IP routés en même temps vers eux-mêmes. Ce mécanisme est exploité pour fournir sur l'Internet des applications prenant de la bande passante comme les transmissions audio et video et autres nouvelles applications.

Options de compilation du noyau:

Networking options  --->
        [*] TCP/IP networking
        ....
        [*] IP: multicasting

Un ensemble d'outils et quelques modifications de la configuration réseau sont nécessaires. Une source de renseignements pour l'installation et la configuration se trouve sur www.teksouth.com .

6.21 NAT Traduction d'Adresse Réseau (Network Address Translation)

Le système de Traduction d'Adresse Réseau IP est vraiment le grand frère du sytème IP Masquerade de Linux. Le détail de ses spécifications se trouve dans la RFC-1631 (voir votre archive RFC la plus proche). NAT possède des caractéristiques que IP-Masquerade n'a pas, ce qui le rend beaucoup mieux adapté pour concevoir le routeur firewall d'une société ou d'installations plus conséquentes.

Une implémentation alpha de NAT pour le noyau 2.0.29 de Linux fut développée par Michael Hasenstein, Michael.Hasenstein@informatik.tu-chemnitz.de. La documentation et l'implémentation sont disponibles sur: Linux IP Network Address Web Page

Les nouveaux noyaux Linux 2.1.* comprennent quelques fonctions de NAT dans l'algorithme de routage.

6.22 NetRom (AF_NETROM)

Les noms de périphériques NetRom sont `nr0', `nr1', etc.

Options de compilation du noyau:

Networking options  --->
    [*] Amateur Radio AX.25 Level 2
    [*] Amateur Radio NET/ROM
Les protocoles AX25, Netrom et Rose sont décrits dans le document AX25-HOWTO . Ces protocoles sont utilisés par les radio-amateurs dans le monde entier pour l'expérimentation du packet-radio.

La plupart du travail d'implémentation a été fait par Jonathon Naylor, jsn@cs.not.ac.uk.

6.23 PLIP

Les noms de périphériques PLIP sont `plip0', `plip1 et plip2.

Options de compilation du noyau:

Networking options  --->
    <*> PLIP (parallel port) support

PLIP (Parallel Line IP) est, comme SLIP, utilisé pour fournir une connexion réseau point à point entre deux machines, sauf qu'il est conçu pour utiliser les ports parallèles de votre machine au lieu des ports séries. Parce qu'il est possible de transmettre plus d'un bit en même temps avec un port parallèle, il est possible d'atteindre de plus hautes vitesses avec l'interface PLIP qu'avec une sortie série standard (un schéma de câblage est donné plus tard dans ce document). De plus, même le plus simple des ports parallèles, le port imprimante, peut être utilisé, au lieu d'acheter un UART 16550AFN relativement cher pour vos ports séries. PLIP utilise beaucoup de ressource CPU en comparaison avec une liaison série, et ce n'est pas un bon choix si vous pouvez obtenir quelque carte ethernet économique, mais il fonctionne quand rien d'autre n'est disponible et il marche très bien. On doit s'attendre à un taux de transfert de données d'environ 20 Ko quand la liaison marche bien.

Les pilotes de périphérique PLIP sont en compétition avec les pilotes de périphériques parallèles sur le port parallèle. Si vous voulez utiliser les deux pilotes en même temps vous devez les compiler en tant que modules pour être assurés de pouvoir choisir quel port vous voulez utiliser pour PLIP et quels ports vous voulez pour le pilote d'impression. Voyez le Modules-HOWTO pour plus d'informations sur la confguration des modules du noyau.

Attention, notez que certains portables utilisent des circuits qui ne peuvent pas fonctionner avec PLIP car ils n'autorisent pas certaines combinaisons dont PLIP a besoin et que les imprimantes n'utilisent pas.

L'interface Linux PLIP est compatible avec le Pilote PLIP Crynwyr Packet et ceci signifie que vous pouvez connecter votre machine Linux avec une machine DOS tournant avec n'importe quel logiciel tcp/ip via PLIP.

Dans la série des noyaux 2.0.* les périphériques plip sont reliés aux ports i/o et les IRQ comme suit:

peripherique   adresse i/o  IRQ
------------   -----------  ---
plip0           0x3bc        5
plip1           0x378        7
plip2           0x278        2

Si vos ports parallèles ne correspondent pas aux combinaisons précédentes alors vous pouvez changer les IRQ en utilisant la commande ifconfig avec le paramètre `irq'. N'oubliez pas de valider les IRQ pour vos ports imprimantes dans votre ROM BIOS s'il supporte cette option.

Dans la série des noyaux 2.1.* avec le support PnP les périphériques plip sont alloués séquentiellement au fur et à mesure de leur détection tout comme les périphériques ethernet, avec plip0 alloué en premier.

Quand on compile le noyau, il n'y a qu'un seul fichier que vous devez regarder pour configurer plip. Ce fichier est /usr/src/linux/driver/net/CONFIG et il contient les horloges plip en millisecondes. Les valeurs par défaut coviennent la plupart du temps. Vous aurez probablement besoin de les augmenter si votre ordinateure est particulièrement lent, auquel cas les horloges à augmenter se trouvent sur l'autre ordinateur. Un programme appelé plipconfig existe et permet de configurer les réglages sans recompiler le noyau. Il est fourni avec beaucoup de distributions Linux.

Pour configurer une interface plip, vous devez ajouter les lignes suivantes dans votre fichier réseau rc:

#
# Attach a PLIP interface
#
#  configure first parallel port as a plip device
/sbin/ifconfig plip0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up
#
# End plip

Où:

IPA.IPA.IPA.IPA

represente votre adresse IP.

IPR.IPR.IPR.IPR

represente l'adresse l'adresse IP de la machine distante.

Le paramètre pointopoint a la même signification que pour SLIP, c'est à dire qu'il spécifie l'adresse de la machine de la machine à l'autre bout de la liaison.

Dans la plupart des cas vous pouvez traiter l'interface plip comme si elle était une interface SLIP, sauf que ni dip ni slattach ne doivent, ou ne peuvent, être utilisés.

Pour plus d'informations sur PLIP voir PLIP-mini-HOWTO

6.24 PPP

Les noms de périphériques PPP sont `ppp0', `ppp1, etc. Les noms sont attribués séquentiellement, le premier périphérique étant `0'.

Options de compilation du noyau:

Networking options  --->
    <*> PPP (point-to-point) support

La configuration de PPP est discutée en détail dans le PPP-HOWTO .

Maintenance d'une connexion permanente avec le réseau à l'aide de pppd.

Si vous êtes suffisamment fortunés pour avoir une connexion semi-permanente avec le net et que vous vouliez que votre machine refasse la connexion PPP en cas de perte, alors voici une astuce simple.

Configurer PPP de sorte qu'il soit démarré par l'utilisateur root en faisant la commande:

# pppd
Soyez certains d'avoir l'option `-detach' dans le fichier /etc/ppp/options. Puis, insérez la ligne suivante dans votre fichier /etc/inittab, avec les définitions des getty:
pd:23:respawn:/usr/sbin/pppd
Cela permettra au programme init de démarrer et de surveiller le programme pppd , et de le redémarrer automatiquement s'il meurt.

6.25 Protocole Rose (AF_ROSE)

Les noms de périphériques Rose sont `rs0', `rs1', etc. . Rose est disponible dans la série des noyaux 2.1.*.

Options de compilation du noyau:

Networking options  --->
    [*] Amateur Radio AX.25 Level 2
    <*> Amateur Radio X.25 PLP (Rose)
Les protocoles AX25, Netrom et Rose sont expliqués dans le AX25-HOWTO . Ces protocoles sont utilisés par les opérateurs radio-amateur du monde entier pour l'expérimentation du packet-radio.

La plupart du travail d'implémentation de ces protocoles a été réalisé par Jonathon Naylor, jsn@cs.not.ac.uk.

6.26 Support SAMBA - `NetBEUI', `NetBios'.

SAMBA est une implémentation du protocole Session Management Block. Samba permet à Microsoft et d'autres systèmes de monter et d'utiliser vos disques et imprimantes.

SAMBA et sa configuration sont décrits en détail dans le SMB-HOWTO .

6.27 Client SLIP

Les fichiers de périphériques SLIP sont nommés `sl0', `sl1' etc. le premier configuré étant `0' et les autres s'incrémentant au fur et à mesure qu'ils sont configurés.

Options de compilation du noyau:

Network device support  --->
    [*] Network device support
    <*> SLIP (serial line) support
    [ ]  CSLIP compressed headers
    [ ]  Keepalive and linefill
    [ ]  Six bit SLIP encapsulation

SLIP (Serial Line Internet Protocol) vous permet d'utiliser tcp/ip avec une ligne série, qui peut être un téléphone et un modem, ou tout autre ligne dédiée. Bien sûr pour utiliser SLIP vous devez avoir accès à un serveur SLIP dans votre entourage. Beaucoup d'universités et de sociétés fournissent des accès SLIP de par le monde.

SLIP utilise les ports séries de votre machine pour transporter les datagrammes IP. Pour cela il doit prendre le contrôle du périphérique série. Les noms de périphériques SLIP sont sl0, sl1 etc. Comment ceux-ci correspondent avec vos périphériques série ? Le code réseau utilise ce que l'on nomme un appel ioctl (i/o control) pour transformer les périphériques série en périphériques SLIP. Il y a deux programmes qui peuvent faire cela, ce sont dip et slattach

dip

dip (Dialup IP) est un programme élégant capable de régler la vitesse du dispositif série, de demander à votre modem d'appeler l'autre extrémité de la ligne, de vous connecter automatiquement au serveur distant, de chercher des messages qui vous ont été envoyés par le serveur et d'en extraire des informations telles que votre adresse IP et de faire le ioctl nécessaire pour basculer votre port série en mode SLIP. dip est très flexible quant à l'utilisation de scripts et grâce à ceci vous pouvez automatiser vos procédures de connexion.

On peut le trouver sur: sunsite.unc.edu .

Pour l'installer faites:

#
# cd /usr/src
# gzip -dc dip337o-uri.tgz | tar xvf -
# cd dip-3.3.7o

<editez Makefile>

# make install
#

Le fichier Makefile suppose l'existence d'un groupe nommé uucp, mais vous pouvez le changer en dip ou SLIP, selon votre configuration.

slattach

slattach au contraire de dip est un programme très simple, très facile à utiliser, mais qui n'a pas la sophistication de dip. Il n'a pas de possiblité d'accepter des scripts, tout ce qu'il fait est de configurer votre périphérique série en périphérique SLIP. Il suppose que vous ayez toutes les informations nécessaires et que la liaison série est établie avant de l'invoquer. slattach est idéal quand vous avez une liaison permanente avec votre serveur, comme un câble physique ou une ligne dédiée.

Quand utiliser quoi ?

Vous devriez utiliser dip lorsque votre liaison vers la machine qui est votre serveur SLIP est un modem, ou tout autre lien intermittent. Vous devriez utiliser slattach quand vous avez une ligne dédiée, peut-être un câble, entre votre machine et le serveur et qu'il n'y a pas d'action spéciale nécessaire pour garder la ligne en activité. Voir la section `Connexion SLIP permanente' pour plus de détails.

Configurer SLIP est analogue à la configuration d'une interface Ethernet (voir la section `Configurer un périphérique Ethernet' ci-dessus). Cependant, il existe quelques différences.

Tout d'abord, les liens SLIP ne sont pas des réseaux Ethernet en ce qu'il n'y a que deux hôtes sur le réseau, un à chaque extrémité de la liaison. A la différence de l'Ethernet qui est disponible dès que vous êtes câblé, avec SLIP, en fonction du type de lien que vous avez, vous pouvez avoir à initialiser votre connexion réseau d'une manière spéciale.

Si vous utilisez dip, alors cela ne sera pas fait au moment du démarrage de la machine, mais plus tard, quand vous serez prêt pour utiliser la liaison. Il est possible d'automatiser la procédure. Si vous utilisez slattach vous voudrez probablement ajouter une section dans votre fichier rc.inet1. Ceci sera décrit bientôt.

Il y a deux types principaux de serveurs SLIP: serveurs avec adressage IP dynamique et serveurs avec adressage IP statique. Presque tous les serveurs SLIP vous demanderont à la connexion d'utiliser un nom d'utilisateur et un mot de passe quand vous composez le numéro. dip peut prendre en charge la connexion automatiquement.

Serveur SLIP statique avec une ligne téléphonique et DIP.

Le serveur SLIP statique est celui qui vous fournit une adresse IP qui reste exclusivement la vôtre. A chaque fois que vous vous connectez à ce serveur, vous configurez votre port SLIP avec cette adresse. Le serveur SLIP statique répond à votre appel par modem, vous demande probablement un nom d'utilisateur et un mot de passe, et ensuite dirige tous les datagrammes destinés à votre adresse au travers de cette connexion. Si vous avez un serveur statique, alors vous mettez des entrées pour votre nom d'hôte et votre adresse IP (puisque vous savez ce qu'elle sera) dans votre fichier /etc/hosts. Vous avez aussi à configurer d'autres fichiers comme: rc.inet2, host.conf, resolv.conf, /etc/HOSTNAME et rc.local. N'oubliez pas qu'en configurant rc.inet1, vous n'avez pas besoin d'ajouter de commandes spéciales pendant la connexion SLIP puisque c'est dip qui fait tout le dur labeur à votre place en configurant votre interface. Vous avez besoin de donner à dip les informations adéquates et il configure l'interface pour vous après avoir demandé au modem d'établir l'appel et de vous connecter au serveur.

Si votre serveur SLIP fonctionne comme cela alors vous pouvez directement aller à la section `Utiliser Dip' pour apprendre à configurer dip convenablement.

Serveur SLIP dynamique avec une ligne téléphonique et DIP.

Le serveur SLIP dynamique vous alloue une adresse IP de manière aléatoire, à partir d'un groupe d'adresses, à chaque fois que vous vous connectez. Cela signifie qu'il n'y a aucune garantie d'avoir la même adresse à chaque fois, et que celle-ci peut être utilisée par quelqu'un d'autre après la déconnexion. L'administrateur réseau qui a configuré le serveur SLIP a assigné un groupe d'adresses que le serveur SLIP peut utiliser quand il reçoit un appel entrant. Il prend alors la première adresse inutilisée, guide l'appelant au travers du processus de connexion et envoie un message de bienvenue contenant l'adresse IP qu'il a allouée et continue d'utiliser cette adresse tout le temps de l'appel.

Configurer ce type de serveur revient à configurer un serveur statique, sauf que vous devez ajouter une étape où vous obtenez l'adresse IP que le serveur vous alloue puis configurer le périphérique SLIP avec celle-ci.

Encore une fois, dip fait le sale boulot et les nouvelles versions sont suffisamment élégantes pour non seulement établir la connexion, mais aussi pour lire l'adresse IP inscrite dans le message de bienvenue et la stocker de telle sorte que vous puissiez configurer votre périphérique SLIP avec.

Si votre serveur SLIP fonctionne ainsi, alors vous pouvez aller à la section `Utiliser DIP' pour savoir comment configurer dip de manière adéquate.

Utiliser DIP.

Comme expliqué plus haut, dip est un programme puissant qui simplifie et automatise le processus de composition d'un numéro vers un serveur SLIP, se connecte dessus, démarre la connexion et configure les périphériques SLIP à l'aide des commandes ifconfig et route appropriées.

Essentiellement pour utiliser dip vous écrivez un `script dip' qui est simplement une liste de commandes que dip comprend et qui dit à dip comment réaliser chacune des actions que vous voulez qu'il fasse. Voyez le fichier sample.dip est fourni avec dip pour avoir une idée de la manière dont il travaille. dip est vraiment un programme puissant, avec beaucoup d'options. Au lieu de regarder chacune d'elles, il vaut mieux jeter un coup d'oeil dans la page de manuel, le fichier README et les fichiers d'exemple qui sont fournis avec votre version de dip.

Vous pouvez noter que le script sample.dip suppose que vous utilisez un serveur SLIP statique, aussi vous connaissez votre adresse IP à l'avance. Pour les serveurs SLIP dynamiques, les nouvelles versions de dip incluent une commande que vous pouvez utiliser pour lire et configurer automatiquement votre périphérique SLIP avec l'adresse IP que le serveur dynamique vous donne. L'exemple suivant est une version modifiée du fichier sample.dip fournie avec dip337j-uri.tgz et qui est probablement un bon point de départ pour vous. Vous pouvez le sauvegarder sous le nom de /etc/dipscript et l'éditer pour l'adapter à votre configuration:

#
# sample.dip    Dialup IP connection support program.
#
#               This file (should show) shows how to use the DIP
#       This file should work for Annex type dynamic servers, if you
#       use a static address server then use the sample.dip file that
#       comes as part of the dip337-uri.tgz package.
#
#
# Version:      @(#)sample.dip  1.40    07/20/93
#
# Author:       Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
#

main:
# Next, set up the other side's name and address.
# My dialin machine is called 'xs4all.hacktic.nl' (== 193.78.33.42)
get $remote xs4all.hacktic.nl
# Set netmask on sl0 to 255.255.255.0
netmask 255.255.255.0
# Set the desired serial port and speed.
port cua02
speed 38400

# Reset the modem and terminal line.
# This seems to cause trouble for some people!
reset

# Note! "Standard" pre-defined "errlevel" values:
#  0 - OK
#  1 - CONNECT
#  2 - ERROR
#
# You can change those grep'ping for "addchat()" in *.c...

# Prepare for dialing.
send ATQ0V1E1X4\r
wait OK 2
if $errlvl != 0 goto modem_trouble
dial 555-1234567
if $errlvl != 1 goto modem_trouble

# We are connected.  Login to the system.
login:
sleep 2
wait ogin: 20
if $errlvl != 0 goto login_trouble
send MYLOGIN\n
wait ord: 20
if $errlvl != 0 goto password_error
send MYPASSWD\n
loggedin:

# We are now logged in.
wait SOMEPROMPT 30
if $errlvl != 0 goto prompt_error

# Command the server into SLIP mode
send SLIP\n
wait SLIP 30
if $errlvl != 0 goto prompt_error

# Get and Set your IP address from the server.  
#   Here we assume that after commanding the SLIP server into SLIP
#   mode that it prints your IP address
get $locip remote 30
if $errlvl != 0 goto prompt_error

# Set up the SLIP operating parameters.
get $mtu 296
# Ensure "route add -net default xs4all.hacktic.nl" will be done
default

# Say hello and fire up!
done:
print CONNECTED $locip ---> $rmtip
mode CSLIP
goto exit

prompt_error:
print TIME-OUT waiting for sliplogin to fire up...
goto error

login_trouble:
print Trouble waiting for the Login: prompt...
goto error

password:error:
print Trouble waiting for the Password: prompt...
goto error

modem_trouble:
print Trouble occurred with the modem...
error:
print CONNECT FAILED to $remote
quit

exit:
exit

L'exemple précédent suppose que vous appeliez un serveur SLIP dynamique; si vous appelez un serveur SLIP statique, alors le fichier sample.dip founi avec dip337j-uri.tgz devrait vous convenir.

Quand on donne à dip la commande get $local, il cherche dans le texte venant de l'extrémité de la ligne une chaîne de caractères ressemblant à une adresse IP, c'est à dire des ensembles de nombres séparés par des caractères `.'. Cette modification fut mise en place plus spécialement pour les serveurs SLIP dynamiques, afin que le processus de lecture de l'adresse IP fournie par le serveur soit automatisé.

L'exemple ci-dessus crée automatiquement une route par défaut via votre liaison SLIP, et si ce n'est pas ce que vous voulez car vous avez une connexion Ethernet qui devrait être votre route par défaut, alors enlevez la commande default du script. Après que le script ait fini de tourner, tapez la commande ifconfig, et vous verrez que vous avez un périphérique sl0. C'est votre périphérique SLIP. Si le besoin s'en fait sentir, vous pouvez modifier manuellement sa configuration, après que la commande dip soit finie, en utilisant les commandes ifconfig et route.

Notez que dip vous permet de choisir parmi différents protocoles en utilisant la commande mode, l'exemple le plus courant étant cSLIP pour utiliser SLIP avec compression. Notez encore que les deux extrémités de la liaison doivent être d'accord, aussi assurez-vous que ce que vous avez choisi est en accord avec les réglages du serveur.

L'exemple montré ci-dessus est plutôt robuste et devrait faire face à la plupart des erreurs. Référez-vous à la page de manuel de dip pour plus d'informations. Naturellement, vous pouvez, par exemple, modifier le script pour réaliser des choses comme recomposer le numéro vers le serveur si la connexion n'a pas été faite au bout d'un certain temps, ou même essayer une série de serveurs si vous avez accès à plus d'un.

Connexion permanente SLIP utilisant une ligne et slattach.

Si vous avez deux machines reliées par un câble, ou si vous êtes suffisamment riche pour avoir une ligne dédiée, ou un autre type de connexion permanente entre votre machine et une autre, alors vous n'avez pas besoin de vous casser la tête avec dip pour régler votre liaison série. slattach est un utilitaire très simple à utiliser et vous permet d'avoir les fonctionnalités juste nécessaires pour configurer votre connexion.

Puisque votre connexion est permanente, vous ajoutez quelques commandes dans votre fichier rc.inet1. Tout ce dont vous avez besoin pour une connexion permanente est de vous assurer que vous avez configuré votre périphérique série à la bonne vitesse et basculer votre périphérique série en mode SLIP. slattach vous permet de faire ceci avec une seule commande. Ajoutez ce qui suit à votre fichier rc.inet1:

#
# Attach a leased line static SLIP connection
#
#  configure /dev/cua0 for 19.2kbps and cslip
/sbin/slattach -p cslip -s 19200 /dev/cua0 &
/sbin/ifconfig sl0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up
#
# End static SLIP.

Où:

IPA.IPA.IPA.IPA

représente votre adresse IP.

IPR.IPR.IPR.IPR

représente l'adresse IP de l'hôte distant.

slattach alloue le premier périphérique SLIP disponible au périphérique série spécifié. slattach démarre avec sl0. Par conséquent la première commande slattach relie le périphérique sl0 au périphérique spécifé, puis sl1 la fois suivante, etc.

slattach vous permet de configurer un certain nombre de protocoles grâce à l'argument -p. Dans votre cas vous utilisez soit SLIP soit cSLIP suivant que vous voulez utiliser la compression ou non. Note: les deux extrémités doivent être d'accord sur l'utilisation de la compression.

6.28 Serveur SLIP.

Vous avez peut-être une machine connectée au réseau et vous aimeriez que d'autres personnes puisse s'y connecter pour y chercher des services de réseau, alors vous devez configurer votre machine comme serveur. Si vous voulez utiliser SLIP comme protocole de ligne série, vous avez trois possiblités pour configurer votre machine Linux comme serveur SLIP. Ma préférence est la première présentée, sliplogin, car elle semble la plus facile à configurer et à comprendre, mais je présenterai un résumé pour chacune, ainsi vous pourrez vous décider vous-mêmes.

Serveur SLIP utilisant sliplogin.

sliplogin est un programme que vous pouvez utiliser à la place du shell normal de connexion pour les utilisateurs SLIP, et qui convertit la ligne terminal en ligne SLIP. Il vous permet de configurer votre machine Linux soit en serveur à adresse statique (les utilisateurs obtiennent toujours la même adresse à chaque connexion), ou bien en serveur à adresse dynamique (les utilisateurs obtiennent une adresse allouée qui n'est pas forcément la même que lors de la connexion précédente).

L'appelant se connecte comme pour une connexion standard, en donnant son nom d'utilisateur et son mot de passe, mais au lieu d'avoir une invite de shell après la connexion, sliplogin est exécuté et cherche dans son fichier de configuration une entrée dont le nom correspond à celui de l'hôte appelant. S'il en détecte une, il configure la ligne comme une ligne avec 8 bits de données, et utilise un appel ioctl pour convertir la ligne en ligne SLIP. Quand ce processus est fini, la dernière étape de la configuration prend place, sliplogin invoquant un script qui configure l'interface SLIP avec l'adresse IP adéquate, ainsi que le masque de réseau et positionne le routage approprié. Ce script est appelé habituellement /etc/slip.login, mais tout comme getty, si vous avez certains appelants demandant une initialisation spéciale, alors vous pouvez créer des scripts de configuration appelés /etc/slip.login.loginname qui seront utilisés à la place du script par défaut.

Il y a trois ou quatre fichiers que vous devez configurer pour que sliplogin travaille pour vous. Je décrirai comment et où obtenir les logiciels et comment chacun est configuré. Ces fichiers sont:

Où obtenir sliplogin

Vous avez peut-ètre déjà le paquetage dans votre distribution; si ce n'est pas le cas alors sliplogin peut être obtenu sur sunsite.unc.edu . Le fichier tar contient à la fois les sources, les binaires précompilés et une page de manuel.

Pour s'assurer que seuls les utilisateurs autorisés pourront faire tourner le programme sliplogin, vous devez ajouter une entrée dans votre fichier /etc/group similaire à la suivante:

 ..
slip::13:radio,fred
 ..

Lorsque vous installez le paquetage sliplogin package, Makefile change le groupe du programme sliplogin en slip, et cela signifie que seuls les utilsateurs qui appartiennent à ce groupe pourront l'exécuter. L'exemple donné ci-dessus ne permet qu'aux utilisateurs radio et fred de pouvoir faire tourner le programme sliplogin.

Pour installer les binaires dans le répertoire /sbin et les pages de manuel dans la section 8, faites:

# cd /usr/src
# gzip -dc .../sliplogin-2.1.1.tar.gz | tar xvf -
# cd sliplogin-2.1.1
# <..edit the Makefile if you don't use shadow passwords..>
# make install

Si vous voulez recompiler les binaires avant de les installer, faites make clean avant de faire make install. Si vous voulez installer les binaires autre part, vous devez éditer le fichier Makefile et le modifier en conséquence.

Lisez les fichiers README qui sont inclus dans le paquetage pour plus d'informations.

Configurer /etc/passwd pour les hôtes SLIP.

Normalement vous devez créer des noms d'hôtes spéciaux, pour ceux qui appellent avec SLIP, dans votre fichier /etc/passwd. Une convention souvent suivie est d'utiliser le nom d'hôte de l'hôte appelant avec la lettre capitale `S' comme préfixe. Ainsi, par exemple, si l'hôte appelant s'appelle radio alors vous pouvez créer une entrée dans le fichier /etc/passwd qui ressemble à ceci:

Sradio:FvKurok73:1427:1:radio SLIP login:/tmp:/sbin/sliplogin

Le nom du compte n'a pas réellement d'importance, du moment qu'il ait une signification pour vous.

Note: l'appelant n'a pas besoin de répertoire home spécial car il n'utilisera pas de shell le la machine, dès lors /tmp est un bon choix. Notez bien que sliplogin est utilisé à la place du shell de connexion normal.

Configurer /etc/slip.hosts

Le fichier /etc/slip.hosts est le fichier où sliplogin cherche les entrées correspondant au nom de connexion pour obtenir les détails de configuration de cet hôte. C'est le fichier où vous indiquez l'adresse IP et le masque de réseau qui seront assignés à l'appelant et configurés pour leur usage. Des exemples d'entrées pour deux hôtes, une statique pour l'hôte radio et l'autre dynamique pour l'hôte albert ressemblent à ceci:

#
Sradio   44.136.8.99   44.136.8.100  255.255.255.0  normal      -1
Salbert  44.136.8.99   DYNAMIC       255.255.255.0  compressed  60
#

Les entrées du fichier /etc/slip.hosts sont:

  1. Le nom de connexion de l'appelant.
  2. L'adesse IP de la machine serveur, donc cette machine.
  3. L'adresse IP que l'appelant aura. Si c'est marqué DYNAMIC alors l'adresse IP sera allouée suivant les informations contenues dans le fichier /etc/slip.tty décrit plus tard. Note: vous devez utiliser au moins la version 1.3 de sliplogin pour que cela fonctionne.
  4. Le masque de réseau assigné à la machine appelante, en notation décimale, par exemple 255.255.255.0 pour un masque de réseau de classe C.
  5. le réglage du mode SLIP qui active/désactive la compression et autres caractéristiques de SLIP. Les valeurs permises sont normal ou compressed.
  6. un paramètre de délai qui spécifie combien de temps la ligne peut rester inactive (aucun datagramme reçu) avant une déconnexion automatique. Une valeur négative désactive cette possiblité.
  7. arguments optionnels.

Note: Vous pouvez mettre soit les noms d'hôtes soit les adresses IP en notation décimale pointée pour les champs 2 et3. Si vous utilisez les noms d'hôtes, alors ces hôtes doivent être résolvables, c'est à dire que votre machine est capable de déterminer une adresse IP pour ces noms d'hôtes, autrement le script échouera pendant l'appel. Vous pouvez le tester en faisant telnet vers un nom d'hôte: si vous obtenez le message `Trying nnn.nnn.nnn...' alors votre machine est capable de trouver une adresse ip pour ce nom d'hôte. Si vous obtenez le message `Unknown host', alors il n'en a pas. Dans ce cas essayez d'utiliser l'adress ip en notation décimale pointée; ou bien voyez du côté de votre configuration de résolveur de nom (voir la section Résolution de nom).

Les modes les plus courants de SLIP sont:

normal

mode SLIP normal non compressé.

compressé

mode avec compression van Jacobsen des en-têtes (cSLIP)

Bien sûr ils sont mutuellement exclusifs, vous devez utiliser l'un ou l'autre. Pour plus d'informations sur les options disponibles, voir les pages de manuels.

Configurer le fichier /etc/slip.login.

Après que sliplogin ait exploré le fichier /etc/slip.hosts et ait trouvé une entrée qui convient, il essaye d'exécuter le fichier /etc/slip.login pour effectivement configurer l'interface SLIP avec son adresse ip et son masque de réseau.

L'exemple de fichier /etc/slip.login fourni avec le paquetage sliplogin ressemble à ceci:

#!/bin/sh -
#
#       @(#)slip.login  5.1 (Berkeley) 7/1/90
#
# generic login file for a SLIP line.  sliplogin invokes this with
# the parameters:
#     $1       $2       $3    $4, $5, $6 ...
#   SLIPunit ttyspeed   pid   the arguments from the slip.host entry
#
/sbin/ifconfig $1 $5 pointopoint $6 mtu 1500 -trailers up
/sbin/route add $6
arp -s $6 <hw_addr> pub
exit 0
#

Notez que ce script utilise seulement les commandes ifconfig et route pour configurer le périphérique SLIP avec sa propre adresse ip, l'adresse ip de l'hôte distant , le masque de réseau puis crée une route vers l'adresse distante via le périphérique SLIP. C'est à dire la même chose que si vous utilisiez la commande slattach.

Notez aussi l'utilisation de Proxy ARP pour s'assurer que les hôtes placés sur le même Ethernet que la machine serveur sauront comment atteindre l'hôte qui s'est connecté. Le champ <hw_addr> doit être l'adresse matérielle de la carte Ethernet de la machine. Si votre machine serveur n'est pas sur un réseau Ethernet, vous pouvez ignorer cette ligne.

Configurer le fichier /etc/slip.logout.

Quand la connexion s'est arrêtée, assurez-vous que le périphérique série est revenu à son état normal de telle sorte que les futurs appelants puissent se connecter correctement. Ceci est accompli en utilisant le fichier /etc/slip.logout. Il est de format très simple et est appelé avec le même argument que le fichier /etc/slip.login.

#!/bin/sh -
#
#               slip.logout
#
/sbin/ifconfig $1 down
arp -d $6
exit 0
#

Tout ce qu'il fait est de `mettre à zéro' l'interface qui supprimera la route précédemment créée. Il utilise aussi la commande arp pour supprimer tout arp proxy en place, encore une fois vous n'avez pas besoin de la commande arp dans le script si votre machine serveur ne possède pas de port Ethernet.

Configurer le fichier /etc/slip.tty.

Si vous utilisez une allocation d'adresse ip dynamique (tous les hôtes configurés avec le mot-clé DYNAMIC dans le fichier /etc/slip.hosts) alors vous devez configurer le fichier /etc/slip.tty pour lister les adresses qui seront assignées aux ports. Vous n'aurez besoin de ce fichier que si vous voulez que votre serveur alloue des adresses aux utilisateurs de manière dynamique.

Ce fichier est un tableau qui liste les périphériques tty supportant les connexions SLIP entrantes et l'adresse ip qui sera assignée aux utilisateurs se connectant à ce port.

Son format est le suivant:

# slip.tty    tty -> IP address mappings for dynamic SLIP
# format: /dev/tty?? xxx.xxx.xxx.xxx
#
/dev/ttyS0      192.168.0.100
/dev/ttyS1      192.168.0.101
#

Ce que dit ce tableau est que les appelants qui se connectent sur le port /dev/ttyS0 et qui ont leur champ d'adresse dans le fichier /etc/slip.hosts réglé sur DYNAMIC auront l'adresse 192.168.0.100.

De cette manière vous n'avez besoin d'allouer qu'une seule adresse par port pour tous les utilisateurs n'ayant pas besoin d'adresse fixe. Ceci vous permet d'avoir le nombre minimum d'adresses nécessaires pour éviter du gaspillage.

Serveur Slip utilisant dip.

Tout d'abord laissez-moi dire que certaines informations ci-dessous viennent des pages de manuel de dip, où la manière de faire tourner Linux comme serveur SLIP est brièvement décrite. Faites attention aussi que ce qui suit est basé sur le paquetage dip337o-uri.tgz et ne s'applique vraisemblablement pas à d'autres versions de dip.

dip possède un mode de travail des données d'entrée qui permet de localiser automatiquement un utilisateur entrant et qui configure la ligne série comme lien SLIP suivant les informations trouvées dans le fichier /etc/diphosts. Ce mode est activé en invoquant dip avec diplogin. Voilà donc comment utiliser dip comme serveur SLIP, en créant des comptes spéciaux où diplogin est utilisé comme shell de connexion.

La première chose à faire est de créer un lien symbolique comme suit:

# ln -sf /usr/sbin/dip /usr/sbin/diplogin

Ensuite vous devez ajouter des entrées à la fois dans vos fichiers /etc/passwd et /etc/diphosts. Les entrées que vous devez y mettre sont formatées comme suit:

Pour configurer Linux comme serveur SLIP avec dip, vous devez créer quelques comptes SLIP spéciaux pour les utilisateurs, où dip (en mode d'entrée) est utilsé comme shell de connexion. Une convention suggérée est d'avoir tous les comptes SLIP commençant avec la lettre `S' majuscule, par exemple `Sfredm'.

Un exemple d'entrée dans /etc/passwd pour un utilisateur SLIP ressemble à ceci:

Sfredm:ij/SMxiTlGVCo:1004:10:Fred:/tmp:/usr/sbin/diplogin
^^         ^^        ^^  ^^   ^^   ^^   ^^
|          |         |   |    |    |    \__ diplogin comme shell de connexion
|          |         |   |    |    \_______ Repertoire personnel 
|          |         |   |    \____________ Nom complet d'utilisateur
|          |         |   \_________________ GID
|          |         \_____________________ UID
|          \_______________________________ Mot de passe crypte
\__________________________________________ Nom de connexion Slip 

Après la connexion de l'utilisateur, le programme login (s'il trouve et accepte l'utilisateur) exécute la commande diplogin. dip, lorsqu'il est invoqué en tant que diplogin sait qu'il sera automatiquement utilisé comme shell de connexion. Quand il est démarré comme diplogin la première chose qu'il fait est d'utiliser l'appel de la fonction getuid() pour obtenir l'identificateur de l'utilisateur appelant. Il regarde ensuite dans le fichier /etc/diphosts pour trouver la première entrée qui correspond soit à l'identificateur soit au nom du périphérique tty où l'appel est entré et se configure lui-même de manière appropriée. Par un choix judicieux: soit de donner à l'utilisateur une entrée dans le fichier diphosts, ou soit de laisser à l'utilisateur la configuration par défaut, vous pouvez construire votre serveur de telle manière que vous puissiez avoir un mélange d'utilisateurs ayant des adresses allouées statiquement ou dynamiquement.

dip ajoutera automatiquement une entrée `Proxy-ARP' si elle est invoquée en mode d'entrée, aussi vous n'avez pas à vous soucier d'ajouter de telles entrées manuellement.

Configurer /etc/diphosts

/etc/diphosts est utilisé par dip pour examiner des configurations préétablies concernant des hôtes éloignés. Ceux-ci peuvent être des hôtes se connectant sur votre machine, ou bien des machines sur lesquelles vous vous connectez.

Le format général de /etc/diphosts est:

 ..
Suwalt::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006
ttyS1::145.71.34.3:145.71.34.2:255.255.255.0:Dynamic ttyS1:CSLIP,296
 ..

Les champs sont:

  1. nom de connexion: comme retourné par getpwuid(getuid()) ou bien le nom de tty.
  2. inutilisé: pour compatibilité avec passwd
  3. Adresse distante: adresse IP de l'appelant, soit numérique soit nominative
  4. Adresse locale: adresse IP de cette machine, soit numérique soit nominative.
  5. Masque de réseau: en notation décimale pointée
  6. Commentaires: vous y mettez ce que vous voulez.
  7. protocole: Slip, CSlip etc.
  8. MTU: nombre décimal

Un exemple d'entrée /etc/net/diphosts pour un hôte distant peut être:

Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:SLIP,296

qui spécifie une liaison SLIP avec une adresse distante de 145.71.34.1 et un MTU de 296, ou:

Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006

qui spécifie une liaison compatible cSLIP avec une adresse distante de 145.71.34.1 et un MTU de 1006.

Dès lors, tous les utilisateurs à qui vous permettez d'avoir une connexion avec allocation d'adresse IP statique auront une entrée dans /etc/diphosts .Si vous voulez que des utilisateurs qui appellent sur un port particulier aient leur adresse allouée dynamiquement, vous devez alors avoir une entrée pour le périphérique tty, mais pas d'entrée pour l'utilisateur lui-même. Vous devez vous souvenir de configurer au moins une entrée pour chaque périphérique tty que vos utilisateurs entrants utiliseront pour être sûrs qu'une configuration adéquate soit disponible, indépendamment du modem sur lequel ils se connectent.

Quand un utilisateur se connecte, il recevra une invite normal de login et une demande de mot de passe, pour lesquels il devra entrer son identificateur SLIP et son mot de passe. Si tout est correct, l'utilisateur ne verra pas de message spécial, il devra juste basculer en mode SLIP chez lui et ensuite il pourra se connecter et être configuré avec les paramètres contenus dans le fichier diphosts.

Serveur SLIP utilisant l'ensemble dSLIP.

Matt Dillon <dillon@apollo.west.oic.com> a écrit un paquetage qui permet des liaisons SLIP non seulement entrantes mais aussi sortantes. Le paquetage de Matt est une combinaison de petits programmes et de scripts qui prennent en charge les connexions à votre place. Vous aurez besoin de tcsh car au moins l'un des scripts en a besoin. Matt fournit une copie binaire de l'utilitaire expect car il est aussi nécessaire pour l'un des scripts. Il serait préférable d'avoir une certaine expérience de expect pour que ce paquetage soit utile pour vous, mais que cela ne vous décourage pas.

Matt a écrit une bonne procédure d'installation dans le fichier README, aussi je ne me fatiguerai pas à la répéter.

Vous pouvez récupérer le paquetage dSLIP sur son site d'origine:

apollo.west.oic.com

/pub/linux/dillon_src/dSLIP203.tgz

ou bien sur:

sunsite.unc.edu

/pub/Linux/system/Network/serial/dSLIP203.tgz

Lisez le fichier README et créez les entrées /etc/passwd et /etc/group avant de faire make install.

6.29 Support STRIP (Starmode Radio IP)

Les noms de périphériques STRIP sont `st0', `st1', etc.

Options de compilation du noyau:

Network device support  --->
        [*] Network device support
        ....
        [*] Radio network interfaces
        < > STRIP (Metricom starmode radio IP)

STRIP est un protocole conçu spécialement pour un certain type de modems radio Metricom dans le cadre d'un projet de recherche conduit par l'Université de Stanford appelé MosquitoNet Project . Il y a un tas de choses intéressantes à lire, même si vous n'êtes pas directement concerné par le projet.

Les radios Metricom se connectent sur un port série et emploient la technologie à large bande spectrale et peuvent aller jusqu'à 100kbps. Des informations sur ceux-ci sont disponibles sur: Le serveur web de Metricom .

A l'heure actuelle les outils réseau habituels ne supportent pas le pilote STRIP, vous devez donc télécharger des outils personnalisés à partir du serveur web MosquitoNet. Pour avoir des détails sur les logiciels à utiliser allez voir: MosquitoNet STRIP Page .

En résumé la configuration consiste à utiliser un programme slattach modifié pour régler la discipline de ligne d'un périphérique série pour SLIP, puis à configurer le périphérique `st[0-9]' résultant comme vous le feriez pour Ethernet avec une exception importante: pour des raisons techniques STRIP ne supporte pas le protocole ARP , vous devez alors configurer manuellement les entrées ARP pour chacun des hôtes de votre sous-réseau. Cela ne devrait pas être trop contraignant.

6.30 Token Ring

Le noms de périphériques Token ring sont `tr0', `tr1' etc. Token Ring est un protocole LAN standard IBM en vue d'éviter les collisions en fournissant un mécanisme qui n'autorise qu'une seule station du LAN à transmettre à un moment donné. Un `jeton' est détenu par une station à un moment donné, et celle-ci est la seule autorisée à émettre. Lorque c'est fait elle passe le jeton à la station suivante. Le jeton fait le tour de toutes les stations actives, d'où le nom de `Token Ring' (anneau à jeton).

Options de compilation du noyau:

Network device support  --->
        [*] Network device support
        ....
        [*] Token Ring driver support
        < > IBM Tropic chipset based adaptor support

La configuration de token ring est identique à celle de l'Ethernet à l'exception du nom de périphérique réseau devant être configuré.

6.31 X.25

X.25 est un protocole de circuit basé sur la commutation de paquets défini par le C.C.I.T.T. (un groupe de normalisation reconnu par les compagnies de télécommunications dans la plupart du monde). Une implémentation de X.25 et LAPB est en cours dans les noyaux récents 2.1.*.

Jonathon Naylor jsn@cs.nott.ac.uk dirige le développement et une liste de diffusion a été créée pour discuter des affaires relatives à X.25 pour Linux. Pour y souscrire, envoyez un message à: majordomo@vger.rutgers.edu avec le texte "subscribe linux-x25" dans le corps du message.

Les dernières versions des outils de configuration peuvent être obtenues sur le site ftp de Jonathon à ftp.cs.nott.ac.uk .

6.32 Carte WaveLan

Les noms de périphériques Wavelan sont `eth0', `eth1', etc.

Options de compilation du noyau:

Network device support  --->
        [*] Network device support
        ....
        [*] Radio network interfaces
        ....
        <*> WaveLAN support

La carte WaveLAN est une carte LAN sans-fil à large bande. Elle ressemble beaucoup en pratique à une carte Ethernet et se configure presque de la même manière.

Vous pouvez avoir des informations sur la carte Wavelan sur Wavelan.com .


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre