Version française du ATM on Linux HOWTO
Version 2.4.0.fr.1.0
2003-03-11
Historique des versions | ||
---|---|---|
Version 2.4.0.fr.1.0 | 11/03/2003 | FRom, FDel |
Traduction de la version 2.4.0 de « ATM-Linux-HOWTO ». | ||
Version 2.4.0 | 18/10/2001 | PBS |
Converti de LaTeX en DocBook avec quelques ajouts et changements supplémentaires. (Converted from LaTeX to DocBook along with some other additions and changes.) |
Résumé
Ce document décrit l'installation et la configuration des pilotes et outils nécessaires au fonctionnement d'ATM sous Linux.
Pour les dernières informations, reportez-vous à la page d'accueil de ATM sous Linux.
La prise en charge d'ATM par Linux est encore au stade pré-alpha. La version actuelle gère les connexions ATM brutes au niveau PVC et SVC, IP sur ATM, l'émulation LAN, MPOA, Arequipa et d'autres choses.
Table des matières
Ce guide s'inspire largement du document
Usage Instructions qui a été inclus dans le
paquet ATM on Linux jusqu'à la version 0.79.
Werner Almesberger <wa CHEZ almsesberger POINT net>
l'a
rédigé
pendant
son séjour au
Institute for computer Communications
and Applications (ICA).
Richard Jones <rjones CHEZ imcl POINT com>
est à l'origine
de la
partie
Emploi de deux adaptateurs ATM
directement connectés.
Note | |
---|---|
Le texte ci-dessous est la version française de la licence de ce document. Seule la version originale de cette licence, présentée dans la section suivante, fait foi. |
La version originale de ce document a été réalisé par la société IBM Corporation en 2001.
Vous avez le droit de copier, distribuer et modifier la version originale de ce document selon les termes de la licence de documentation libre GNU (GFDL) version 1.1 ou ultérieures, telle que publiée par la Free Software Foundation ; sans section invariante, sans texte de première de couverture ni texte de quatrième de couverture. Une copie de la licence est disponible sur http://www.gnu.org/copyleft/fdl.html.
Une partie importante de ce document provient du guide Usage Instructions, inclus dans le paquet ATM on Linux™ jusqu'à la version 0.79, qui a été disponible sous les licences BSD, GNU General Public License (GPL) et GNU Lesser General Public License (LGPL).
La version française de document a été réalisée par François Romieu et Frédéric Delanoy. La version française de ce guide pratique est publiée en accord avec les termes de la licence de documentation libre GNU (GFDL) ; sans section invariante, sans texte de première de couverture ni texte de quatrième de couverture. Une copie de la licence est disponible sur http://www.gnu.org/copyleft/fdl.html. Une version française non officielle de cette licence est disponible sur http://cesarx.free.fr/gfdlf.html.
Note | |
---|---|
Le texte ci-dessous est la licence de ce document. Ce texte fait foi. Il est composé de la licence en anglais du document orignal, suivi de la licence en français de sa traduction. |
Copyright 2001 IBM Corporation.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license can be found at http://www.gnu.org/copyleft/fdl.html.
A large portion of this document is derived from the Usage Instructions included with the ATM on Linux™ distribution up to version 0.79 which was released under the BSD License, GNU General Public License (GPL), and GNU Lesser General Public License (LGPL).
La version française de document a été réalisée par François Romieu et Frédéric Delanoy. La version française de ce guide pratique est publiée en accord avec les termes de la licence de documentation libre GNU (GFDL) ; sans section invariante, sans texte de première de couverture ni texte de quatrième de couverture. Une copie de la licence est disponible sur http://www.gnu.org/copyleft/fdl.html.
Il existe une liste de diffusion pour discuter d'ATM sous Linux. Pour faire part de remarques, poser des questions ou vous impliquer, n'hésitez pas à rejoindre cette liste. Vous pouvez vous y abonner (subscribe) et vous en désabonner (unsubscribe) à l'adresse http://lists.sourceforge.net/lists/listinfo/linux-atm-general.
La liste de diffusion est archivée sur http://www.geocrawler.com/lists/3/SourceForge/6487/0/.
Il est conseillé aux utilisateurs d'employer les publications stables plutôt que de récupérer la dernière version depuis le référentiel CVS. Voici néanmoins la marche à suivre pour les amateurs de sensations fortes.
Commencez par vous connecter de façon anonyme :
% cvs -d:pserver:anonymous@cvs.linux-atm.sourceforge.net.:/cvsroot/linux-atm login
Appuyez sur Entrée à l'invite du mot de passe. Récupérez ensuite l'arborescence :
% cvs -z6 -d:pserver:anonymous@cvs.linux-atm.sourceforge.net.:/cvsroot/linux-atm co -P linux-atm
Il est possible de spécifier une branche particulière :
% cvs -z6 -d:pserver:anonymous@cvs.linux-atm.sourceforge.net.:/cvsroot/linux-atm co -r V2_5_0 linux-atm
Dans tous les cas, un répertoire « linux-atm » contenant la dernière version des sources est créé. Une fois à l'intérieur de ce répertoire, l'option « -d » de CVS n'est plus nécessaire. Par exemple, tapez :
% cvs -z6 up -d
pour obtenir les modifications apportées au référentiel (l'option « -d » de l'exemple se rapporte à la sous-commande « up » et n'a rien à voir avec le paramètre « -d » employé pour spécifier l'emplacement de la racine CVS).
Après avoir récupéré l'arborescence, exécutez le script autotools dans le répertoire de plus haut niveau avant d'entamer la configuration, la compilation et l'installation.
# ./autotools Running aclocal... Running autoconf... Running autoheader... Running automake... automake: configure.in: installing `./install-sh' automake: configure.in: installing `./mkinstalldirs' automake: configure.in: installing `./missing' configure.in: 26: required file `./ltconfig' not found automake: Makefile.am: installing `./INSTALL' automake: configure.in: installing `src/lane/ylwrap' Finished... Now run './configure' and 'make'...
Pour construire un paquet .tar.gz ou un RPM, exécutez respectivement
make dist
ou make rpm
.
Le fichier .tar.gz se trouvera dans le répertoire de plus haut niveau de
l'arborescence tandis que le RPM sera placé dans le répertoire
src/extra/RPMS
.
Une interface web permet de visualiser le contenu du référentiel CVS : http://cvs.linux-atm.sourceforge.net/cgi-bin/viewcvs.cgi/linux-atm/linux-atm/.
Enfin, si vous souhaitez recevoir un courrier électronique pour chaque modification apportée au référentiel, abonnez-vous à la liste de diffusion « linux-atm-commits » : http://lists.sourceforge.net/lists/listinfo/linux-atm-commits.
Cette liste de diffusion est en lecture seule et aucune discussion ni question n'y est autorisée (idem pour les patches). Les discussions ont lieu sur la liste de diffusion linux-atm-general.
Pour installer le paquet, il vous faut :
le paquet lui-même http://linux-atm.sourceforge.net/dist.php
un noyau Linux de type 2.4.x, p.ex. depuis ftp://ftp.kernel.org/pub/linux/kernel/v2.4/
Perl, version 4 ou 5
(si vous souhaitez déverminer les accès mémoire) MPR, p.ex. depuis ftp://ibiblio.org/pub/Linux/devel/lang/c/
Si vous ne souhaitez pas extraire et compiler les sources vous-même, les utilitaires ATM existent également sous forme de paquet RPM installable comme suit :
rpm -ivh linux-atm-x.x.x-x.rpm
Commencez par décompacter le paquet ATM pour Linux :
tar xzvf linux-atm-x.x.x.tar.gz
Ceci crée une arborescence de racine
linux-atm-x.x.x/
.
On notera les répertoires suivants :
doc/
documentation au format SGML DocBook (ce HOWTO compris)
src/sigd/
démon de signalisation UNI 3.0, UNI 3.1 et UNI 4.0 atmsigd
src/saal/
bibliothèque de signalisation AAL (SSCOP, SSCF et SAAL)
src/qgen/
gestion des messages de type Q.2931
src/ilmid/
démon d'enregistrement d'adresses ILMI : ilmid
src/maint/
utilitaires de maintenance ATM : atmaddr, atmdiag, atmdump, atmloop, atmtcp, enitune, esi, sonetdiag, saaldump et zntune
src/test/
programmes de test : align, aping, aread, awrite, br, bw, isp, ttcp_atm, window
src/arpd/
outils et démon ATMARP : atmarp, atmarpd
src/led/
démon LAN Emulation : zeppelin
src/lane/
serveurs LAN Emulation : bus, lecs, les
src/mpoad/
démon MPOA (Multi-Protocol Over ATM) : mpcd
src/debug/
outils d'examen : delay, ed, encopy, endump, svctor, zndump et znth
src/lib/
bibliothèques pour démons et applications
src/man/
pages de manuel diverses
src/extra/
outils supplémentaires et fichiers de directives RPM.
src/config/
fichiers de configuration et exemples de fichiers de type rc
src/switch/
unité de commutation (en cours de développement)
Avertissement | |
---|---|
Si vous n'avez pas l'habitude de compiler et d'installer un nouveau noyau, reportez-vous au guide pratique du noyau Linux (Linux Kernel HOWTO). |
Après avoir décompacté le paquet du noyau, exécutez la commande habituelle au sommet de l'arborescence des sources du noyau : make config, make menuconfig ou make xconfig. Activez ensuite :
Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)
Les options suivantes doivent apparaitre :
Asynchronous Transfer Mode (ATM, EXPERIMENTAL) (CONFIG_ATM) Use "new" skb structure (CONFIG_ATM_SKB) Classical IP over ATM (CONFIG_ATM_CLIP) Do NOT send ICMP if no neighbour (CONFIG_ATM_CLIP_NO_ICMP) LAN Emulation (LANE) support (CONFIG_ATM_LANE) Multi-Protocol Over ATM (MPOA) support (CONFIG_ATM_MPOA) ATM over TCP (CONFIG_ATM_TCP) Efficient Networks ENI155P (CONFIG_ATM_ENI) Enable extended debugging (CONFIG_ATM_ENI_DEBUG) Fine-tune burst settings (CONFIG_ATM_ENI_TUNE_BURST) Enable 16W TX bursts (discouraged) (CONFIG_ATM_ENI_BURST_TX_16W) Enable 8W TX bursts (recommended) (CONFIG_ATM_ENI_BURST_TX_8W) Enable 4W TX bursts (optional) (CONFIG_ATM_ENI_BURST_TX_4W) Enable 2W TX bursts (optional) (CONFIG_ATM_ENI_BURST_TX_2W) Enable 16W RX bursts (discouraged) (CONFIG_ATM_ENI_BURST_RX_16W) Enable 8W RX bursts (discouraged) (CONFIG_ATM_ENI_BURST_RX_8W) Enable 4W RX bursts (recommended) (CONFIG_ATM_ENI_BURST_RX_4W) Enable 2W RX bursts (optional) (CONFIG_ATM_ENI_BURST_RX_2W) ZeitNet ZN1221/ZN1225 (CONFIG_ATM_ZATM) Enable extended debugging (CONFIG_ATM_ZATM_DEBUG) Enable usec resolution timestamps (CONFIG_ATM_ZATM_EXACT_TS) IDT 77201 (NICStAR) (CONFIG_ATM_NICSTAR) Use suni PHY driver (155Mbps) (CONFIG_ATM_NICSTAR_USE_SUNI) Use IDT77015 PHY driver (25Mbps) (CONFIG_ATM_NICSTAR_USE_IDT77105) Madge Ambassador (Collage PCI 155 Server) (CONFIG_ATM_AMBASSADOR) Enable debugging messages (CONFIG_ATM_AMBASSADOR_DEBUG) Madge Horizon [Ultra] (Collage PCI 25 and Collage PCI 155 Client) Enable debugging messages (CONFIG_ATM_HORIZON_DEBUG) Interphase ATM PCI x575/x525/x531 (CONFIG_ATM_IA) Enable debugging messages (CONFIG_ATM_IA_DEBUG)
Les paramètres « burst » du gestionnaire ENI sont ajustables. Les modifier peut s'avérer nécessaire si le positionnement par défaut provoque des épuisements de tampons mémoire lors des transferts PCI. On se reportera à la documentation en ligne relative à « CONFIG_ATM_ENI_TUNE_BURST » pour une explication détaillée de l'impact de ce paramètre.
Le fichier drivers/atm/nicstar.h
contient les variables sur lesquelles on peut jouer pour le pilote IDT 77201.
Les gestionnaires peuvent être employés avec certaines cartes compatibles. La référence la plus à jour pour ces dernières se trouve sur la page d'information relative à ATM on Linux.
Recompilez ensuite le noyau et redémarrez.
Si vous avez activé le pilote ENI155p-MF, deux lignes semblables aux suivantes devraient apparaître (512kB pour la version -C, 2048kB pour la version -S) :
eni(itf 0): rev.0,base=0xff400000,irq=10,mem=512kB (00-20-EA-00-07-56) eni(itf 0): FPGA,MMF
Si vous avez activé le pilote ZN1221 / ZN1225, il apparaît des messages du genre :
zatm(itf 0): rev.3,base=0xf800,irq=11,mem=128kB,MMF (00-20-D4-10-2A-80) zatm(itf 0): uPD98401 0.5 at 30.024 MHz zatm(itf 0): 16 shapers, 32 pools, 2048 RX, 3958 VCs
Notez qu'une carte de révision 3 ou plus est nécessaire pour une carte-mère équipée d'un jeu de composants Triton.
Si vous n'avez activé que le pilote ATM au-dessus de TCP, aucun message n'apparaît au démarrage parce que les périphériques correspondants ne sont créés qu'au moment de l'invocation de la commande atmtcp.
Si on désire analyser d'éventuels problèmes relatifs aux allocations mémoire, il est nécessaire d'installer MPR avant de compiler les outils ATM.
Si vous récupérez un paquet RPM binaire, MPR s'installe comme suit :
rpm -ivh mpr-x.x-x.rpm
Si vous partez des sources, décompactez
mpr-x.x.tar.gz
ainsi :
tar xzvf mpr-x.x.tar.gz
Puis exécutez les commandes suivantes :
cd mpr-x.x
./configure x86-linux
make
make install
Une détection automatique de certains usages erronés des fonctions
malloc
et free
aura alors lieu
automatiquement si les utilitaires ont été compilés après installation de MPR.
Le suivi des allocations est activé en positionnant MPRPC
et MPRFI
.
Reportez-vous aux fichiers doc/mpr.html
et
doc/mpr.ps
dans le paquet MPR pour davantage de
détails.
Bien que le débogage des allocations n'implique qu'un léger surcoût à l'exécution, ces variables d'environnement ne sont pas positionnées par défaut.
Pour finir, configurez et compilez les outils ATM. La configuration n'est requise que si votre commutateur utilise UNI 3.1 ou 4.0 ou s'il présente certains dysfonctionnements. Les options de configuration sont activées par passage au script ./configure du paquet linux-atm.
Note | |
---|---|
Exécutez ./configure --help à partir de la racine de l'arborescence linux-atm pour visualiser toutes les options disponibles. |
Les commandes suivantes compilent les utilitaires ATM :
cd linux-atm-x.x.x
./configure
make
make install
Sauf spécification particulière lors de l'invocation de la commande
./configure, make install installera
les exécutables dans les répertoires
/usr/local/bin
et
/usr/local/sbin
.
À l'exception du fichier hosts.atm
(qui est installé dans
le répertoire /etc
), les fichiers de
configuration se situeront en
/usr/local/etc
.
Les bibliothèques et les fichiers d'en-tête sont respectivement copiés dans
/usr/local/lib
et
/usr/local/include
. Les pages de manuel
se retrouvent dans /usr/local/man
.
Certains programmes reposent sur des paquets de grande taille qui ne
sont pas contrôlés par linux-atm. Pour d'autres, des patches sont fournis dans
le paquet ATM-Linux. Ils se trouvent dans le répertoire
src/extra
de la distribution ATM-Linux.
Les paquets suivants sont disponibles :
- tcpdump
capture de trafic réseau (amélioré pour ATM)
- ANS
serveur de noms ATM (repose sur named 4.9.5)
Notez que text2atm emploie automatiquement ANS s'il est disponible, et que celui-ci ne doit dès lors être installé que sur les systèmes qui fournissent le service de résolution de noms ou lorsque des outils de maintenance au fait d'ATM sont requis (nslookup, …).
Le script hosts2ans.pl dans le répertoire
src/extra/ANS/
convertit un fichier
/etc/hosts.atm
en un fichier de zone ANS. Son
utilisation est décrite en tête de fichier.
Cette partie décrit des options de configuration propres à chaque type de périphériques ainsi que des méthodes de diagnostic ATM ou SONET générales. Reportez-vous à la documentation du périphérique pour les détails relatifs à son installation et aux méthodes de diagnostic.
En l'absence de véritable matériel ATM, vous pouvez utiliser l'API par l'intermédiaire du gestionnaire ATM au-dessus de TCP. Il émule des périphériques ATM qui sont directement connectés les uns aux autres à distance (c.-à-d. sans manipulation de paires VPI/VCI).
Pour établir un lien (bidirectionnel) entre deux systèmes, devenez root sur chacun d'entre eux (ou exécutez les deux commandes sur le même système pour connecter deux interfaces) et exécutez la commande suivante sur l'un d'eux (que l'on désignera par « a ») :
# atmtcp virtual listen
Puis, sur l'autre système (« b ») :
# atmtcp virtual connect adresse_de_a
Les utilitaires atmtcp émettront des messages au fur et à mesure de leur avancement. Par exemple :
Link 0: virtual interface 2 Link 1: incoming ATMTCP connection from 127.0.0.1
et
Link 0: virtual interface 3 Link 1: ATMTCP connection to localhost
On notera que la commande atmtcp s'exécute en permanence et que l'interrompre brise le lien virtuel.
Une même machine peut accepter plusieurs liens en spécifiant des numéros de port différents (2812 par défaut). Aucun traitement AAL n'est effectué et il n'est par conséquent pas possible d'employer une couche d'adaptation différente (p.ex. AAL0) de celle utilisée à l'émission.
Les cartes ZeitNet ZN1221 et ZN1225 emploient des réserves de mémoire allouées à l'avance pour la réception. Dés qu'un circuit virtuel d'une certaine SDU est activé en réception, la réserve correspondante est remplie de tampons vides par le gestionnaire. La carte consomme les tampons lors de la réception et, lorsque leur nombre passe en dessous d'une certaine limite, le gestionnaire alloue à nouveau la réserve.
Les limites inférieures et supérieures du nombre de tampons libres ainsi que la valeur limite pour l'adaptation à un nouveau décalage de données (voir ci-dessous) sont ajustables grâce au programme zntune. Emploi :
zntune
[-l marque_basse
] [-h marque_haute
] [-t seuil
] interface
[réserve
]
Les modifications sont appliquées à toutes les réserves si aucun indice de réserve n'est spécifié. La réserve 2 stocke les paquets de 64 octets, la réserve 3 les paquets de 128 octets, etc. Les réserves 0 et 1 ne sont pour l'instant pas utilisées.
La configuration courante ainsi que des statistiques d'utilisation peuvent être obtenues en invoquant la commande zntune sans paramètre supplémentaire :
zntune
[-z] interface
[réserve
]
La colonne « Size » indique la taille de tampon mémoire en octets. La colonne « Ref » correspond au nombre de VC ouverts qui emploient cette réserve. La colonne « Alarm » indique combien de fois le nombre de tampons mémoire disponibles a franchi la limite basse depuis la dernière remise à zéro des compteurs. De même, la colonne « « Under » » fournit le nombre d'unités de données de protocole (PDU, Protocol Data Unit) jetées à cause d'un manque de mémoire.
Les colonnes « Offs », « NxOf », « Count » et « Thres » indiquent l'état d'alignement. « Offs » est le décalage des données utiles dans les PDU attendues. Dans le cas d'une copie simple, les tampons de réception sont alignés de telle sorte que les données soient reçues à partir de frontières de page. « NxOf » correspond au décalage des données utiles de la dernière PDU reçue pour laquelle le décalage diffère de celui attendu. « Count » indique le nombre de PDU reçues consécutivement avec un décalage de « NxOf ». Enfin, lorsque « Count » atteint « Thres », « NxOf » devient la nouvelle valeur de décalage.
L'option -z
permet de remettre à zéro
les compteurs « Alarm » et
« Under ».
Des informations sur l'état du système ATM sont accessibles via les
fichiers du répertoire /proc/net/atm/
.
/proc/net/atm/arp
contient des informations propres
à CLIP (Classical IP over ATM), cf.
CLIP.
Les périphériques ATM actifs sont énumérés dans le fichier
/proc/net/atm/devices
.
Chaque entrée comprend le numéro de l'interface, son type, l'identifiant
ESI (End System Identifier) ainsi que des compteurs d'usage. Ces derniers
correspondent à ceux fournis par l'utilitaire
atmdiag.
Les périphériques ATM peuvent déclarer des enregistrements de la forme
(par exemple type:indice
eni:0
).
Les fichiers /proc/net/atm/pvc
et
/proc/net/atm/svc
énumèrent les sockets de type PVC et
SVC. L'interface et la paire d'indices VPI, VCI est donnée pour chaque
socket. Dans le cas des PVC, cette information est suivie du type d'AAL, de
la classe de trafic et du PCR en réception et en émission. Pour les SVC, on
trouve l'état du SVC et l'adresse du correspondant. Les SVC de numéro
d'interface 999 sont destinés à des mesures de contrôle particulières comme
indiqué dans la colonne « State ».
Enfin, le fichier /proc/net/atm/vc
comprend
les tailles de tampon mémoire et d'autres données internes pour
les sockets ATM.
L'utilitaire atmdiag permet de récupérer divers compteurs d'usage des gestionnaires de périphériques ATM. Reportez-vous à la page de manuel associée pour davantage de détails.
L'outil de diagnostic SONET peut s'employer pour surveiller l'état du lien et pour simuler des erreurs. Pour obtenir les compteurs d'usage SONET, invoquez-le avec l'indice de l'interface ATM en argument. Par exemple :
% sonetdiag 0
L'option -z
remet les compteurs
à zéro :
# sonetdiag -z 0
Les erreurs suivantes peuvent être simulées[1] :
- sbip
insertion d'erreur de section (B1)
- lbip
insertion d'erreur de ligne (B2)
- pbip
insertion d'erreur de chemin (B3)
- frame
perte de trame en réception (RX)
- los
perte de signal
- lais
insertion d'un signal d'alarme de ligne
- pais
insertion d'un signal d'alarme de chemin
- hcs
insertion d'erreurs de somme de contrôle de l'en-tête
Une erreur est activée par ajout du mot-clé correspondant à la ligne de commande. L'erreur est désactivée en préfixant le mot-clé par un signe négatif, par exemple :
a# sonetdiag -z 0 >/dev/null b# sonetdiag -z 0 >/dev/null a# sonetdiag 0 los a# sonetdiag 0 -los b# sonetdiag 0 | grep BIP Section BIP errors: 56200 Line BIP errors: 342 Path BIP errors: 152 a# sonetdiag 0 | grep FEBE Line FEBE: 342 Path FEBE: 152
Si des insertions d'erreurs sont demandées, leurs identifiants sont indiqués lorsque les compteurs sont relevés via sonetdiag. On notera que le matériel peut spontanément désactiver certaines insertions d'erreur.
Les circuits permanents s'utilisent pour des machines directement connectées ou reliées à un commutateur. Dans le dernier cas, la transmission des cellules doit être activée manuellement au niveau du commutateur.
aread/awrite et br/bw sont des programmes élementaires donnant accès à l'API ATM. awrite transmet la chaîne de texte donnée en deuxième argument via une PDU AAL5. aread reçoit une PDU AAL5 et l'affiche en hexadécimal. Ces deux programmes affichent également la valeur de retour des appels système correspondants ainsi que celle de errno.
bw transmet le contenu de son entrée standard ou un flux de données arbitraires (si on lui passe un nombre en quatrième argument). Les données transitent dans des PDU AAL5 de 8 Ko. br reçoit les PDU AAL5 et les affiche sur sa sortie standard.
Le premier argument des commandes aread, awrite, br et bw correspond à l'adresse du circuit permanent, à savoir le numéro de l'interface ATM, le VPI et le VCI séparés à chaque fois par un point. Le numéro de l'interface peut être omis s'il est nul. Par exemple :
% awrite 1.0.42 hi
Certains matériels ne supportent qu'un VPI nul. Par ailleurs, la plage
des VCI peut être limitée, p.ex. entre 0 et 1023.
Le numéro de l'interface ATM s'obtient à partir des messages
d'initialisation du gestionnaire ATM concerné.
atm0
correspond à l'interface 0,
atm1
correspond à l'interface 1, etc.
Dans un système muni d'un véritable périphérique ATM (autre que
atmtcp donc), celui-ci se situe normalement
en atm0
.
L'utilitaire aping émet et reçoit de petites PDU AAL5 via un PVC. Il s'attend à ce que les messages soient renvoyés en écho à l'autre extrémité ou à ce qu'une application similaire y émette un flux de messages. aping signale une erreur si rien n'est reçu pendant une certaine durée. Il s'invoque comme aread, en spécifiant le PVC.
Pour des tests plus poussés, servez-vous de la version modifiée de ttcp incluse dans le paquet. La version originale est disponible à l'adresse : ftp://ftp.sgi.com/sgi/src/ttcp/. Les options suivantes ont été ajoutées :
-a
emploi natif d'ATM au lieu d'UDP/TCP. L'adresse doit être de cette forme pour les PVC :
[
. Pour les SVC, il s'agit d'une adresse terminale ATM.itf.
]vpi.vci-P
num
utilisation d'une connexion CBR avec un débit crête de
num
cellules par secondes. Une classe de trafic UBR est appliquée par défaut.-C
désactivation des sommes de contrôle (UDP)
Exemples :
%a ttcp_atm -r -a -s 0.90 %b ttcp_atm -t -a -s 0.90
Les cellules peuvent être formées et analysées avec l'utilitaire atmdump pour les périphériques dont le gestionnaire permet les accès directs aux cellules (mode AAL0). Par exemple :
a% sleep 10; date | ./atmdump -t 1 -c 0.51 b% ./atmdump 0.51 825079645.192480: VPI=0 VCI=51, GFC=0x0, CLP=1, Data SDU 1 (PTI 1) 46 72 69 20 46 65 62 20 32 33 20 31 32 3a 34 37 3a 32 35 20 47 4d 54 20 31 39 39 36 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Les adresses ATM étant peu pratiques à manipuler, la plupart des outils
ATM acceptent également des noms au lieu des adresses numériques.
La conversion entre les noms et les adresses s'effectue via le fichier
/etc/hosts.atm
dont la structure est analogue à celle
du fichier /etc/hosts
:
adresse_numérique
nom(s)
Par exemple :
47.0005.80FFE1000000F21A26D8.0020EA000EE0.00 pc2-a.fqdn pc2-a 47.0005.80FFE1000000F21A26D8.0020D4102A80.00 pc3-a.fqdn pc3-a
L'adresse numérique est spécifiée dans un des formats décrits dans
[api].
L'adresse d'un système Linux peut être déterminée avec la commande
atmaddr -n
(voir également la
section
Configuration manuelle d'adresse).
De nombreux outils ATM tentent également d'obtenir le nom qui correspond à une adresse lorsqu'ils affichent cette dernière. Le premier nom qui apparaît dans le fichier en regard d'une adresse est alors utilisé.
Outre les adresses ATM pour les SVC, les adresses des PVC peuvent également
être stockées dans le fichier /etc/hosts.atm
.
Lorsque différents types d'adresses correspondent au même nom d'hôte, la
première dont le type convient est employée. Ainsi, lorsqu'une application
ne demande que des adresses de SVC, celles des PVC sont ignorées.
Si vous avez accès au service de nom ATM (ATM Name Service), par exemple
parce que vous avez installé l'option ANS, vous pouvez l'employer en
remplacement ou en complément du fichier de noms en spécifiant le nom
de l'hôte qui héberge le service ANS dans le fichier
/etc/resolv.conf
.
La liste des codes téléphoniques doit être connue pour effectuer la résolution inverse des adresses E.164. Cette liste se trouve sur le site de l'ITU-T (International Telecommunications Union). La liste des codes E.164 nationaux assignés par l'ITU-T est disponible aux formats PDF et Word.
Note | |
---|---|
Si l'URL venait à changer, le document devrait être facilement localisé en utilisant le moteur de recherche du site. |
Le script src/lib/pdf2e164_cc.pl du paquet atm-linux permet de créer un tableau des codes nationaux E.164 à partir de la version PDF. Par exemple :
perl pdf2e164_cc.pl e164_xxx.pdf
>/etc/e164_cc
Le script s'appuie sur l'utilitaire pdftotext. Celui-ci est disponible avec l'application xpdf.
Pages de manuel : atmsigd(8) atmsigd.conf(4)
Notez que la prise en charge point-à-multipoint d'atmsigd est très limitée : seul l'emploi en tant que feuille d'un arbre point-à-multipoint fonctionne.
Par défaut, atmsigd est configuré pour se
conformer à la version d'UNI choisie dynamiquement. Il peut être compilé
pour UNI 3.0, 3.1 ou 4.0 en employant l'argument
--with-uni=VERSION
du script
./configure au sommet des sources du paquet
linux-atm.
Notez que la configuration de atmsigd est assez contraignante. Il s'arrête souvent en cas d'anomalie. Ceci devrait changer dans le futur.
atmsigd cherche un fichier de configuration
à l'emplacement spécifié via l'option
-c
.
/usr/local/etc/atmsigd.conf
correspond à l'emplacement
par défaut.
ILMI offre un mécanisme de configuration automatique des adresses. En l'absence de commutateur ou si celui-ci ne gère pas ILMI, les adresses ATM doivent être renseignées manuellement (se reporter à la section Configuration manuelle d'adresse). On notera que le démon ILMI ne doit pas être employé avec des interfaces pour lesquelles les adresses sont positionnées manuellement.
Le démon ILMI est invoqué comme suit :
ilmid
[-b] [-d] [-i ip_locale
] [-l fichier_journal
] [-q qos
] [-u version_uni
] [-v] [-x] [itf
]
-b
arrière-plan. S'exécute dans un processus fils après initialisation.
-d
messages de débogage. Par défaut, ilmid est très discret.
-i
ip_locale
adresse IP à annoncer au commutateur quand il en demande une. Elle est spécifiée sous forme décimale pointée ou textuelle. Par défaut, ilmid la détermine de façon heuristique.
-l
fichier_journal
fichier d'enregistrement des messages de diagnostic (au lieu de la sortie standard). Le nom spécial
syslog
implique l'envoi des messages vers l'enregistreur système syslog.-q
qos
configure la classe de service pour le circuit ILMI. Par défaut une classe UBR à la vitesse du lien est employée.
-u
version_uni
version d'UNI. Les valeurs possibles sont :
3.0
,3.1
, et4.0
. Le point est facultatif. La valeur employée par défaut dépend de la façon dont ilmid a été compilé. Il s'agit typiquement de la valeur3.0
.-v
verbosité de débogage accrue.
-x
désactive l'inclusion des liaisons de variables dans les ColdstartTrap SNMP. Certains commutateurs (les LS1000 par exemple) ne fonctionnent que si cette option est activée.
En l'absence de numéro d'interface, ilmid se sert de l'interface 0. La commande atmaddr permet de vérifier le succès de l'enregistrement d'adresse.
L'agent ne supporte que les procédures d'enregistrement d'adresse spécifiées dans la section 5.8 des spécification UNI 3.1 d'ATM Forum. Ces procédures impliquent l'enregistrement du préfixe réseau de l'hôte par le commutateur tandis que l'hôte enregistre en retour l'adresse finale auprès du commutateur. L'hôte y parvient en ajoutant un identificateur de système (ESI/End System Identifier) et un octet sélecteur nul au préfixe réseau enregistré par le commutateur. L'identificateur correspond à l'adresse physique ou MAC de l'interface ATM.
Si votre commutateur ne prend pas en charge ILMI, vous devez positionner manuellement l'adresse ATM au niveau du commutateur et de l'ordinateur. Vérifiez au préalable qu'ilmid est désactivé et utilisez la commande atmaddr pour spécifier la ou les adresses.
Page de manuel : atmaddr(8)
La configuration du commutateur dépend de son modèle. Par exemple, pour un Fore ASX-200 :
conf nsap route newadresse_nsap
152port
vpi
c'est-à-dire
conf nsap route new 47000580ffe1000000f21510650020ea000ee000 152 1a2 0 |<---- préfixe NSAP ---->||<--ESI--->|^^ SEL
La longueur de l'adresse NSAP complète doit toujours être de 40 chiffres hexadécimaux. Il est possible d'employer des adresses avec un préfixe différent et un ESI différent de ceux des périphériques. La valeur de l'octet de sélection (SEL) est ignorée.
Il est également possible d'utiliser deux cartes ATM directement connectées sans avoir besoin de commutateur. Ceci est très pratique pour des environnements de test simples.
Un câblage adéquat est nécessaire si vous employez du câble UTP ou STP-5. Nos essais avec des câbles croisés standard 100Base-T n'ont rien donné. Le câblage est différent comme indiqué sur la figure suivante :
RJ45 RJ45 1 ------------ 7 2 ------------ 8 7 ------------ 1 8 ------------ 2 Les broches 3, 4, 5, 6 ne sont pas connectées.
Les couleurs aux extrémités des connecteurs RJ45 permettent de mieux illustrer ce montage. Le premier connecteur utilise le câblage ci-dessous :
RJ45-1 1 - marron 2 - blanc/marron 3 - non connecté 4 - non connecté 5 - non connecté 6 - non connecté 7 - orange 8 - blanc/orange
Et le second connecteur le câblage suivant :
RJ45-2 1 - orange 2 - blanc/orange 3 - non connecté 4 - non connecté 5 - non connecté 6 - non connecté 7 - marron 8 - blanc/marron
Un câblage 1 -- 7 et 2 -- 8 fournit une boucle des plus économiques.
On considérera par la suite deux machines nommées « virgil » et « nestor ».
Une extrémité de la connexion ATM doit activer le démon réseau atmsigd tandis que l'autre se sert de la version utilisateur usuelle. On exécute sur nestor la commande :
atmsigd -b -m network
et sur virgil :
atmsigd -b
ILMI n'est pas utilisable sans commutateur ATM. Créez un fichier
/etc/hosts.atm
avec deux adresses bidon, par
exemple :
47.0005.80FFE1000000F21A26D8.0020EA000EE0.00 nestor-atm 47.0005.80FFE1000000F21A26D8.0020D4102A80.00 virgil-atm
Ces adresses sont complètement fantaisistes mais cela n'a pas grande importance tant qu'on n'est pas connecté à un réseau ATM public ou privé. Les adresses sont transmises aux gestionnaires de périphériques via (sur virgil) :
atmaddr -a virgil-atm
et (sur nestor) :
atmaddr -a nestor-atm
Démarrez à présent atmarpd sur les deux machines de la façon habituelle. Vous devriez (en principe) disposer d'un système ATM opérationnel. Pour activer IP au-dessus d'ATM, suivez les instructions données à la section IP au-dessus d'ATM.
Le compilateur de messages Q.2931 génère également un embellificateur pour
les messages Q.2931. L'exécutable se nomme q.dump
et se trouve dans le répertoire src/qgen
. Notez que
la commande make install ne le copiera nulle part.
q.dump attend une suite d'octets sous forme de chiffres hexadécimaux séparés par des espaces sur l'entrée standard et affiche la structure du message si celui-ci est analysable. Exemple :
% echo 09 03 80 00 05 5A 80 00 06 08 80 00 02 81 83 00 48 \ 00 00 08 | ./q.dump _pdsc = 9 "Q.2931 user-network call/connection control message" _cr_len = 3 call_ref = 8388613 (0x800005) msg_type = 0x5a "RELEASE COMPLETE" _ext = 1 _flag = 0 "instruction field not significant" _action_ind = 0 "clear call" msg_len = 6 (0x6) _ie_id = 0x08 "Cause" _ext = 1 cause_cs = 0 "ITU-T standardized" _flag = 0 "instruction field not significant" _action_ind = 0 "clear call" _ie_len = 2 (0x2) _ext = 1 location = 1 "private network serving the local user" _ext = 1 cause = 3 "no route to destination"
IP via ATM est pris en charge via CLIP (Classical IP over ATM) comme défini dans la RFC1577 [RFC1577], LANE (LAN Emulation, cf. [lanev1] et [lanev2]) et MPOA (Multi-Protocol Over ATM, cf. [mpoav1]) en mode client.
Un démon gère la génération et l'analyse des requêtes ARP. Le noyau ne maintient qu'une petite table de recherche avec des informations partielles.
Pages de manuel : atmarpd(8), atmarp(8)
atmsigd et ilmid
doivent être démarrés avant atmarpd. Utilisez
l'option -b
pour être sûr que ces
démons sont correctement synchronisés. Par exemple :
#!/bin/sh atmsigd -b ilmid -b atmarpd -b ...
Le script suivant ne fonctionnera par contre que rarement :
#!/bin/sh atmsigd & ilmid & atmarpd & ...
atmarp permet de configurer ATMARP. Une fois atmsigd, ilmid et atmarpd démarrés, créez une interface et configurez-la :
# atmarp -cnom_interface
# ifconfig atm0adresse_locale
options_supplémentaires_éventuelles
up
Par exemple :
# atmarp -c atm0 # ifconfig atm0 10.0.0.3 up
Dans le cas où seuls des PVC sont employés, on peut les créer avec :
# atmarp -s 10.0.0.4 0.0.70
L'encapsulation est de type NULL si le mot clef
null
est passé en argument.
Notez qu'ARP demande une encapsulation de type LLC/SNAP. Le type NULL
est donc limité aux PVC.
L'usage de SVC peut nécessiter davantage de configuration. Si l'hôte joue
le rôle de serveur ATMARP sur ce sous-réseau IP logique (LIS, Logical IP
Subnet), aucune autre opération n'est nécessaire. Sinon, l'adresse ATM du
serveur ARP doit être renseignée. Ceci s'effectue en créant une entrée avec
l'option arpsrv
. Par exemple :
# atmarp -s \ 10.0.0.0 47.0005.80.ffe100.0000.f215.1065.0020EA000756.00 \ arpsrv
Le serveur ATMARP doit être opérationnel en préalable à la configuration des clients.
La table ATMARP du noyau peut se lire via
/proc/net/atm/arp
.
La table utilisée par atmarpd est
régulièrement affichée sur la sortie standard lorsque le démon a été
invoqué avec l'option -d
.
Sans cette option de configuration, la table est écrite dans le fichier
atmarpd.table
du répertoire de sortie (par défaut
/var/run
, modifiable avec l'option
-D
). La commande
atmarp -a permet de la lire.
Outre CLIP, LANE (Lan Emulation) convoie du trafic IP au-dessus d'ATM. LANE
émule le comportement d'un (ancien) réseau local, par exemple dans son
aspect diffusion des messages. Le serveur LANE est décrit dans le fichier
src/lane/USAGE
du paquet linux-atm.
Pages de manuel : bus(8), lecs(8), les(8) et zeppelin(8)
Si vous comptez utiliser plusieurs clients ou services LANE, chaque démon doit disposer de sa propre adresse ATM locale. Tous les démons emploient la même prise d'accès (SAP, Service Access Point) et la distinction entre connexions s'effectue donc avec les adresses ATM.
Tout comme CLIP, LANE se compose d'un processus démon en espace utilisateur, zeppelin, qui gère le protocole LANE, et d'une partie noyau qui s'occupe du cache ARP LANE.
atmsigd et ilmid doivent être lancés avant zeppelin. Le noyau crée une nouvelle interface au démarrage de zeppelin. Celle-ci peut alors être configurée :
# zeppelinoptions_supplémentaires_éventuelles
& # ifconfig lec0adresse_locale
options_supplémentaires_éventuelles
up
Dans l'exemple suivant, deux clients LANE sont démarrés. Le premier client
utilise l'interface par défaut lec0, l'adresse
d'écoute par défaut et se connecte au pseudo-réseau par défaut. Le second
client LANE se voit attribuer l'interface lec2,
s'attache à l'adresse locale ma_machine3
,
essaie de joindre le pseudo-réseau mon_réseau
et fait office de pont entre le pseudo-réseau et le segment
Ethernet. L'adresse ma_machine3
est
spécifiée dans le fichier /etc/hosts.atm
. Le reste du
fonctionnement du pont est décrit dans le mini-HOWTO correspondant,
[bridge-howto].
# zeppelin & # ifconfig lec0 10.1.1.42 netmask 255.255.255.0 \ broadcast 10.1.1.255 up # # zeppelin -i 2 -l ma_machine3 -n mon_réseau -p & # ifconfig lec2 10.1.2.42 netmask 255.255.255.0 \ broadcast 10.1.2.255 up
zeppelin emploie l'interface lec0 par défaut et s'attache à une adresse ATM dont l'octet de sélection est à zéro. Il essaie de contacter le LECS (LAN Emulation Configuration Server) à l'adresse standard et de joindre le pseudo-réseau spécifié par ce dernier. zeppelin utilise la MTU définie par le LES et n'agit pas en tant que proxy LEC (LAN Emulation Client). Ce paramétrage est modifiable avec les options de ligne de commandes définies dans zeppelin(8).
zeppelin rejoint automatiquement tout pseudo-réseau dont la MTU dépasse les 1516 octets de MTU par défaut. La MTU de l'interface LANE s'ajuste en fonction de la MTU du pseudo-réseau courant.
L'état du cache ARP LANE est accessible via le fichier
/proc/net/atm/lec
. Les adresses MAC, ATM et l'état de
chaque entrée sont affichés. Les identifiants de connexion pour les
enregistrement actifs sont également présents.
Le service LANE (lecs(8), les(8) et bus(8)) se configure au moyen de fichiers. La syntaxe des fichiers de configuration est décrite dans les pages de manuel respectives.
Une description plus détaillée des services LANE de Linux se trouve dans le mémoire d'études de Marko Kiiskilä [kiis].
Le client MPOA de Linux s'inscrit dans la tradition des services ATM divisés en un démon utilisateur et un service noyau. Le démon mpcd traite les paquets de contrôle MPOA tandis que le noyau tient à jour les caches entrant et sortant et effectue le renvoi des paquets.
Page de manuel : mpcd(8)
atmsigd et ilmid doivent être lancés avant mpcd. Puisque MPOA détecte les flux IP à partir du trafic LANE, zeppelin doit être démarré au préalable. L'ordre de lancement des démons zeppelin et mpcd n'est toutefois pas fixé. Ils peuvent être arrêtés et redémarrés indépendamment l'un de l'autre. La méthode la plus simple pour désactiver MPOA consiste à envoyer un signal au démon mpcd.
Ci-dessous se trouve un exemple tiré de la section Émulation de LAN qui démarre deux clients LANE. La configuration a été enrichie de deux clients MPOA alimentés par les clients LANE :
# zeppelin & # ifconfig lec0 10.1.1.42 netmask 255.255.255.0 \ broadcast 10.1.1.255 up # mpcd -s ma_machine1 -l ma_machine2 & # # zeppelin -i 2 -l ma_machine3 -n mon_réseau -p & # ifconfig lec2 10.1.2.42 netmask 255.255.255.0 \ broadcast 10.1.2.255 up # mpcd -i 2 -s ma_machine4 -l ma_machine5 &
Le démon MPOA a besoin de deux adresses ATM locales qu'il emploie pour initialiser et recevoir les connexions de contrôle et de données. Les adresses peuvent être les mêmes que pour zeppelin, par exemple, mais elles doivent différer entre démons mpcd. Par défaut, mpcd ne récupère pas les informations de configuration du LECS. Les options de ligne de commande et un exemple d'emploi de LECS se trouvent dans la page de manuel de mpcd.
Le contenu des caches entrant et sortant de MPOA peut être contrôlé via le
fichier /proc/net/atm/mpc
.
Le client MPOA Linux accepte la classe de trafic CBR pour les SVC directs
au lieu de la classe par défaut UBR. La QoS des SVC à venir est
modifiable par l'intermédiaire de /proc/net/atm/mpc
.
# echo add 130.230.54.146 tx=80000,1600 rx=tx > /proc/net/atm/mpc # # créer assez de trafic pour déclencher un raccourci # cat /proc/net/atm/mpc QoS entries for shortcuts: IP address TX:max_pcr pcr min_pcr max_cdv max_sdu RX:max_pcr pcr min_pcr max_cdv max_sdu 130.230.54.146 80000 0 0 0 1600 80000 0 0 0 1600 Interface 2: Ingress Entries: IP address State Holding time Packets fwded VPI VCI 130.230.4.3 invalid 1160 0 130.230.54.146 resolved 542 151 0 109 ...
Le raccourci avec l'adresse IP
130.230.54.146
a été établi avec
les paramètres ci-dessus. Des patches étendent la détection de flux à
un support complet de niveau 4. Les flux de niveau 4 sont exprimés
sous la forme d'un quintuplet (protocole, adresse locale, port local,
adresse distance, port distant). Ils identifient des flux applicatifs.
Références
[api] Linux ATM API. http://linux-atm.sourceforge.net/API/ . juillet 1996.
[bridge-howto] Bridging mini-Howto. http://www.traduc.org/docs/howto/lecture/Bridge.html . mars 2001.
[kiis] Implementation of LAN Emulation Over ATM in Linux. http://linux-atm.sourceforge.net/misc.php . octobre 1996.