Obligement - L'Amiga au maximum

Mercredi 29 mars 2017 - 09:06  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


En pratique : Monter un réseau Ethernet
(Article écrit par Laurent Faillie et extrait d'Amiga News - mars 1999)


Bon, ce mois-ci, nous aurions dû commencer à développer notre jeu (rubrique C) mais comme je n'ai pas eu le temps, je vais ressusciter un vieil article (non publié) que j'avais écrit lorsque j'avais récupéré mon VAX. Ce dernier ayant malheureusement fumé (d'ailleurs, si quelqu'un a des cartes pour microVAX II, je suis preneur), j'ai récemment acquis une station Sun. Le sujet de cet article est donc la création d'un mini réseau Ethernet entre mon 4000 et ma Sun. La fin sera un peu plus technique puisque nous aborderons l'exemple d'un réseau hétérogène contenant plusieurs sous-réseaux...

Je ne vais pas refaire un historique ou un descriptif technique des différentes normes de l'Ethernet car cela a déjà été maintes et maintes fois fait. Simplement il faut se souvenir qu'il existe :
  • Deux vitesses de transmissions : 10 et 100 Mb/s (mégabits par seconde).
  • Trois médias :
    • 10Base5, le média utilisé est un gros câble coaxial. Pour s'y connecter, les machines disposent d'une prise AUI sous la forme d'une DB15, d'un câble de connexion pouvant faire plusieurs mètres ("drop cable") et d'un boîtier muni d'une prise vampire nommé "transceiver" et qui s'accroche au câble coaxial. La connexion est de type BUS, c'est-à-dire qu'à moins d'utiliser des appareils complémentaires, le réseau est constitué d'une ou plusieurs sections de ce câble, sans boucle et sans dérivation.

      Réseau Ethernet

      Cette technologie est extrêmement chère et lourde et a tendance à disparaître... sauf dans des environnements hostiles (champs électriques puissants, risques d'orage...) car permettant des blindages importants.

    • 10Base2, le média utilisé est un câble coaxial fin. Cette technologie a été mise au point par Digital dans le but d'avoir quelque chose de plus abordable et flexible que le 10Base5. Il s'agit encore d'une architecture en BUS mais généralement le câble se connecte directement au dos de l'ordinateur par une prise BNC. On aura donc un câble coaxial qui naviguera de machine en machine...

      Réseau Ethernet

    • 10BaseT. C'est le média le plus utilisé actuellement car le plus flexible. En effet, il est basé sur une architecture en étoile, où les ordinateurs sont connectés via des paires torsadées à des concentrateurs. Il est donc possible de rajouter ou de supprimer une machine sans que cela entraîne une modification physique du réseau. Sur les machines, des prises RJ45 sont utilisées. La défaillance d'un câble ou d'un périphérique n'entraîne que la perte de l'ordinateur qu'ils servent et non plus de l'ensemble du réseau comme avec les technologies BUS.

      Réseau Ethernet

  • Enfin, les câbles sont classés en plusieurs catégories :
    • Catégorie 3 : les câbles sont aptes à faire passer de l'Ethernet 10 Mbps.
    • Catégorie 5 : on peut utiliser aussi de l'Ethernet 100 Mb/s.
Attention, lorsque vous allez acheter des câbles, faites bien attention à la catégorie et à la qualité de fabrication car un mauvais câble peut provoquer des pertes importantes de performances. Proscrire les câbles catégorie 2 qui sont réservés aux liaisons téléphoniques. Ne pas utiliser non plus du catégorie 3 avec du Fast Ethernet (100 Mb/s). Par contre, rien ne vous empêche d'utiliser de la catégorie 5 pour des liaisons téléphoniques mais bon... c'est un peu de la confiture au cochon.

Présentation des intervenants

La Sun : il s'agit d'une station UltraSparc 5 sous Solaris 7 et disposant en standard d'une prise Ethernet RJ45 capable de délivrer du 10 comme du 100 Mb/s. Elle a aussi une autre RJ45 avec son contrôleur SCSI mais celle-ci ne sera pas utilisée dans l'exemple. Pas besoin de logiciel supplémentaire car, comme tout système Unix, la gestion des réseaux TCP/IP est incluse dans le système.

Un Amiga 4000/040 sous Workbench 3.0 avec une carte Ethernet Commodore A2065 (prises AUI et BNC). AmigaOS ne gère pas les réseaux en natif, donc il m'a fallu choisir une couche TCP/IP. A l'époque où j'ai connecté mon Amiga à mon VAX, Miami était spécialisé dans la connexion avec Internet par fournisseur d'accès, donc je ne l'ai pas choisi. Je lui ai préféré AmiTCP, en version démo, du CD Fred Fish 10. C'est la dernière version démo disponible (allez faire un tour sur Aminet) mais vous pouvez acquérir des versions plus récentes, en particulier Genesis qui contient des outils de configuration graphiques. Commodore avait aussi développé une couche nommée AS225 mais qui n'a jamais été commercialisée !

Bref, dans cet exemple, on utilisera la version démo d'AmiTCP et à nous les joies des fichiers de configuration textes...

Même s'il est, temporairement je l'espère, en rade, je réserve un emplacement pour mon VAX. Il s'agit d'un microVAX II sous Ultrix 4.3 mais, lorsqu'il sera à nouveau fonctionnel, je lui mettrai NetBSD qui est plus moderne. Il dispose aussi d'une couche IP native (Unix oblige), et d'une prise AUI. Un transceiver me permet de le connecter à un réseau 10BaseT.

Quel médium utiliser

On élimine d'office le 10Base5 réservé aux gros réseaux.

Si les deux machines disposent toutes les deux de prises RJ45 (10BaseT), le plus simple est d'acheter un câble croisé : pour un investissement de moins de 100 FF, vous aurez un réseau parfaitement fonctionnel... mais limité à deux machines.

Si on utilise plus de deux machines, les choses se compliquent. Le 10Base2 sera intéressant si vous pouvez récupérer des câbles coaxiaux et des terminateurs d'occasion : on en trouve assez facilement car beaucoup d'entreprises changent leur réseau vers une technologie 10BaseT beaucoup plus flexible.

Par contre, si vous devez acheter la connectique, il faudra comparer les solutions coax et RJ45 mais cette dernière sera, à mon avis, plus rentable. Les câbles sont moins chers, pas besoin de terminateurs, il faut juste acquérir un concentrateur (hub). Allez voir chez le taïwanais du coin, on peut trouver des concentrateurs quatre ports aux environs de 200 FF.

Revenons maintenant à mon cas. La connexion entre mon 4000 et mon VAX n'a posé aucun problème, ayant récupéré en même temps que ce dernier un segment coaxial, avec les terminateurs associés, connectable sur l'Amiga et un drop câble + transceiver vers du 10Base2 pour l'AUI du VAX.

Avec la Sun, le problème est tout autre : comment connecter l'AUI ou la BNC du Miga avec le RJ45 de la SUN ? Une première solution aurait été d'ajouter un adaptateur pour l'une ou l'autre des machines pour la rendre compatible. La solution à privilégier aurait été un convertisseur AUI -> RJ45 qui aurait été branché au dos de l'Amiga. Coût, environ 200 FF.

Oui, mais à ce prix-là, on trouve aussi des concentrateurs qui permettent de connecter plusieurs machines. Certains comportent aussi une prise BNC pour se connecter à un réseau coaxial. C'est donc la solution que j'ai choisie.

Réseau Ethernet

Malheureusement, tous les magasins que j'ai fait étaient en rupture de stock sur les concentrateurs quatre ou cinq ports, mais j'ai dégoté un concentrateurs neuf ports (8 RJ45 + 1 BNC) pour 300 FF ! Évidemment, pour ce prix là, il ne fait que du 10 Mb/s mais bon, comme l'A2065 ne fonctionne qu'à cette vitesse...

Un seul conseil, si vous le pouvez, faites jouer la concurrence car j'ai fait tous les magasins d'une rue spécialisée de Paris et j'ai gagné plus de 150 FF par rapport au magasin le plus cher, qui lui-même était encore moins cher de plusieurs centaines de francs par rapport à une grande surface (Surcouf).

Passons à la configuration

Comme tout logiciel bien foutu, la distribution d'AmiTCP utilise l'Installer de feu Commodore pour s'installer et se configurer. On clique donc sur l'icône "Install_AmiTCP". Voici les différentes questions qui nous sont posées. Notez que j'ai utilisé l'option "expert" pour que l'on puisse voir toutes les options proposées.

On passera rapidement sur les classiques comme le répertoire dans lequel on souhaite installer le logiciel.
Un nom d'utilisateur : c'est l'utilisateur qui fait fonctionner AmiTCP. Pour définir ses utilisateurs, AmiTCP utilise un fichier qui a le même format que le fameux /etc/passwd cher aux systèmes Unix. Plusieurs utilisateurs peuvent donc cohabiter et auront chacun des droits différents. Je vous laisse le soin d'approfondir la question en lisant la documentation d'AmiTCP.

Nom de la machine : c'est le moment de baptiser votre machine si ce n'est déjà fait. "Miga" est beaucoup plus parlant que 192.168.0.2, non ?

Nom de domaine : nommez maintenant le réseau auquel appartiennent les machines. Pour moi, ça sera "chez.moi".

Vous pouvez ensuite définir plusieurs noms d'alias.

Installer découvrira tout seul la présence de la carte Ethernet et donc que vous souhaitez utiliser ce média. Enfin, chez moi ça marche car l'A2065 existait avant AmiTCP, maintenant savoir s'il détecterait une Adriane II ? De toute façon, toutes les cartes récentes gérant le protocole SANA-II, et elles sont utilisables avec AmiTCP, mais il faudra les configurer manuellement. Leur documentation doit l'expliquer...

Vient maintenant le choix de l'adresse IP. Théoriquement, vous pourriez utiliser n'importe laquelle, ce qui serait une très mauvaise idée ! Si un jour vous connectez votre réseau sur l'Internet, boum ! Si votre réseau utilise les adresses d'un serveur... vous ne pourrez plus y accéder, et si ce sont celles de serveurs DNS, la moitié d'Internet vous sera inaccessible. Bref, à éviter au maximum.

La solution est donc d'utiliser une plage d'adresses réservée aux réseaux privés (ce qui est notre cas). Si vous ne désirez pas trop rentrer dans les détails, utilisez les mêmes données que moi, sinon, pour les plus téméraires, une explication plus technique se trouve à la fin de cet article.

Notre réseau est assez petit (pour être précis, il comporte moins de 254 machines) donc une classe C nous suffira. Notre réseau s'étendra donc des adresses 192.168.0.0 à 192.168.0.255 ; la Sun aura l'adresse 192.168.0.1 et le 4000 l'adresse 2. Comme expliqué à la fin de l'article, n'utilisez pas les adresses 0 ou 255 qui sont réservées.

Le masque de sous-réseau est 255.255.255.0

L'Installer vous demande ensuite l'adresse de la passerelle par défaut. Il s'agit de l'adresse de la machine qui possède un accès vers l'extérieur, mais pour le moment, laissez ce champ vide.

Vient ensuite l'adresse du serveur de nom DNS... vide à nouveau.

Il est possible d'indiquer tous les réseaux qui peuvent être cherchés. On le laisse à "chez.moi", mais on pourrait en saisir plusieurs. Ainsi, si vous demandez au DNS l'adresse de "Zeus", il cherchera un "Zeus.chez.moi" puis dans les autres noms de réseaux que vous aurez saisi.

L'Installer demandera s'il peut modifier la startup-sequence pour vous, ce qui permettra à la couche TCP/IP de démarrer automatiquement au lancement du système.

Faut-il lancer automatiquement Inetd ? Inetd est un dispatcher qui lancera automatiquement certains démons lorsqu'une requête arrive au système. Par exemple, il lancera ftpd lorsque vous vous connecterez sur votre machine pour faire du FTP. Répondre oui.

Voilà, après un redémarrage, AmiTCP est opérationnel.

Bon, ça c'était pour une installation automatique, mais étant donné que ma Sun n'est pas forcément allumée en même temps que l'Amiga, j'ai créé un script CSH pour lancer manuellement les connexions. Le voici :

#
#   StartNet.SH
#
#       Par LF
#
#   Démarrage du réseau AMITCP
#
#   09/04/1996 : Première version basée sur le StartNet original
#   08/10/1996 : Changement des adresses IP
#   22/02/1999 : Changement pour utiliser les adresses la classe C 
#                réseau privée
#

if -n -e APIPE:
        Mount APIPE: from AmiTCP:devs/APipe-Mountlist
endif

echo "Démarrage du réseau en cours..."
echo "login : laurent"

AmiTCP:bin/login -f laurent
AmiTCP:bin/umask 022
AmiTCP:AmiTCP
WaitForPort AMITCP

# Configure loop-back device
AmiTCP:bin/ifconfig lo0 localhost
# Configure a2065
AmiTCP:bin/ifconfig a2065 inet 192.168.0.2 netmask 255.255.255.0

# Add IP address entry for this host
rx "address AMITCP; 'ADD HOST 192.168.0.2 Miga.chez.moi '"
AmiTCP:bin/route add 192.168.0.2 localhost
setenv HOSTNAME `AmiTCP:bin/hostname`

Assign TCP: Exists > NIL:
if -r $_lasterr
        Mount TCP: from AmiTCP:devs/Inet-Mountlist
endif

# Start the internet `super server'
run AmiTCP:bin/inetd

echo "Montage des rondelles..."
ch_nfsmount ALL

Les premières lignes montent le device APIPE: utilisé par AmiTCP. Grâce au "login", on définit l'utilisateur qui lance le service.

Suivent deux ifconfig. Le premier déclare l'interface de loopback "lo0". Cette interface permet de communiquer avec les services qui tournent sur notre machine. Le second déclare l'interface Ethernet A2065 et on y retrouve les données que nous avions saisies dans l'Installer. Pour ceux qui ont une carte qui n'est pas reconnue par AmiTCP, il faudra aussi modifier le fichier AMITCP:db/interfaces.

Les commandes RX et route définissent les chemins qui mènent à notre propre machine !

On monte ensuite TCP: qui permet aux applications Amiga ne possédant pas de gestion réseau de communiquer quand même entre machines.

Enfin, on lance le fameux Inetd et on finit par la commande ch_nfsmount qui monte toutes les rondelles NFS.

D'autres options sont sauvegardées dans le répertoire AmiTCP, et principalement dans db. On ne va pas étudier un par un ces fichiers, je vous laisse le soin de lire les documentations, mais nous allons étudier des cas concrets.

Associer des noms aux adresses IP

Il est toujours plus pratique de jongler avec les noms des machines qu'avec leur adresse IP. Une première solution serait d'utiliser un DNS, qui est paramétré dans le fichier AmiTCP:db/Resolv.conf. Il contient deux directives :
  • NAMESERVER 192.168.0.1 qui est l'adresse IP du DNS (ici, c'est Zeus).
  • DOMAIN chez.moi le nom du domaine servi.
Seulement, mettre en route un DNS alors que nous n'avons que deux ou trois machines sur notre réseau, c'est peut-être un peu beaucoup. Il y a beaucoup plus simple. En renseignant le simple fichier AmiTCP:db/hosts on peut associer facilement un nom à une adresse. Voici le mien :

127.0.0.1 localhost
192.168.0.1 Zeus zeus Sun sun
192.168.0.2 Miga miga amiga4000
192.168.0.3 Nexus7 nexus7 Vax vax

Le format est le même que le fichier /etc/hosts des stations Unix. En premier, on trouve l'adresse IP de la machine. Suit son nom puis d'éventuels alias.

Maintenant, après avoir démarré AmiTCP (par le script startnet précédent), un ping devrait fonctionner.

Réseau Ethernet

Certains services de base sont livrés avec AmiTCP : c'est le cas de FTP. Les autres peuvent être trouvés sur Aminet... Leurs documentations indiquent les fichiers à modifier, mais généralement, il s'agit de rajouter un service dans AmiTcp:db/inetd.conf.

C'est évident que ces fichiers de configuration sont un peu déroutants lorsqu'on est habitué à avoir des préférences graphiques comme avec les autres logiciels Amiga. Mais vous n'avez qu'à vous payer Genesis ou Miami !

D'autre part, ces fichiers sont directement inspirés de ceux des serveurs Unix et les connaître vous sera peut-être profitable dans votre vie professionnelle. Même si les versions récentes des Unix comportent maintenant de plus en plus d'outils de configuration graphique, on est parfois obligé quand même d'aller titiller ces fichiers.

Pour ceux qui veulent en savoir plus

Les informations précédentes sont suffisantes pour mettre en place un mini réseau. Cependant, si vous souhaitez connecter vos machines avec un réseau plus grand, il y a d'autres paramètres à connaître.

Choisir les adresses IP

Les adresses IP, dans leur version actuelle, sont codées sur quatre octets, ce qui donne environ 4,2 milliards d'adresses... Évidemment, ces adresses ne sont pas attribuées de manière anarchique et des organismes tels que l'Inria pour l'Europe ou l'Internic pour l'ensemble du monde sont chargés de les distribuer.

D'abord, il faut savoir que les réseaux dont le premier octet et 127 sont réservés pour les loopback : il s'agit d'un réseau virtuel qu'utilise une machine pour communiquer avec elle-même. Inutile de préciser que si vous utilisez ce réseau... ça ne marchera pas.

Notre réseau est un réseau privé : les machines de l'extérieur ne peuvent s'y connecter. Oui, mais ce n'est pas la raison pour prendre n'importe quelle adresse ! Si par la suite, vous souhaitez que vos machines puissent aller sur Internet, il vous sera impossible de vous connecter à tout serveur qui utilise le même réseau que vous.

Dans le RFC 1597, ont été définies des adresses à utiliser dans le cas d'un réseau privé. Ces adresses sont :

10.0.0.0 à 10.255.255.255
172.16.0.0 à 172.16.255.255
192.168.0.0 à 192.168.255.255

Dans un premier cas, nous avons un réseau de classe A (24 bits donc 16 777 214 machines maxi).
Dans le second cas, nous disposons de 16 réseaux consécutifs de classe B (20 bits soit 1 048 574 machines).
Dans le troisième cas, c'est 256 réseaux de classe C (8 bits soit 254 machines).

Dans notre cas, nous avons choisi de prendre une classe C, dont les adresses vont de 192.168.0.0 à 192.168.0.255.

Masque de sous-réseau et passerelle par défaut (gateway)

Lorsque la machine A souhaite se connecter à la machine B, A détermine si B est sur le même réseau et donc si elle est accessible directement. C'est le rôle du masque de sous-réseau. Le test est très simple : elles sont sur le même réseau si adresse_A & Masque == adresse_B & Masque, c'est-à-dire si le ET bit à bit entre l'adresse de A et le masque est strictement égal au ET bit à bit entre l'adresse de B et le même masque de sous-réseau.

Si c'est le cas, les deux machines peuvent communiquer directement. Si ce n'est pas le cas, elle envoie sa requête à sa passerelle par défaut qui est chargée de l'acheminer au bon réseau.

Prenons le cas de Miga (192.168.0.2) et Zeus (192.168.0.1) avec un masque de sous-réseau de classe C classique, à savoir 255.255.255.0. Peuvent-elles communiquer ensemble ?

192.168.0.2 & 255.255.255.0 = 192.168.0.0
192.168.0.1 & 255.255.255.0 = 192.168.0.0

La réponse est oui.

Prenons une autre machine dont l'adresse serait toto = 192.168.5.3. Pour Miga, ça ne change pas.

192.168.0.2 & 255.255.255.0 = 192.168.0.0

Alors que pour toto...

192.168.5.3 & 255.255.255.0 = 192.168.5 .0

Non, ça ne correspond pas, les machines ne peuvent se joindre.

Attention, c'est une erreur qui est fréquemment commise, même par les gens qui gèrent des réseaux à longueur de journée : si "toto" était défini comme passerelle pour "Miga", ce dernier ne pourrait communiquer avec l'extérieur car il ne peut joindre directement toto ; une passerelle doit se trouver forcément sur le même sous-réseau que les machines qu'elle sert.

Mais 254 machines, ça fait quand même un peu beaucoup pour un seul et même réseau : il est souvent utile de pouvoir l'éclater en plusieurs sous-réseaux (par exemple si la moitié des machines se trouve sur un site distant). Simple, il suffit de mettre un masque plus restrictif, par exemple : 255.255.255.192.

Le nombre de machines sur notre réseau est indiqué par le nombre de bits à zéro dans le masque : les bits 5 4 3 2 1 et 0 donc 2^6 = 62 machines.

Notez que par convention c'est toujours les bits de poids le plus faible qui sont mis à zéro : je vous déconseille tout non-conformisme à ce niveau car beaucoup de couches IP sont très restrictives à cet égard (bogues !).

Mais, il est nul, devez-vous vous dire, 2 puissance 6 fait 64 et non 62. Et bien oui... mais non car les adresses de machines (donc hors bits de réseau) qui sont tout à 0 ou tout à 1 sont réservées : dans le premier cas, cela indique que l'on communique avec le réseau alors que dans le second, c'est un Broadcast c'est-à-dire que l'on parle à toutes les machines.

Petit exercice : Parmi ces adresses, lesquelles ne sont pas valides ?

adresse                 masque
192.168.0.24            255.255.255.0
192.168.0.24            255.255.255.224
192.168.0.24            255.255.255.240
192.168.0.24            255.255.255.248
192.168.0.24            255.255.255.252

Pour faciliter les choses passons au niveau binaire.

bits    7 6 5 4 3 2 1 0
machine 0 0 0 1 1 0 0 0 = 24
réseau  0 0 0 0 0 0 0 0 = 0
        1 1 1 0 0 0 0 0 = 224 = 128 + 64 + 32
        1 1 1 1 0 0 0 0 = 240 = 128 + 64 + 32 + 16
        1 1 1 1 1 0 0 0 = 248 = 128 + 64 + 32 + 16 + 8
        1 1 1 1 1 1 1 0 = 254 = 128 + 64 + 32 + 16 + 8 + 4 + 2

Réponse...
  • Masque à 0 et à 224 -> ça marche.
  • La machine a l'adresse 24 masque à 240 -> ça marche aussi.
  • La machine a l'adresse 8 dans le réseau masque à 248 -> ça ne marche plus car tous les bits machine de l'adresse sont à zéro, ce qui correspond à un reseau et non à une machine.
  • Masque à 254 -> idem pour 248... mais en pire : en effet, avec un masque à 254, seul reste 1 bit pour la machine => conséquence : tous les bits définissant la machine ont la même valeur (normal avec 1 seul bit).
Voilà, j'espère que ça vous donnera des idées de communication.

Dernier exercice : trouvez les erreurs de ce réseau...

Réseau Ethernet


[Retour en haut] / [Retour aux articles]