• Aucun résultat trouvé

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

N/A
N/A
Protected

Academic year: 2022

Partager "Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs."

Copied!
12
0
0

Texte intégral

(1)

Détecter et suivre un problème TCP/IP (partie 1)

Par

David ADAMS

Note technique 4D-200308-22-FR Version 1

Date 1 Août 2003

Résumé

Le débogueur est un fabuleux outil pour traquer les problèmes au sein de votre code 4D. Pourtant, dès lors que vous aurez à communiquer avec divers programmes ou autres machines à travers les couches de TCP/IP, il se révélera insuffisant. Vous aurez besoin de nouveaux outils et de technique pour déboguer sur le réseau. Voici quelques cas pour lesquels il vous faudra plus qu’un simple débogueur :

- Les Web Services

- Les fonctionnalités Web de 4D

- Les solutions qui intègrent 4D et d’autres serveurs Web dont IIS et WebSTAR.

- Les utilisations particulières de TCP/IP pour le courrier électronique, le FTP ou d’autres usages.

- 4D Serveur et les problèmes de connexion des clients ou des baisses de performances.

4D Notes techniques

Copyright © 1985-2004 4D SA - Tous droits réservés

Tous les efforts ont été faits pour que le contenu de cette note technique présente le maximum de fiabilité possible.

Néanmoins, les différents éléments composant cette note technique, et le cas échéant, le code, sont fournis sans garantie d'aucune sorte.

L'auteur et 4D S.A. déclinent donc toute responsabilité quant à l'utilisation qui pourrait être faite de ces éléments, tant à l'égard de leurs utilisateurs que des tiers.

Les informations contenues dans ce document peuvent faire l'objet de modifications sans préavis et ne sauraient en aucune manière engager 4D SA. La fourniture d u logiciel décrit dans ce document est régie par u n octroi de licence dont les termes sont précisés par ailleurs dans la

(2)

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

(3)

Détecter et suivre un problème TCP/IP (partie 1)

Introduction

Le débogueur est un fabuleux outil pour traquer les problèmes au sein de votre code 4D. Pourtant, dès lors que vous aurez à communiquer avec divers programmes ou autres machines à travers les couches de TCP/IP, il se révélera insuffisant. Vous aurez besoin de nouveaux outils et de technique pour déboguer sur le réseau. Voici quelques cas pour lesquels il vous faudra plus qu’un simple débogueur :

• Les Web Services

• Les fonctionnalités Web de 4D

• Les solutions qui intègrent 4D et d’autres serveurs Web dont IIS et WebSTAR.

• Les utilisations particulières de TCP/IP pour le courrier électronique, le FTP ou d’autres usages.

• 4D Serveur et les problèmes de connexion des clients ou des baisses de performances.

Mac OS X

Le protocole TCP/IP est issu du monde Unix, aussi les outils les plus courants et puissants sont écrits pour Unix. Mac OSX étant basé sur BSD Unix, les utilisateurs de Mac OS X ont accès à un grand nombre de logiciels de haute qualité, gratuits, ceux-là mêmes utilisés par les personnes qui ont construit TCP/IP. Plusieurs de ces utilitaires ont été adaptés à l’interface graphique Aqua de Mac OS X.

Dans cette Note Technique nous passerons en revue :

• Les outils réseaux les plus usités

• Les outils « graphiques » livrés avec OS X ou par des éditeurs tiers

• Les différentes manières de dépanner et tracer les connexions TCP/IP.

Le terminal OS X

Un vision différente de l’ordinateur

Le Finder Aqua et le Terminal d'OS X nous montrent OS X et ses fichiers sous-jacents de façon bien différente.

Le Finder Aqua est certes alléchant et très simple d'emploi mais trouve rapidement ses limites dès lors qu’il s’agit de régler des problèmes de réseau ou de configurer des programmes Unix comme Apache.

Comme le montrent les illustrations suivantes, le Finder et le Terminal montrent des fichiers très différents à la racine d’un système Mac OS X standard.

(4)

Utilisation du Terminal à des fins de débogage réseau

