Intégration des Macintoshs dans un réseau IP

Laifa Ahmadi (LITP/IBP) Zoubir Sami (LITP/IBP)

ahmadi@litp.ibp.fr sami@litp.ibp.fr

1 Introduction

L'interconnexion des réseaux AppleTalk et TCP/IP a pour but le partage des ressources (disques, imprimantes...) et l'intégration des Macs dans le monde TCP/IP (messagerie, émulation de terminal, WWW...).

Cet article décrit les protocoles[1 et les logiciels qui permettent cette interconnexion.]

2 Les protocoles AppleTalk

AppleTalk est la famille de protocoles de communication introduite par Apple et implantée en standard sur tous les Macs.

2.1 Les couches AppleTalk

La famille des protocoles AppleTalk est constituée des couches suivantes :

* Couche Physique :

AppleTalk peut utiliser divers supports physiques :

- LocalTalk est le support initial de transmission introduit par Apple. Il s'agit d'une paire torsadée blindée avec une vitesse de transmission de 230.4 Kbits/s.

- PhoneNet de la société Farallon. Il s'agit d'une paire torsadée non blindée avec la même vitesse de transmission que LocalTalk.

- Ethernet est le support bien connu. Dans ce cas le protocole porte le nom d'EtherTalk.

- Token Ring dont on ne parlera pas dans cet article.

* Couche Liaison de données :

Cette couche assure l'interfaçage avec le matériel. AppleTalk utilise une LAP (Link Access Protocols) pour chaque médium : LocalTalk LAP, Ethernet LAP et Token Ring LAP.

LAP Manager effectue la commutation entre les différents supports matériels. L'interface utilisateur est le Tableau de bord "Réseau " du Mac.

* Couche Réseau :

Cette couche est constituée d'un seul protocole : DDP (Datagram Delivery Protocol).

DDP assure la communication entre deux sockets du réseau AppleTalk.

Une socket est une entité logique adressable dans un noeud AppleTalk qu'un client appelle quand il a besoin d'une connexion réseau.

* Couche Transport :

Cette couche contient quatre protocoles :

- RTMP (Routing Table Maintenance Protocol) : ce protocole crée et maintient les tables de routage dans les routeurs AppleTalk en émettant un paquet RTMP toutes les 10 secondes.

Apple a introduit un autre protocole AURP (AppleTalk Update Routing Protocol) plus adapté aux réseaux étendus.

- AEP (AppleTalk Echo Protocol) : vérifie l'accessibilité d'un noeud avant le démarrage d'une session.

- ATP (AppleTalk Transaction Protocol) : protocole garantissant la livraison des paquets DDP à destination sans perte.

- NBP (Name Binding Protocol) : assure la correspondance entre les adresses AppleTalk et les entités nommées qui sont représentées sous la forme objet:type@zone.

Le Sélecteur du Mac est l'interface utilisateur permettant de sélectionner les entités nommées.

* Couche Session :

Cette couche contient les protocoles suivants :

- ADSP (AppleTalk Data Stream Protocol) : responsable de la fiabilité des transmissions des données entre deux sockets.

- ASP (AppleTalk Session Protocol) : sert à établir une session.

- PAP (Printer Access Protocol) : assure la communication entre une station et un service d'impression.

- ZIP (Zone Information Protocol) : permet avec RTMP de mettre à jour la correspondance entre numéros de réseaux et noms de zones.

* Couche Présentation :

- AFP (AppleTalk Filing Protocol) : permet d'accéder aux fichiers d'un serveur AppleTalk distant. AppleShare est basé sur AFP.

- PostScript : langage de description de page d'Adobe.

2.2 AppleTalk phase 2

AppleTalk phase 2 est la version des protocoles AppleTalk introduite par Apple pour dépasser les limitations de la version phase 1.

