Archive

Archives pour 08/2009

QRQVB : Le modèle OSI

28/08/2009 Aldevar 4 commentaires

Second opus de cette nouvelle catégorie d’article : QRQVB, la Question Réseau Qui Va Bien!

Arpès avoir expliqué ce qu’était une adresse IP dans la dernière QRQVB, je me suis rendu compte que plusieurs éléments étaient manquant pour une bonne compréhension de l’article. Et parmis ces éléments indispensables à la bonne compréhension des mécanismes des réseaux informatiques, il y a le modèle OSI (Open Systems Interconnexion).

Définition

Le modèle OSI est une norme définie par l’ISO pour permettre l’interconnexion des systèmes. Il propose un modèle d’architecture réseau afin de s’assurer que tous les systèmes interconnectés puissent communiquer entre eux quel que soit le constructeur du materiel. Les constructeurs informatiques ont proposé des architectures réseaux propres à leurs équipements. Par exemple, IBM a proposé SNA, DEC a proposé DNA… Ces architectures ont toutes le même défaut : du fait de leur caractère propriétaire, il n’est pas facile des les interconnecter, à moins d’un accord entre constructeurs.

Le modèle OSI ne précise pas vraiment les services et protocoles à utiliser pour chaque couches. Il décrit plutot ce que doivent faire ces couches. Je sais que ça ne parait pas très clair pour le moment, mais ça va le devenir.

Schéma du modèle

ModeleOSI

Le modèle OSI est donc représenté en 7 couches distinctes. J’ai ici représenté 2 machines (à gauche et à droite) pour bien montrer que lors de la communication de 2 hôtes, chaque couche ‘discute’ directement avec la couche équivalente de l’hôte d’en face.

1°) Couche Physique

La couche physique s’occupe de la transmission des bits de façon brute sur un canal de communication. Plus clairement, elle est typiquement représentée par votre carte réseau et sa prise ethernet (et non pas le protocole ethernet!!).

La couche phyique discute directement avec l’hôte suivant sur le réseau. C’est à dire que lors d’une communication sur internet, cette couche ne s’occupe de l’envoie des données que vers la machine suivante, en général un routeur.

La couche physique traite exclusivement avec des bits 0 et 1 et normalise l’écriture de ces bits (une tension de 5V corespond à un 1, -5V un 0).

2°) Couche Liaison

La couche de liaison (ou liaison de donnée)  est un liant entre les 2 couches physiques des hôtes en communications. Elle fractionne les données en trames et tente d’exempter la couche physique des erreurs de transmissions.  Elle doit être capable de renvoyer une trame lorsqu’il y a un problème sur la ligne et intègre également un système de gestion de flux pour éviter les engorgements. Par exemple une carte 100Mb/s relié à une carte 1Gb/S doivent pouvoir communiquer sans que la carte 100Mb/s recoive 10x trop de données.

L’unité d’information de cette couche est donc la trame qui est composé de quelques centaines d’octets.

3°) Couche Réseau

La couche réseau construit la liaison de bout en bout lors de la communication de 2 hôtes. C’est la seule couche directement concernée par la topologie du réseau. Elle va trouver la route parmis les routeurs pour atteindre l’hôte cible.

Lors d’un envoie de données, 2 paquets différents peuvent emprunter des routes différentes suivant l’architecture du réseau et ses point d’engorgement.

C’est la dernière couche supportée par TOUTES les machines du réseau (hôtes, switchs, routeurs, serveurs). Son unité d’information est le paquet.

4°) Couche Transport

Cette couche est responsable du bon acheminement des messages complets au destinataire. Le rôle principal de la couche transport est de prendre les messages de la couche session, de les découper s’il le faut en unités plus petites et de les passer à la couche réseau et inversement du coté du recepteur.

Comme on l’a vu dans la couche réseau, 2 paquets d’un même message peuvent prendre des routes différentes et donc arriver dans le désordre. Le rôle de la couche transport est donc de remettre ces paquets dans l’ordre. Elle peut aussi gérer le multiplexage lors de communications multiples entre 2 mêmes hôtes (par exemple une connexion http et ftp sur le même canal).