Il y a quasiment toujours une alternative GUI (Graphical User Interface, interface graphique pour l’utilisateur) aux principales commandes du Terminal. Pourtant, avec un peu d’habitude, l’usage du Terminal sera plus utile lors du déboguage du système et du réseau. Il deviendra alors plus rapide de taper quelques lignes de commandes que de lancer un utilitaire doté d'une riche interface graphique. Nous passerons sous silence les commandes Unix de base, mais sachez qu’il existe pléthore de ressources sur le Web ou sous forme d'ouvrages récents vous permettant de vous familiariser avec les commandes Unix.

Éditer un fichier texte dans le Terminal

Configurer Unix revient à éditer des fichiers texte. OS X est livré avec plusieurs éditeurs dont vi et emacs. Et si éditer un texte en ligne de commande vous déplaît, Bare Bones Software fournit une excellente alternative avec BBedit. À compter de la version 6, BBedit offre un outil de ligne de commande pour ouvrir et créer des fichiers texte Unix depuis le Terminal. Par exemple, voici la ligne de commande à taper dans le Terminal pour ouvrir dans BBedit le fichier de configuration principale d’Apache :

(5)

bbedit/etc/httpd/httpd.conf

Cette simple ligne ouvre le fichier de configuration dans BBEdit prêt à y être édité.

Installer des applications Terminal Présentation

Mac OS X est livré avec plusieurs commandes réseau prêtes à l’emploi : Ping

Traceroute Whois NSLookup

Note du Traducteur :

Ces commandes sont accessibles via le Terminal ou au travers d'une interface graphique dans l'Utilitaire réseau (/Applications/Utilitaires/Utilitaires de réseau).

(6)

tiff2/UtilitaireReseau.tiff

Exemple d'informations affichées par netstat

(7)

Note du Traducteur :

Il y a plusieurs façons d’installer des commandes Terminal supplémentaires :

• Utiliser un installeur de paquet (package);

• Installer Fink et l’utiliser pour l’installation des commandes;

• Compiler des binaires.

Nous allons rapidement examiner ces différentes approches.

Installations de paquets (packages)

Certains programmes comme tcpflow ont été configurés comme des installeurs de paquets au standard Apple.

Les installeurs de paquets sont idéaux, sous réserve d’être disponibles, car ils ne requièrent aucune compilation ou configuration locale. Il n’y a aucune différence entre utiliser un installeur de paquet pour une commande Unix ou une application GUI.

Un installeur de paquet standard

(8)

Utilisation de l’installeur.

Le projet OSXGNU a pour objectif de porter les utilitaires Unix vers Mac OSX en utilisant des installeurs de paquets classiques. Pour plus d’information rendez-vous sur http://www.osxgnu.org/

Une bonne nouvelle et une mauvaise. La mauvaise : beaucoup de commandes Unix ne sont pas encore sous forme de paquet. La bonne : beaucoup d’entre elles sont disponibles au travers de Fink.

Fink

Fink fournit un programme en ligne de commande pour gérer, installer et mettre à jour les programmes open source d’Unix. Plus compliqué d'utilisation que les paquets, Fink est parfois l’unique solution. L’analyseur de protocoles réseau Ethereal est, par exemple, indisponible en tant que paquet.

Pour travailler avec Fink : - Réservez-vous du temps - Sauvegardez votre système

- Installez le CD Apple Developer et toutes ses mises à jour - Installez Fink

- Installez une implémentation X11

- Restaurez les autorisations sur votre système

Pour plus d’info sur Fink et X11 reportez-vous à la page d’accueil : http://fink.sourceforge.net/

Compiler des binaires

Certains paquets demandent à être directement compilés sur votre machine. Quelques tâches courantes qui requièrent une compilation avec Fink :

- Compiler Apache

- Recompiler des modules d'Apache comme mod_fastcgi.

Le CD Apple Developer est livré avec Mac OS X 10.2. Sur le site Apple Developer Connection, Apple fournit

(9)

des disques images de l’intégralité du CD Developer, ainsi que des versions précédentes et des mises à jour. Un enregistrement gratuit est demandé pour le téléchargement.

http://www.apple.com/developer/

Après enregistrement les programmes sont librement téléchargeables : http://developer.apple.com/tools/

Des exemples