Cette version a introduit le concept d'adressage étendu : un noeud est identifié par une adresse réseau composée d'un numéro de réseau sur 16 bits et d'un numéro de noeud sur 8 bits. Chaque réseau physique peut recevoir une plage de numéros de réseaux contigus . Un numéro de réseau est compris entre 1 et 65279 et un numéro de noeud entre 1 et 253. Cela permet d'adresser théoriquement plus de 16 millions de noeuds sur le même réseau.

D'autre part, un réseau physique peut supporter jusqu'à 255 noms de zones.

Et enfin, AppleTalk phase 2 introduit les concepts du "Split-Horizon routing " et de l'adressage multicast.

Remarque : LocalTalk supporte AppleTalk phase 2 mais pas l'adressage étendu. Le nombre de noeuds sur un réseau LocalTalk ne peut exéder 254.

2.3 Choix du support Ethernet

La simplicité et le faible coût sont les points forts d'AppleTalk mis en oeuvre sur le réseau LocalTalk. Avec le besoin des applications récentes en bande passante, la vitesse de transmission de 230 Kbits/s devient très pénalisante.

Apple a pris en compte cette contrainte et ainsi les Macs depuis la gamme Quadra et les imprimantes LaserWriter récentes disposent en standard de cartes Ethernet.

Pour les Macs les plus anciens, on peut selon les modèles, soit rajouter un boîtier de connexion via le port SCSI ou série, soit rajouter une carte Ethernet en interne.

3 Interconnexion de réseaux AppleTalk et IP

Pour réaliser l'interconnexion d'un réseau AppleTalk et d'un réseau IP, on utilise une passerelle. En plus du routage AppleTalk, la plupart des passerelles implantent deux protocoles MacIP et IPTalk.

3.1 MacIP

Une passerelle MacIP (appelée aussi passerelle DDP/IP) réalise l'encapsulation des paquets IP dans des paquets DDP pour permettre aux Macs sur LocalTalk d'accéder aux services IP.

* MacIP réalise en plus :

- l'assignation dynamique[2 d'adresses IP aux Macs.

- la réservation d'une plage d'adresses IP3. Le Mac est configuré avec une adresse de cet intervalle et la passerelle garantit que l'adresse ne sera pas utilisée par un autre dispositif.

- la résolution d'adresses : du côté Ethernet elle est effectuée en utilisant le protocole ARP. Du côté du réseau AppleTalk, la passerelle convertit les adresses IP en adresses AppleTalk en utilisant NBP ARP (ou plus rarement DDP ARP).]

* Deux méthodes de routage sont disponibles :

- MacIP subnetting : consiste à considérer le réseau AppleTalk comme un sous-réseau IP avec la passerelle comme routeur IP.

- MacIP forwarding : consiste à considérer le réseau AppleTalk comme une extension du réseau IP. Dans ce cas, la passerelle transmet (forward ) les paquets IP de et vers le réseau AppleTalk.

3.2 IPTalk

IPTalk (appelé aussi KIP, UDP/DDP, et " IP Tunneling ") a été développé à l'Université de Stanford avant l'introduction d'EtherTalk par Apple. Il réalise l'encapsulation des paquets AppleTalk DDP dans des paquets UDP.

IPTalk permet ainsi aux dispositifs AppleTalk d'accéder aux machines UNIX implantant les protocoles AppleTalk (implantation réalisée en utilisant le kit CAP par exemple).

Il permet aussi de relier des réseaux AppleTalk distants sans véhiculer de l'EtherTalk (technique de l'IP tunneling).

IPTalk permet une administration centralisée des réseaux AppleTalk à l'aide de atalkad (AppleTalk administration daemon) qu'on lance sur une machine UNIX. Le démon répond aux requêtes de routage et de configuration de la passerelle en diminuant ainsi le traffic RTMP et ZIP. Les informations de routage sont consignées dans le fichier /etc/atalkatab.

L'inconvénient d'IPTalk est la dégradation des performances à cause du traitement supplémentaire fait par la passerelle : encapsulation des paquets AppleTalk dans des trames IP puis rajout des en-têtes Ethernet. En outre, l'utilisation de IPTalk avec CAP ne permet pas de tirer partie des dispositifs AppleTalk connectés sur Ethernet. CAP peut en effet utiliser directement EtherTalk.