Son unité d’information est le message.

5°) Couche Session

Le service principale de la couche session est la synchronisation des communications. Qui veut parler? Qui parle? Elle permet aussi de prendre des ‘snapshots’ des flots de données pour pouvoir reprendre le dialogue là où il en était avant une coupure du canal de communication.

6°) Couche Présentation

La couche présentation est chargée du codage des données de la couche application. En effet, toutes les couches plus basses transportent des octets sans chercher comprendre leur signification. Ici, elle va s’occuper d’encoder du texte, des images, de la video, de la voix etc… en données transportables, c’est à dire en octet.

7°) Couche Application

Cette couche est le point de contact entre l’utilisateur et le réseau. Elle lui apporte l’interface lui permettant de communiquer avec celui ci (messagerie, http, ftp etc…).

Exemples de protocoles

  1. Physique → biphase, bipolaire simple
  2. Liaison → ATM, Ethernet, PPP, TokenRing, Fiber Distributed Date Interface (FDDI)
  3. Réseau → IP, IPX, ICMP
  4. Transport → TCP, UDP (pour les plus connus)
  5. Session → SIP, Appletalk
  6. Présentation → ASCII, Unicode, ASN.1, Videotex
  7. Application → HTTP, SMTP, POP, FTP, DNS, SNMP