Le tableau ci-dessous répertorie les applications réseaux les plus courantes et la manière de les installer. Comme il est indiqué, plusieurs outils Aqua sont disponibles en standard ou via des tierces parties.

Les fondamentaux du réseau et de TCP/IP Introduction

Ci-dessous vous trouverez des définitions sommaires voire même parfois simplifiées des mots-clés et concepts évoqués dans cette Note Technique.

Adresses

Chaque machine au sein d’un réseau TCP/IP doit avoir une adresse unique du style 209.238.180.64. Une

(10)

80 HTTP

443 HTTPS

19813 4D Serveur

Il est possible de changer le numéro de port d'un service mais alors le logiciel client doit également être configuré pour arriver à bon port !

Note :

Dans une connexion TCP/IP, le client et le serveur utilisent chacun un numéro de port. Côté client, le numéro de port est local à la machine du client et il n’a aucun rapport avec le numéro de port du logiciel serveur. Prenez par exemple un navigateur Web qui se connecte à trois serveurs Web différents. Dans chaque cas, le port du serveur est 80 tandis que le port du client est unique et, en général, avec un numéro plutôt élevé. A moins que vous ne développiez vos propres services, les ports côté client ne sont ni visibles ni importants.

Pour obtenir une liste exhaustive de ports standards, reportez-vous au site : http://www.iana.org/assignments/port-numbers

Les ports et Mac OSX

Pour des raisons de sécurité, Mac OS X restreint à l‘utilisateur root l’accès aux ports en dessous de 1024. Les développeurs 4D qui migrent vers OSX rencontrent souvent cette erreur dans les bases de données qui utilisent le serveur Web alors que tout fonctionnait sous MacOS 9 :

Plusieurs solutions permettent de remédier à ce problème, dont celle qui consiste à faire tourner le serveur Web sur un numéro de port plus élevé ou bien d’activer l'utilisateur root.

Cependant la plus sûre et surtout la plus simple consiste à recourir au firewall (ipfw) intégré à OS X pour rediriger les requêtes sur le port 80 vers un autre port, le 8080 par exemple. Cette redirection permet à la fois aux navigateurs d’envoyer des requêtes au port Web standard et de faire tourner 4D sans avoir besoin de se loguer en root. Voici un exemple d’une règle ipfw qui redirige les requêtes du port 80 vers le port 8080 :

sudo ipfw add 101 fwd 127.0.0.1,8080 tcp from any to any 80 in

Malheureusement, les règles ipfw ne sont pas conservées lors du redémarrage de la machine. Il est possible de télécharger un petit programme appelé Simple Port, écrit par Jeremy Sullivan, qui se chargera de la reconstruction de vos règles :

http://www.hdind.com/4dresources/

Interfaces

La connexion entre un ordinateur et le réseau est appelée une interface ou interface réseau. Un ordinateur peut avoir de multiples interfaces réseau : deux cartes Ethernet, une carte Wifi/airport ou un modem. De plus, chaque ordinateur a une interface de boucle locale définie dans TCP/IP à l’adresse 127.0.0.1. Bien identifier et sélectionner les interfaces est essentiel pour tracer et déboguer un problème réseau. Par exemple, surveiller

(11)

l'interface de boucle locale permet de tracer sur une même machine les paquets échangés entre deux programmes qui n’utilisent pas l'interface Ethernet.

DNS

Les serveurs de nom de domaine (DNS) se chargent de la mise en correspondance entre les noms de machine et les adresses. Un programme qui requiert l’usage du DNS peut devenir inopérant si le serveur de DNS vient à tomber. Lors du dépannage d’incident réseau, le DNS devrait constituer votre premier test.

DHCP

Une adresse IP peut être attribuée de manière manuelle ou dynamiquement grâce à un serveur DHCP (Dynamic Host Configuration Protocol). Les serveurs DHCP permettent de réutiliser des plages d’adresses IP parmi les machines actives. L'obtention d'une adresse IP depuis un serveur DHCP s'appelle obtenir un bail.

Lors d’un déboguage réseau, il est important de vérifier comment une machine client obtient son adresse IP, de pouvoir inspecter les détails de son bail DHCP et de pouvoir rafraîchir les adresses sur demande.