3.3 Passerelles

Plusieurs passerelles mettent en oeuvre MacIP et/ou IPTalk. Citons par exemple :

- GatorBox de Cayman : permet de faire du routage AppleTalk, l'encapsulation DDP/IP et UDP/DDP et de faire office de passerelle NFS-AFP et LPR-PAP.

- FastPath de Shiva : permet de faire du routage AppleTalk, l'encapsulation DDP/IP et UDP/DDP.

- Apple IP Gateway : solution logicielle d'Apple qui permet à un Mac connecté simultanément à un réseau AppleTalk et à un réseau Ethernet TCP/IP de faire office de passerelle DDP/IP.

Ce logiciel peut être utilisé avec AIR (Apple Internet Router) qui fait du routage AppleTalk.

Remarques :

- Ce logiciel réalise uniquement du MacIP forwarding.

- L'extension  AppleTalk/IP Wide Area  de AIR permet de faire de l'IP tunneling.

4 Intégration des Macs dans un environnement UNIX

Pour intégrer Mac et UNIX, on a deux possibilités :

* implanter les protocoles TCP/IP sur Mac

* implanter les protocoles AppleTalk sous UNIX

4.1 Mac sous TCP/IP

Dans cette solution le Mac, qu'il soit directement connecté sur Ethernet ou indirectement par une passerelle DDP/IP, utilise TCP/IP pour communiquer avec le système UNIX.

Le pilote qui implante TCP/IP sous MacOS est MacTCP[4 d'Apple. Il s'agit d'une pile constituée des protocoles IP, ICMP, UDP, ARP, RARP, RIP, BootP et TCP.

MacTCP se sert d'une interface réseau indépendante de celle exploitée par AppleTalk offrant ainsi un accès simultané aux services AppleTalk et TCP/IP.

MacTCP (dernière version 2.0.6) est livré en standard avec le système 7.5. Il consiste essentiellement en un Tableau de bord " MacTCP ".

Parmi les logiciels non commerciaux qui utilisent MacTCP, citons NCSA Telnet (émulation de terminal), Fetch (transfert de fichier), Eudora (messagerie électronique) et Netscape] (navigation dans l'Internet).

4.2 AppleTalk sous UNIX

Deux logiciels du domaine public implantent une partie des protocoles AppleTalk sur stations UNIX : CAP[5 et netatalk6.

Le kit CAP (]Columbia AppleTalk Package) implante les protocoles AppleTalk ATP, NBP, PAP, ASP, AFP, DDP et ZIP. Il utilise deux mécanismes de communication réseau : IPTalk et EtherTalk phase 1 et 2. Comme on l'a mentioné auparavant, le choix d'Ethertalk s'impose pour pouvoir exploiter les dispositifs connectés directement sur Ethernet.

Le kit netatalk implante les protocoles AppleTalk DDP, RTMP, NBP, ZIP, AEP, ATP, PAP, ASP et AFP. Il supporte également EtherTalk phase 1 et 2,

CAP a été porté sur plusieurs plateformes alors que netatalk ne fonctionne que sous SunOS, Ultrix et Linux. Une autre différence importante entre les deux kits est que netatalk est implanté dans le noyau UNIX alors que CAP réside dans l'espace utilisateur. Il en résulte une meilleure performance pour netatalk.

Les deux kits offrent trois services principaux :

- l'impression à partir d'une machine UNIX sur une LaserWriter connectée sur un réseau AppleTalk : papif (CAP) et pap (netatalk).

- serveur AppleShare sur UNIX : AUFS (CAP) et afpd (netatalk).

- l'impression à partir d'un Mac sur une imprimante connectée sur Ethernet ou directement sur une machine UNIX via le démon lpd : lwsrv (CAP) et papd (netatalk).