Source : Wikipedia, frameip, RFC

    Categories: QRQVB, document, planet-libre

    Veille technologique – Virtualisation

    19/08/2009 Aldevar 8 commentaires

    Chose promise, chose due !

    Comme je vous l’avais annoncé dans ce billet, j’étais depuis un moment sur la rédaction d’un dossier de veille technologique sur la virtualisation de serveurs. Dossier demandé par mon formateur de l’afpa. Ce dossier est enfin terminé. Il a pour titre exact « Virtualisation de serveurs – Solutions Open Source », dont voici le sommaire :

    1.Les principes de la virtualisation
    1.1.Partage d’un serveur
    1.2.Objectif de la virtualisation
    1.3.Bref historique
    1.4.Hyperviseur
    1.5. Performances et rendement
    1.6.Sécurité
    1.7.Administration
    1.8.Contrôle des ressources
    2.État de l’art
    2.1.L’isolation
    2.2.Virtualisation complète
    3.Les Principales Solutions
    3.1. OpenVZ
    3.2.Xen
    4.Domaines d’application
    4.1.Hébergement VDS
    4.2.Plateforme de validation de développement
    4.3.Haute disponibilité
    5.Le stockage
    5.1.Différents besoins
    5.2.Stockage en réseau
    6.Conclusion

    Le pdf, de 19 pages, est disponible à cette adresse.

    Categories: document, planet-libre

    Changement d’adresse

    Le site vient de changer d’adresse.

    Après plusieurs problèmes sur l’ancien site, notamment liés aux flux rss, j’ai décidé de changer d’hebergeur. Exit donc free.fr welcome phpnux.

    La nouvelle adresse du site est donc http://blog.aldevar.fr. En esperant que dorénavant tout se passe bien :D

    Categories: News

    QRQVB : L'adresse IP

    17/08/2009 Aldevar 5 commentaires

    Dans cette nouvelle catégorie (la Question Réseau Qui Va Bien), je vous propose de (re)découvrir avec moi, quelques notions fondamentales de réseau. Ces articles s’adressent en particulier à ceux qui souhaitent comprendre les mécanismes d’Internet et/ou du routage en WAN ou en LAN. J’essaierai d’être le plus clair possible. Si vous trouvez des erreurs, non-sens dans ces articles, je suis ouvert à toutes critiques, corrections.
    Et pour inaugurer cette catégorie, commençons donc par l’adresse IP.

    Définition :

    Une adresse IP identifie de manière unique une machine ainsi que le réseau sur lequel elle est située. Chaque adresse est une série de 4 octets dont une partie correspond à l’identificateur du réseau et l’autre partie à l’identificateur de la machine.
    Exemple d’adresse IP : 172.19.174.125.

    Concrètement, qu’est ce que cela signifie? En fait, puisque les machines ne savent traiter qu’avec des nombres binaires (0 ou 1) l’adresse est codée en binaire sur 4 octets. Sachant qu’un octet correspond à 8 bits, cela nous donne, pour chaque octet 256 possibilités (2^8) pour une valeur comprise en 0 et 255.

    Allons un peu plus loin!

    C’est bien sympa d’avoir une adresse, encore faut-il qu’on puisse m’y contacter! On vient de voir dans la définition que l’adresse IP est divisée en 2 sous parties : l’identificateur de réseau et l’identificateur d’hôte. C’est là qu’intervient le masque de réseau. Alors puisque je ne suis pas fort en blablatage, je vais plutôt vous montrer un exemple.
    Voici une adresse IP : 192.168.1.15
    Voici un masque de réseau : 255.255.255.0

    netmask

    En fait, pour être plus précis, les bits se situant dans la partie de l’identificateur réseau sont tous positionés sur 1 et les bits de la partie hôte sur 0. En procédant à une opération de ET logique entre l’adresse IP et le masque de réseau, on trouve l’adresse réseau. Les opérations de ET logique suivent cette règle :

    0 ET 0 = 0
    0 Et 1 = 0
    1 ET 0 = 0
    1 ET 1 = 1

    Grâce à cette adresse réseau, un routeur pourra déterminer quel chemin doivent emprunter nos paquets IP. Pour bien comprendre ce système, nous allons jouer un peu avec le binaire, même si je sais que ça va en rebuter plus d’un :p

    binaire

    Ceci est important puisque c’est de cette manière qu’on va pouvoir déterminer le nombre maximal de machines qui peuvent appartenir à un réseau. Il faut également savoir que sur 1 réseau, 2 adresses sont réservées. L’adresse ‘bits hôte à 0′ car c’est elle qui va définir justement l’adresse de notre réseau, comme on vient de le voir, et l’adresse ‘bits hôte à 1′ car elle correspond à l’adresse de diffusion (broadcast). L’adresse de broadcast est nécéssaire pour diffuser un message sur tout le réseau. Le message de ce genre le plus classique est la requête ARP. Celle çi permet à une machine de trouver une autre machine sur le réseau en l’appelant.

    Voici un exemple de capture de trame avec wireshark :

    arp2

    Le premier paquet est donc une requête ARP. La machine source envoie ce message sur tout le réseau : ‘who has 192.168.1.51?  Tell 192.168.1.25′. La machine qui a pour IP 192.168.1.51 envoie donc sa réponse directement à 192.168.1.15 et lui dit que c’est l’adresse MAC 00:0a:78:9e:8a qui possède cette IP. (Je me demande si j’aurais pas du expliquer les couches OSI avant!). Tout ça pour vous dire que l’adresse IP ‘bits hôte à 1′ est donc reservée pour ce type de message.

    Dimensionnement de réseau

    Puisque le masque de réseau détermine le nombre maximal de machines sur un réseau et que les adresses IP ne sont pas illimitées, on va pouvoir travailler sur le dimensionnement du réseau en modifiant le masque. En effet, il est possible d’emprunter des bits à la partie hôte pour les donner à la partie réseau. Par exemple, le masque 255.255.255.0 permet d’avoir 256-2 = 254 hôtes différents sur le même réseau. Hors, rares sont ceux qui disposent de 254 machines à interconnecter.

    Admettons que mon réseau possède l’ip 192.168.1.0 (totalement au hasard!) de masque 255.255.255.0 . Je dispose de 5 machines à connecter sur ce réseau, jamais plus.

    • Si je garde 1bit dans la partie hôte, je vais disposer de 2^1 = 2 hôtes possibles.  On vient de voir plus haut que 2 adresses sont reservées sur le réseau, (sisi, rapellez vous, juste au dessus!). Donc 2-2 = 0, ce qui me fait 0 hôte disponible.
    • Si je garde 2 bits pour ma partie hôte, il va me rester (2^2)-2 = 2 hôtes possibles. Ce n’est toujours pas suffisant!!
    • Si je garde 3 bits pour la partie hôtes, j’obtiens (3^2)-2 = 6 hôtes possibles. Ouf!! j’ai assez de place pour caser mes machines. On va donc construire notre masque de réseau en gardant ces 3 bits sur 0, ce qui nous donne :

    11111111.11111111.11111111.11111    000
    Partie réseau                                         Partie hôte
    Ce qui, transformé en décimal nous donne un masque : 255.255.255.248.

    Ce qu’on vient de faire ici, c’est de créer des sous réseaux du réseau 192.168.1.0. Plusieurs sous réseaux composé chacun de 8 adresses IP.

    Sous réseau 1 : de 192.168.1.0 à 192.168.1.7 (avec 192.168.1.0 adresse de sous réseau et 192.168.1.7 adresse de broadcast)

    Sous réseau 2 : de 192.168.1.8 (adresse du réseau) à 192.168.1.15 (adresse de broadcast)

    Sous réseau 3 : de 192.168.1.16(adresse du réseau) à 192.168.1.23 (adresse de broadcast)

    etc etc..

    dernier sous réseau : de 192.168.1.248 (adresse de réseau) à 192.168.1.255 (adresse de broadcast)

    Voilà donc ce qui se cache derrière les adresses IP. Plus mon sous réseau sera petit, moins j’aurais de broadcast sur ce réseau. Parce que mine de rien ça papote pas mal la dedans et ça a tendance à broadcaster dans tous les sens. Malheureusement, le broadcast n’est pas gratuit. Il coûte de la bande passante. Et quand la bande passante sature, on commence à perdre des paquets.

    C’est pour ca qu’il est important, en entreprise en tout cas, de bien calculer le dimensionnement de son réseau et l’adressage IP de l’entreprise, sans oublier de prévoir que si l’entreprise s’agrandit, il va falloir rajouter des hôtes sur certains sous réseaux et en plus ajouter un nouveau sous réseau à notre entreprise pour y connecter un nouveau batiment par exemple. Ça a vite tendance à tourner cacahuète si on fait pas attention.

    Voilà, j’espère que ce premier article sur les fondamentaux du réseau vous aura plus. Peut être même que certains y auront appris 2-3 trucs. Le prochain article de cette catégorie traitera a priori du modèle OSI, ou alors de TCP/IP… on verra.

    Categories: QRQVB, document, planet-libre

    Cours Réseaux – Mise à jour de la page

    Il était temps que je le fasse depuis un moment, mais je n’avais guère le temps. Mais voilà, la page ‘Cours Réseaux‘ est maintenant à jour avec l’ajout de 7 nouvelles compétences. Certains dossiers comportent des documents très intéréssants, notamment concernant le routage (cisco), le protocole PPP ou encore DNS. La très grande majorité des cours traitent évidemment de leur mise en oeuvre sous linux

    Voici la liste des dossiers ajoutés :

    • Sécurité : sauvegardes, raid, gestions des processus
    • Transfert des compétences Unix vers Windows
    • Interconnexion de LAN et de VLAN : routeurs Cisco et routage sous linux
    • Téléphonie : PABX, IPBX
    • Accès distant : PPP, liaison série
    • Interconexion de LAN et de WAN : Cisco
    • DNS : Cache DNS, DNS primaire et délégation de zones avec bind

    Certains fichiers ne sont pas dans des formats particulièrements pratiques (quelques .doc et .pps) que je m’éfforcerais de convertir quand j’aurais un peu plus de temps. Ceci dit, ces fichiers ne sont en général pas les plus complets ni forcement les plus pertinants. Je pense aussi bientôt renommer quelques fichiers dont les noms ne sont pas très parlant.

    En attendant, bonne lecture à tous!

    Categories: Howto, document, planet-libre

    Changement de theme

    Ne trouvant pas l’ancien thème très adapté au site, j’ai décidé d’en changer. J’ai butiné un peu partout et je suis tombé sur celui çi qui me parait assez sobre et ergonomique. Et surtout, il est w3c compliant :D
    Pour info voici un screenshot de l’ancienne version.

    anciensite

    Categories: Non classé