Vue conceptuelle de haut-niveau des types de connexion

Les protocoles et services de haut niveau comme HTTP, SMTP, POP3, IMAP et Telnet s'exécutent au niveau le plus élevé de TCP/IP. Ces protocoles abordent la communication client/hôte de différentes manières.

Un protocole comme HTTP traite chaque requête de page comme un événement unique sans rapport avec tout autre événement. Une application comme Telnet garde quant à elle un canal de communication ouvert avec le client et ceci jusqu’à la fin de la session. Pour déboguer un problème de réseau ou d’application réseau, il est nécessaire de comprendre si le protocole est orienté « session » ou « requête/réponse ».

Hubs et switches

Les hubs (concentrateurs) et les switches (commutateurs) permettent de connecter plusieurs machines à un réseau. Leshubsne sont pas très intelligents et renvoient chaque trame reçue à toutes les machines connectées.

Un matériel bien conçu doit inspecter chaque trame entrante et écarter les messages adressés à d’autres matériels. Les switches gèrent ces deux questions en lisant l’information et en ne l’adressant qu’aux intéressés.

Cependant lors du déboguage d’un réseau, il est parfois plus pratique de pouvoir capturer les paquets passant entre deux ou plusieurs machines. Dans ce cas, la manière la plus économique de procéder est de récupérer un de ces hubs démodés et d’utiliser un programme de capture de paquets pour suivre les conversations. Ces hubs passifs sont de plus en plus rares aussi si vous en avez un, ne le lâchez pas ! Une alternative est d’acheter un switch administrable et d’utiliser ses fonctionnalités de surveillance de port. Cette fonctionnalité vous permet de travailler comme avec un vieuxhubpassif, mais les switches administrables sont en général coûteux voire très coûteux !

Trame (frame)

(12)

la mise au point de programmes - comme les connexions Web ou les messages SOAP -ce dont vous avez besoin principalement c'est de consulter les flux. L'outil de ligne de commande tcpflow est l'un des meilleurs utilitaires de capture de flux disponible et il est entièrement gratuit.

Note du Traducteur : Bibliographie

Un ouvrage en français très fréquentable : "MacOS X 10.2" aux éditions CampusPress, ISBN 2-7440-1550-4 : 900 pages qui ne traitent pas de l'interface graphique !

Disposer d'utilitaires efficaces c'est bien, mais il est également indispensable de recourir à de la documentation sur certains aspects des réseaux. Parmi la multitude d'ouvrages sur la question, nous pouvons recommander

"TCP/IP 2è édition" chez Campus Press, dans la collection Le Tout en Poche". Pour moins de 10 euros et en moins de 500 pages, vous disposerez d'un ouvrage clair, concis et qui vous sera d'un précieux renfort dans les moments difficiles : ISBN 2-7440-1169-X.

Références

Documents relatifs

Créer une fonction hypo qui calcule la longueur de l'hypoténuse d'un triangle isocèle et rectangle en fonction de la longueur du côté de l'angle droit.

Il reste à formater les partitions avec les instructions suivantes : pour formater /dev/sdaX en ext4 :. $ sudo

C’est dans une telle perspective que Thierry Gutknecht se propose de rendre compte de la complexité du travail social en empruntant au philo- sophe Michel Foucault certains

Pour aller plus loin dans cette démarche de service aux établissements, l’ANFH mettra à leur disposition à la rentrée « LA ForMule », nouvel outil de commande en ligne

Toutes les autres marques déposées et noms commerciaux sont reconnus par les présentes et sont la propriété de leurs propriétaires respectifs.. Photos

• La fonction « getopt » retourne la lettre de l'option courante de la ligne de commande qui correspond à l'une des lettres d'option présente dans la chaîne « optstring ». •

En effet, pour certains systèmes d’exploitation, notamment Windows 2003, Converter utilise automatiquement le pilote BusLogic, alors que le pilote LSI Logic est utilisé lorsque

Le premier exemple de base de données incluse intègre le module LDAP, l'objectif étant d'authentifier un nom d'utilisateur et mot de passe avec une entrée valide dans un annuaire