Your SlideShare is downloading. ×
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Coursip 2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Coursip 2

144

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
144
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Adressage IP Thomas Noël, pour la formation Transfer/FFTI 21 mai 2001Table des matières1 Le modèle OSI 3 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Transparents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.1 Une architecture en couches . . . . . . . . . . . . . . . . . 3 1.2.2 Le modèle TCP/IP . . . . . . . . . . . . . . . . . . . . . . 62 Adressage IP 7 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Transparents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1 La théorie . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 La commande ifconfig . . . . . . . . . . . . . . . . . . 103 Réseaux IP 12 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 Transparents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2.1 Masque de sous-réseau . . . . . . . . . . . . . . . . . . . . 124 Communication en TCP et UDP 15 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2 Transparents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2.1 Un datagramme IP . . . . . . . . . . . . . . . . . . . . . . 15 4.2.2 Entête TCP . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2.3 Entête UDP . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2.4 Ports et sockets . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.5 Primitives de programmation TCP . . . . . . . . . . . . . . 205 Description rapide des travaux pratiques 21 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.2 Transparents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1
  • 2. Transfer FFTI 2Introduction Vous êtes bien sûr invités à ajouter vos notes personnelles sur les marges, età me signaler toute ambiguïté, toute erreur (même au niveau de l’orthographe) àl’adresse thomas.noel@auf-francophonie.org.
  • 3. Transfer FFTI Le modèle OSI 31 Le modèle OSI1.1 Introduction Le modèle de référence OSI (Open Systems Interconnection) est issu d’uneproposition de l’Organisation Internationale de Normalisation (ISO). On l’appellecouramment le modèle OSI.1.2 Transparents1.2.1 Une architecture en couches Les sept couches 7 Application Interface 6 Présentation Interface 5 Session Interface 4 Transport Interface paquet 3 Réseau Interface trame 2 Liaison Interface bit 1 Physique Transparent 1
  • 4. Transfer FFTI Le modèle OSI 4 Communication entre couches 7 Application Interface 6 Présentation 5 Session 4 Transport données 3 Réseau données 2 Liaison données 1 Physique Transparent 2 Communication entre deux systèmes 7 Application Application 7 6 Présentation Présentation 6 5 Session Session 5 4 Transport Transport 4 protocole 3 Réseau réseau Réseau 3 protocole 2 Liaison liaison Liaison 2 protocole 1 Physique physique Physique 1 Support physique Transparent 3
  • 5. Transfer FFTI Le modèle OSI 5 Dans le modèle OSI, chaque couche propose des services précis à ses deuxcouches supérieure et inférieure, et à ces deux là seulement. Chaque couche joueun rôle précis, et ne doit pas empieter sur le domaine de ses voisines. Voici une présentation rapide des couches, en commençant par la couche deplus bas niveau.Physique transmission des bits de façon brute sur le support de transmission, par exemple modulation/démodulation sur de la paire torsadée. Aucune gestion des erreurs.Liaison de données rend la communication sûre au niveau des erreurs. Découpage du message en trames, avec messages d’acquittementRéseau gestion du sous-réseau. Transporte les paquets, effectue le routage.Transport accepte les informations de la couche session, les découpe en paquet pour les envoyer à la couche réseau. En réception, recolle les morceauxSession gestion du dialogue entre «utilisateurs»Présentation définit la syntaxe et la sémantique des informationsApplication définit des protocoles génériques (pour la transmission de fichiers, la gestion des terminaux, etc.) Routage 7 Application Application 7 6 Présentation Présentation 6 5 Session Session 5 4 Transport Transport 4 3 Réseau Réseau Réseau Réseau 3 2 Liaison Liaison Liaison Liaison 2 1 Physique Physique Physique Physique 1 hote 1 routeur 2 routeur 1 hote 2 Transparent 4
  • 6. Transfer FFTI Le modèle OSI 61.2.2 Le modèle TCP/IP Le modèle TCP/IP 7 Application Application Telnet, FTP, SMTP, DNS, ... protocoles 6 Présentation 5 Session 4 Transport Transport TCP, UDP 3 Réseau Internet IP réseaux 2 Liaison ArpaNet, SatNet, "Réseau" LAN, ... 1 Physique Et protocoles de contrôle : ICMP, ARP, RARP, BOOTP. Transparent 5 Le modèle TCP/IP est beaucoup plus simple que le modèle OSI. Il s’est imposépar le seul fait de son existence, alors qu’aucune des implémentations du modèleOSI n’est vraiment fonctionnelle (trop lourdes). On retrouve dans TCP/IP ce qui fait le succès d’Unix : la simplicité. Par exemple,les applications ne sont pas «ennuyées» par des couches présentation ou session. Lacommunication sur le réseau se fait octet par octet : à chaque application de définircomment elle va utiliser ces informations. On retombe sur le principe des fichiersUnix, qui ne sont pas du tout structurés, et ne sont qu’une suite d’octet (ou de bits,même).
  • 7. Transfer FFTI Adressage IP 72 Adressage IP2.1 Introduction Cette partie du cours donne une vision des techniques et des méthodes d’adres-sage IP. Rien n’est vraiment compliqué, mais il faut maitriser ces aspects pour en-suite parler de routage. En effet, l’adressage ne consiste pas seulement à affecterune adresse à chaque machine : il faut d’abord définir un plan d’adressage. Par exemple, il est vivement conseillé de découper les ensembles d’adresses enplusieurs groupes d’adresses bien distincts (sous-réseaux, subnets) pour prendre enconsidération, dés le départ, les aspects organisation, optimisation et sécurisationd’un réseau IP.2.2 Transparents2.2.1 La théorie Adresse IP Une adresse = un entier codé sur 32 bits (donc 4 octets) Notation «décimale pointée» : A.B.C.D Exemples : – 193.104.111.65, en héxadécimal : C1686F41 – 10.0.0.2, en binaire : 00001010000000000000000000000010 – 157.159.40.55, en décimal 2644453431 – 123.343.231.665 n’est pas une adresse IP Transparent 6 Précision : 123.343.231.665 n’est pas une adresse IP car 343 et 665 nereprésentent pas des octets (un octet est représenté par une valeur entre 0 et 255).
  • 8. Transfer FFTI Adressage IP 8 Découpage en réseaux Les adresses sont regroupées dans des réseaux. Exemples : – l’ensemble des adresses commençant par 193.104.111 – celles commençant par 157.159. – celles commençant par 34 On a donc une arborescence : de gauche à droite = du général au particulier   (comme les n de téléphone) Transparent 7 Classes IP Des classes d’adresses définissent la grandeur des réseaux. – Classe A : 126 réseaux de 16 millions d’adressesa 0 id_res id_ord – Classe B : 16 382 réseaux de 65 536 adresses 10 id_res id_ord – Classe C : 2 millions de réseaux de 254 adresses 110 id_res id_ord a id_res : identifiant réseau et id_ord : identifiant ordinateur Transparent 8
  • 9. Transfer FFTI Adressage IP 9 Adresses spéciales Deux adresses spécifiques définissent le réseau : Adresse de réseau : donnée par la valeur «tout à 0» Exemples : 157.159.0.0, 193.104.111.0 Adresse de diffusion (broadcast) : donnée par la valeur «tout à 1» Exemples : 157.159.255.255, 193.104.111.255 Adresses spéciales «non diffusables» 127.*.*.* : adresses de rebouclage (loopback) 0.0.0.0 et 0.id_ord : «cet» ordinateur sur «ce» réseau (au démarrage) Transparent 9
  • 10. Transfer FFTI Adressage IP 102.2.2 La commande ifconfig ifconfig aide en ligne : man ifconfig Syntaxe Linux : ifconfig interface options ifconfig interface <adresse> netmask xxx broadcast xxx Exemple : ifconfig eth0 193.104.111.122 netmask 255.255.255.192 broadcast 193.104.111.127 ifconfig eth0 up ou ifconfig eth0 down ifconfig sans argument donne la configuration actuelle. Transparent 10 Sous Linux, on peut avoir une aide rapide sur la syntaxe de ifconfig enpassant l’option -h à la commande :thomas@ip$ /sbin/ifconfig -hUsage: ifconfig [-a] [-i] [-v] interface [[family] address] [[-]broadcast [aa.bb.cc.dd]] [[-]pointopoint [aa.bb.cc.dd]] [netmask aa.bb.cc.dd] [dstaddr aa.bb.cc.dd] [hw class address] [metric NN] [mtu NN] [[-]trailers] [[-]arp] [[-]allmulti] [[-]promisc] [multicast] [mem_start NN] [io_addr NN] [irq NN] [media type] [txqueuelen len] [up] [down] ... Un exemple de sortie avec la commande ifconfig utilisée sans argument(sous Linux) :thomas@ip$ /sbin/ifconfig
  • 11. Transfer FFTI Adressage IP 11lo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:5428 errors:0 dropped:0 overruns:0 frame:0 TX packets:5428 errors:0 dropped:0 overruns:0 carrier:0 Collisions:0eth0 Link encap:Ethernet HWaddr 00:80:C8:43:3C:A7 inet addr:193.104.111.122 Bcast:193.104.111.127 Mask:255.255.255.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:67044 errors:0 dropped:0 overruns:0 frame:0 TX packets:20372 errors:0 dropped:0 overruns:0 carrier:0 Collisions:0 Interrupt:10 Base address:0xfc00 N’oubliez pas que lancer la commande ifconfig ne fait que modifier la confi-guration courante du système. En aucun cas les paramètres ne seront sauvegardés.Si vous désirez modifier de façon permanente ces informations, il vous faut exami-ner les fichiers de démarrage de votre systèmes, c’est-à-dire en général les scriptssitués dans le répertoire /etc/init.d (voir le cours sur init System V)1 . Sur une distribution Debian 2.2, la configuration prise en compte au démarrageest contenue dans /etc/network/interfaces. Exemple d’un tel fichier :# The loopback interfaceiface lo inet loopback# first ethernet interfaceiface eth0 inet static address 207.50.225.54 network 207.50.225.0 netmask 255.255.255.0 broadcast 207.50.225.255 gateway 207.50.225.33 Lors du démarrage, le script /etc/init.d/networking reçoit l’argumentstart. Il exécute alors un ensemble de commandes ifup pour activer les inter-faces par rapport à cette configuration. Si l’on désire modifier définitivement lesparamètres, il faut donc : – modifier le fichier /etc/network/interfaces – relancer le système de configuration du réseau avec la commande /etc/init.d/networking reload 1 n’oubliez pas non plus qu’il n’est absolument pas nécessaire de redémarrer le système ensuite :utilisez plutôt les commandes start et stop des scripts de démarrage
  • 12. Transfer FFTI Réseaux IP 123 Réseaux IP3.1 Introduction Nous allons maintenant voir que la notion de classe IP est devenue aujourd’huiobsolète. A ce propos, il faut bien noter que cette notion n’était imposée par aucuneloi mathématique, mais bien inventée par l’homme pour se repérer plus facilement. Or, cette technique de découpage en trois grandes familles de réseaux avait uninconvénient majeur : les classes B étaient trop grandes et les classes C trop petites.On s’est donc débarrassé de cette notion, nous allons ici étudier comment.3.2 Transparents3.2.1 Masque de sous-réseau Par rapport aux classes A,B,C On va indiquer en plus de l’adresse une autre information : le masque de réseau ou netmask. C’est un nombre à 32 bits qui se compose d’un ensemble de 1 suivi d’un ensemble de 0. – Les 1 indiquent la partie réseau – Les 0 indiquent la partie machine Exemples avec nos classes A, B et C : – A : 11111111000000000000000000000000 soit 255.0.0.0 – B : 255.255.0.0 – C : le célèbre 255.255.255.0 Transparent 11 L’idée qui vient alors à l’esprit est de ne pas se limiter à travailler sur des octets,mais bit par bit. On obtient alors des réseaux de taille beaucoup plus flexible.
  • 13. Transfer FFTI Réseaux IP 13 Exemple de découpage d’une classe B Pour prendre un exemple simple, imaginons une classe B. Nous pouvons la découper en un ensemble de classe C en indiquant un masque adéquat. Réseau vu de l’extérieur : 10 id_res id_ord En interne, découpage en pseudo-classes C : 10 id_res subnet id_ord’ 11111111111111111111111100000000 masque de sous-réseau Note : ce redécoupage est invisible de l’extérieur de la classe B. Il est uniquement destiné à une gestion plus intelligente en interne. Transparent 12 Exemple de découpage d’une classe C Réseau de base : 193.104.111.0 (classe C) Découpage en 4 réseaux, masque à utiliser : 111...111.11000000 = 255.255.255.192 réseau diffusion 193.104.111.0 193.104.111.63 193.104.111.64 193.104.111.127 193.104.111.128 193.104.111.191 193.104.111.192 193.104.111.255 ©§¥£¡ ¨ ¦ ¤ ¢ 4 réseaux de -2 = 62 machines possibles Transparent 13
  • 14. Transfer FFTI Réseaux IP 14 Autre notation Puisque les masques ne représentent qu’un certain nombre de 1 complétés par des 0 (pour obtenir 32 bits), la seule information intéressante est ce nombre de 1. Ce nombre correspond au nombre de bits bloqués. Quelques exemples : – 10.0.0.0 masque 255.0.0.0 : 10.0.0.0/16 – 207.50.2.0 masque 255.255.255.0 : 207.50.2.0/24 – 202.86.0.0 masque 255.255.248.0 : 202.86.0.0/21 – 202.86.0.0 masque 255.255.248.0 : 202.86.0.0/21 – réseau de 8192 adresses : 202.86.16.0/20 – réseau de 1024 adresses : 202.86.8.0/22 Transparent 14
  • 15. Transfer FFTI Communication en TCP et UDP 154 Communication en TCP et UDP4.1 Introduction Maintenant que vous avons des machines avec des adresses, et avant de pour-suivre plus avant dans le routage des messages, nous examinons ici le fonction-nement interne des protocoles IP (et des couches supérieures TCP et UDP). Celanous permettra de mieux comprendre comment fonctionne IP, et de mieux cernerles problèmes. On notera par exemple que dans le cas général, aucune information sur le rou-tage (le chemin à employer) n’est indiqué dans les messages IP. Il conviendra doncde configurer correctement nos passerelles pour qu’elles sachent quoi faire avec lesmessages qu’elles recevront.4.2 Transparents4.2.1 Un datagramme IP Un datagramme IP version long ent type de service longueur totale du datagramme identification du datagramme drapeau localisation du fragment durée de vie protocole total de controle d’entete adresse source adresse destination options (longueur variable, peut etre vide) données version : on est encore aujourd’hui en version 4 long ent : longueur de l’entête ( 32 bits), options comprises protocole : TCP, UDP, ICMP, etc. options : extensions possibles pour le protocole Transparent 15 Quelques indications supplémentaires :type de service : donne une priorité au datagramme et en précise le type d’acheminement (delai, débit, fiabilité). Peu utilisé car tous les routeurs ne gèrent pas ces options
  • 16. Transfer FFTI Communication en TCP et UDP 16longueur du datagramme : longueur totale (entête et données). La taille maximale est donc de 65 536 octets.identification : en cas de fragmentation, indique à quel datagramme apar- tient le fragmentdrapeau : deux bits utilisés. DF (don’t fragment) pour empêcher la fragmentation et MF (more fragment) si le fragment n’est pas le dernier (en cas de fragmen- tation)localisation : en cas de fragmentation, indique la position du fragment dans le datagrammedurée de vie : décompte du temps en secondes. En pratique, est décrémenté à chaque passage dans un système. Si égal à zéro, le datagramme est détruit (avec message d’avertissement à l’expéditeur)total de contrôle : vérifie la validité de l’entête.options : 5 options standards sécurité : donne un niveau de sécurité au datagramme routage strict : l’expéditeur (la source) donne un chemin spécifique à suivre par le datagramme routage lâche : donne une liste de routeurs obligatoires (mais pas de chemin complet) enregistrement de route : chaque système réseau traversé ajoute son adresse IP dans le datagramme horodatage : même chose avec en plus une horodate
  • 17. Transfer FFTI Communication en TCP et UDP 174.2.2 Entête TCP Entête TCP port source port destination numéro de séquence numéro d’accusé de réception long. U A P R S F R C S S Y I taille de la fenetre ent. TCP G K H T N N total de controle pointeur sur urgence options (mots de 32 bits) données (optionnelles) Transparent 16Ports source et destination : numéros précisant la connexion (voir transparent 18)Numéros de séquence et d’accusé de réception : gestion classique du flot TCP (le second indique le prochain octet attendu)Longueur de l’entête : nombre de mots de 32 bits dans l’entêteDrapeaux : URG : utilisation du pointeur sur urgence pour indiquer des données impor- tantes ACK : utilisation de l’accusé de réception (si 0, pas d’acquittement) PSH (pushed) : les données doivent être directement envoyées à l’applica- tion, sans passer par un système de cache RST (reset) : demande de réinitialisation en cas de problème SYN : pour établir une connexion (demande : SYN=1 et ACK=0, accepta- tion : SYN=1 et ACK=1) FIN : libération de la connexionTaille de la fenêtre : fenêtre d’anticipation à taille variable pour le contrôle du flot TCP.Total de contrôle : fiabilisation supplémentairePointeur sur urgence : si URG=1, indique l’emplacement des données urgentesOptions : pour les possibilités non offertes dans l’entête
  • 18. Transfer FFTI Communication en TCP et UDP 184.2.3 Entête UDP Entête UDP port source port destination longueur totale UDP total de controle UDP Transparent 17 Pour aller encore plus vite, le total de contrôle être optionnel (une valeur 0indique qu’il n’y a pas de total).
  • 19. Transfer FFTI Communication en TCP et UDP 194.2.4 Ports et sockets Ports et sockets Port : numéro (nombre sur 16 bits) identifiant une connexion. Permet le multiplexage des connexions sur une machine. Derrière chaque port utilisé, on trouve une application qui communique ou est en attente de connexion. Socket : couple adresse + port identifiant une connexion sur une machine. Une connexion entre deux machines en TCP ou UDP est donc complétement définie par un couple sockets : la connexion sur le «serveur» et celle sur le «client». Pour voir les sockets «activées» sur une machine : netstat -a Transparent 18 Exemple de netstat -a sur une machine Linux (tronqué en largeur pourtenir sur la page) :zep:~/cotonou/reseau/ip$ netstat -aActive Internet connections (including servers)Proto Local Address Foreign Address Statetcp ppp-amiens-007.neu:1182 mailx.nnx.com:pop-3 ESTABLISHEDtcp ppp-amiens-007.neu:1181 mailx.nnx.com:smtp ESTABLISHEDtcp ppp-amiens-007.neu:1180 www.minet.net:www ESTABLISHEDtcp *:printer *:* LISTEN(...)
  • 20. Transfer FFTI Communication en TCP et UDP 204.2.5 Primitives de programmation TCP Primitives de programmation TCP client/serveur primitive signification cs socket création d’un point de connexion s bind attachement de l’adresse au socket s listen acceptation de connexion s accept attente d’une connexion c connect demande de connexion cs send envoi de données cs receive reception de données cs close fin de la connexion Transparent 19
  • 21. Transfer FFTI Description rapide des travaux pratiques 215 Description rapide des travaux pratiques5.1 Introduction Lors des différents travaux pratiques, on va successivement : – créer un réseau unique où toutes les machines pourront communiquer entre elles ; – puis, scinder ce réseau en trois réseaux distincts ; – ensuite configurer des passerelles entre les réseaux.5.2 Transparents TP 1 : un seul réseau masques et adresses reseaux identiques adresse : ____.____.____.____ masque : ____.____.____.____ réseau : ____.____.____.____ diffusion : ____.____.____.____ notation CIDR : ____.____.____.____/____ Transparent 20 Pour configurer les adresses des machines :ifconfig eth0 ... : configure temporairement/etc/network/interfaces : sur Debian 2.2, configuration permanente de la machine, qui est prise en compte par le script /etc/init.d/networking. Pour vérifier et tester :ifconfig eth0 : affiche la configuration.ping : envoi de messages ICMP ECHO_REQUEST et affiche des ICMP ECHO_RESPONSE.traceroute : envoi de datagrammes UDP avec TTL incrémental et analyse des résultats renvoyés (permet de suivre un message à travers les différents rou- teurs).
  • 22. Transfer FFTI Description rapide des travaux pratiques 22 TP 2 : trois réseaux A B C réseau : (A) (B) (C) adresse : ____.____.____.____ masque : ____.____.____.____ adr. réseau : ____.____.____.____ diffusion : ____.____.____.____ notation CIDR : ____.____.____.____/____ Transparent 21
  • 23. Transfer FFTI Description rapide des travaux pratiques 23 TP 3 : interconnexion A B C echo 1 /proc/sys/net/ipv4/ip_forward Transparent 22

×