# Réseaux TCP/IP/Version imprimable

* Si vous imprimez cette page, choisissez « Aperçu avant impression » dans votre navigateur, ou cliquez sur le lien Version imprimable dans la boîte à outils, vous verrez cette page sans ce message, ni éléments de navigation sur la gauche ou en haut.
* Cliquez sur Rafraîchir cette page pour obtenir la dernière version du wikilivre.
* Pour plus d'informations sur les version imprimables, y compris la manière d'obtenir une version PDF, vous pouvez lire l'article Versions imprimables.
Une version à jour et éditable de ce livre est disponible sur Wikilivres, une bibliothèque de livres pédagogiques, à l'URL : https://fr.wikibooks.org/wiki/R%C3%A9seaux_TCP/IP

# Introduction aux réseaux
## Les réseaux en entreprise

Dans la plupart des entreprises, les ordinateurs sont tous connectés entre eux par des réseaux, par exemple par des réseaux de type Ethernet. Ces réseaux coûtent très cher à administrer. Mais à quoi servent-ils donc ? Nous allons tenter ici de faire un petit tour d'horizon des différentes utilisations des réseaux.

## Centralisation des fichiers des utilisateurs
### Perte des fichiers d'un utilisateur

Une des fonctions principales des réseaux est la centralisation des fichiers des utilisateurs. Imaginons une entreprise sans réseau : chaque utilisateur possède ses propres fichiers de travail sur sa machine. Au fil du temps, le nombre de fichiers augmente et il devient impensable qu'un utilisateur perde la totalité de ses fichiers. Si un utilisateur venait à perdre ses fichiers, le temps nécessaire pour refaire ce travail serait gigantesque : du temps perdu, c'est de l'argent perdu ! De plus, les informations contenues dans ses fichiers sont peut-être importantes : si on a stocké la liste de ses clients et qu'on perd le fichier, les conséquences peuvent être dramatiques. On se persuade assez facilement qu'il est vital pour une entreprise d'avoir une vraie politique de sauvegarde centralisée des fichiers des utilisateurs.

### Responsabiliser les utilisateurs

Il est très difficile pour l'administrateur du parc de machines de gérer efficacement une bonne politique de sauvegarde si les fichiers des utilisateurs sont disséminés sur chaque poste de l'entreprise. On peut avoir comme idée de dire : "chacun est responsable de ses fichiers" et d'installer par exemple un graveur de DVD. La responsabilisation des utilisateurs est rarement une bonne solution : au début tout se passe bien et les utilisateurs sont sérieux mais rapidement, leur sérieux diminue et les sauvegardes s'espacent de plus en plus. Prétextant (à tort ou à raison) n'avoir pas le temps, les utilisateurs sont de moins en moins attentifs à ces sauvegardes et la catastrophe finit toujours par arriver.

### La notion de serveur de fichiers

Notre administrateur est donc contraint d'installer un réseau qui permet aux différentes machines de communiquer. Il va également installer un serveur de fichiers sur lequel les utilisateurs seront obligés de mettre leur données. Le contenu du serveur sera sauvegardé très régulièrement (toutes les nuits par exemple). Les données importantes seront situées à un seul endroit et leur sauvegarde reposera donc entièrement sur une procédure automatisée mise en place par l'administrateur.

### Authentification des utilisateurs

L'administrateur devra donc mettre en œuvre un mécanisme d'identification des utilisateurs : en général cela se fait par un nom de connexion et par un mot de passe. On peut aussi imaginer des mécanismes de cartes magnétiques ou encore la biométrie. Chaque utilisateur ainsi authentifié ne pourra accéder qu'à ses propres fichiers. On peut même mettre en œuvre un mécanisme plus complexe de droits : certains utilisateurs auront le droit de lire certains fichiers mais pas de les modifier. D'autres auront tous les droits sur ces fichiers.

### Qualité et serveurs de fichiers

Il convient toutefois de faire très attention : comme nous l'avons vu, ces données ont une valeur financière considérable et il est hors de question de faire ici des économies de bout de chandelles : si le serveur de fichiers n'est pas assez puissant, il sera lent et la totalité des utilisateurs travailleront plus lentement. Les coûts indirects seront égaux au manque de productivité multiplié par le nombre d'utilisateurs ! Il convient donc d'acheter du matériel performant et fiable. En effet, il devient alors impensable que le serveur tombe en panne. La moindre demi-journée de panne a alors des conséquences catastrophiques pour toute l'entreprise. Notre serveur aura donc besoin d'une fiabilité proche de 100 %. Cette fiabilité a un coût et se paye cher. Si on achète du matériel bas de gamme, cela marchera très bien au début et on peut penser avoir fait des économies : mais un jour la panne surviendra inévitablement et l'avenir de l'entreprise peut alors être compromis.

## Gestion des applications
### Un petit calcul

Imaginons une entreprise contenant 200 postes de travail. Vous êtes administrateur et vous souhaitez installer 5 logiciels différents sur chacun des 200 postes de travail. Chaque installation nécessite un quart d'heure (tests compris). Vous enchaînez les installations 8 heures par jour. Il vous faudra donc 5*200*0,25=250 heures=32 jours de travail ! Un mois n'y suffira pas. En plus, en tant qu'administrateur vous avez bien d'autres tâches à accomplir. Voilà toute la problématique du déploiement de logiciels.

### La notion de serveur d'applications

Pour résoudre ce problème majeur, il faut installer un serveur d'applications qui va permettre aux différents postes de travail d'accéder à un ensemble cohérent d'applications. Il existe de nombreuses architectures possibles pour ces serveurs et nous ne distinguerons que deux catégories :
* l'application peut être exécutée sur le serveur : ainsi le poste de travail se contente de gérer l'affichage. Ce type de solution demande une très grande puissance de calcul sur le serveur.
* l'application est exécutée sur le poste client : le serveur se contente de diffuser l'application.
Bien évidemment, on peut imaginer un mécanisme de droits complexes qui autorise ou interdit à un utilisateur donné l'accès à une application.
Remarque : assez souvent certaines personnes pensent que l'installation d'un serveur d'applications permet de n'avoir qu'une seule licence pour tout un parc de machines. La plupart des contrats de licence oblige à acheter une licence par poste de travail susceptible d'accéder à l'application. L'objectif d'un serveur d'applications n'est pas de diminuer le coût des licences.

## Accès à une base de données

* Beaucoup d'entreprises utilisent des applications spécifiques permettant de gérer leurs commandes, leurs clients, leur stocks, la paye des employés, la comptabilité, etc. Les données manipulées par ces applications ne sont plus stockées sous forme de fichiers mais sont gérées par des logiciels particuliers : les systèmes de gestion de bases de données (SGBD). Ces logiciels permettent de centraliser, sur un serveur, des données de manière fiable, performante et sécurisée. On parle généralement de système d'informations pour regrouper tous les SGBD de l'entreprise. Dès qu'il s'agit d'accéder à un SGBD, on aura besoin d'installer un réseau dans l'entreprise.
* les applications qui accèdent au SGBD sont appelées applications clientes : elles envoient des requêtes vers le SGBD, gèrent l'affichage des réponses aux requêtes et l'interaction avec l'utilisateur. Ces applications peuvent être gérées de manière simple selon le modèle client-serveur. Parfois, l'architecture logicielle peut être beaucoup plus complexe et reposer sur des modèles 3-tiers voire n-tiers.
Introduire la notion de serveur d'impression

# Adressage IP v4

Prérequis : représentation des nombres
Une adresse IP est un entier écrit sur quatre octets, elle peut donc prendre des valeurs entre 0 et 2$^{32}$ - 1. Pour plus de commodité, on note les adresses en donnant les valeurs de chaque octet séparés par des points ; par exemple, 11000000101010000000000100001101 s'écrit : 11000000 10101000 00000001 00001101. devient 192.168.1.13.
Une adresse IP est constituée de deux parties : l'adresse du réseau et l'adresse de la machine, elle permet donc de distinguer une machine sur un réseau. Deux machines se trouvant sur un même réseau possèdent la même adresse réseau mais pas la même adresse machine.

## Masques réseau

Ce découpage en deux parties est effectué en attribuant certains bits d'une adresse à la partie réseau et le reste à la partie machine. Il est représenté en utilisant un « masque réseau » où sont placé à 1 les bits consécutifs de la partie réseau et à 0 ceux de la partie machine.
Par exemple 207.142.131.245 est une adresse IP (celle de Wikilivres, en fait) et 255.255.255.0 un masque réseau indiquant que les trois premiers octets (les 24 premiers bits) sont utilisés pour adresser le réseau et le dernier octet (les 8 derniers bits) pour la machine. 207.142.131.245/255.255.255.0 désigne donc la machine d'adresse 245 sur le réseau d'adresse 207.142.131.0.
Comme les bits du masque réseau sont contigus, on utilise une notation plus courte : IP/nombre de bits à 1. 207.142.131.245/255.255.255.0 peut donc aussi se noter 207.142.131.245/24.

## Classes d'adresses

Il existe différents découpages possible que l'on appelle « classes d'adresses ». À chacune de ces classes correspond un masque réseau différent :
| classe | Préfixe d'adresse | Préfixe d'adresse | Nombre de bits | Nombre de bits | masque réseau |
| classe | Bits | 1er Octet | réseau | machine | masque réseau |
| A | 0 | 0-127 | 8 | 24 | 255.0.0.0 |
| B | 10 | 128-191 | 16 | 16 | 255.255.0.0 |
| C | 110 | 192-223 | 24 | 8 | 255.255.255.0 |
| D | 1110 | 224-239 | - | - | |
| E | 1111 | 240-255 | - | - | |
Les adresses de classe A permettent donc de créer des réseaux avec plus de machines, par contre, il y a beaucoup plus de réseaux de classe C possibles que de réseaux de classe A ou B.
La classe D est une classe utilisée pour le « multicast » (envoie à plusieurs destinataires) et la classe E est réservée.

## Masque de sous-réseau

Comme montré par le tableau précédent, le masque de réseau est déterminé par le nombre de bits pour le réseau selon la classe de l'adresse.
Quant au masque de sous-réseau, il permet de subdiviser la partie machine en sous-réseau et machine. Il doit donc posséder les bits du masque de réseau à 1 en plus de ceux du sous-réseau.
Exemples de subdivision possible des 8 bits machine pour un réseau 192.168.0.0 (classe C, masque réseau 255.255.255.0, 24 bits) :
* masque de sous-réseau 255.255.255.0 : 0 bits de sous-réseau et 8 bits pour la machine,
* masque de sous-réseau 255.255.255.192 : 2 bits de sous-réseau et 6 bits pour la machine,
* masque de sous-réseau 255.255.255.240 : 4 bits de sous-réseau et 4 bits pour la machine.

## Adresses réseaux et adresses de diffusion

Une adresse réseau est une adresse IP qui désigne un réseau et non pas une machine de ce réseau. Elle est obtenue en plaçant tous les bits de la partie machine à zéro.
Une adresse de diffusion (« broadcast » en anglais) est une adresse permettant de désigner toutes les machines d'un réseau, elle est obtenue en plaçant tous les bits de la partie machine à un.
Par exemple :
| IP (classe) | masque | adresse réseau | adresse de diffusion |
| 10.10.10.10 (A) | 255.0.0.0 | 10.0.0.0 | 10.255.255.255 |
| 192.168.150.35 (C) | 255.255.255.0 | 192.168.150.0 | 192.168.150.255 |

## Adresses déconseillées et réseaux privés

Pour éviter les ambiguïtés avec les adresses de réseau et les adresses de diffusion, les adresses « tout à zéro » et « tout à un » sont déconseillées pour désigner des machines sur un réseau.
Dans chaque classe d'adresses, certaines adresses réseaux sont réservées aux réseaux privés.
| classe | réseau privé |
| A | 10.0.0.0 |
| A | 127.0.0.0 |
| B | de 172.16.0.0 à 172.31.0.0 |
| C | de 192.168.0.0 à 192.168.255.0 |
Le cas du réseau 127.0.0.1 est particulier : il désigne la boucle locale.

## Sous-réseaux

Il est possible de découper un réseau en sous-réseaux en utilisant un masque de sous-réseau. Un masque de sous-réseau permet d'attribuer des bits supplémentaires à la partie réseau d'une adresse IP.
Supposons que l'on dispose d'une adresse de classe C, elle permet normalement d'adresser 254 machines avec le masque 255.255.255.0. Il est possible de découper ce réseau en deux sous réseaux de 126 machines avec le masque 255.255.255.128 (128 = 10000000$_2$).

## Le cours sur l'adressage IP
### Le protocole IP

Le protocole IP (Internet Protocol) est un des protocoles majeurs de la pile TCP/IP. Il s'agit d'un protocole réseau (niveau 3 dans le modèle OSI). Il n'est pas orienté connexion, c'est a dire qu'il n'est pas fiable.C'est la couche transport qui peut le rendre fiable.

### Adresse IP

Dans un réseau IP, chaque interface possède une adresse IP fixée par l'administrateur du réseau ou attribuée de façon dynamique via des protocoles comme DHCP. Par extension, pour une machine simple, un PC, avec une seule interface Ethernet, on dira que cette machine a une adresse IP. Il est déconseillé de donner la même adresse à 2 machines différentes sous peine de problèmes (collisions).
Une adresse IP (IPv4 pour être précis) est une suite de 32 bits notée en général a.b.c.d avec a, b, c, et d des entiers entre 0 et 255. Chaque valeur a, b, c ou d représente dans ce cas une suite de 8 bits.
Exemple : une machine a comme adresse IP 134.214.80.12. a vaut 134 soit (1000 0110) en binaire. b vaut 214 soit (1101 0110) en binaire. c vaut 80 soit (0101 0000) et d vaut 12 vaut (0000 1100). En binaire, l'adresse IP s'écrit donc 1000 0110 1101 0110 0101 0000 0000 1100.

### Taille des réseaux IP

Un réseau IP peut avoir une taille très variable :
* une entreprise moyenne aura un réseau comportant une centaine de machines.
* un campus universitaire aura un réseau comportant de quelques milliers à quelques dizaines de milliers de machines.
* un grand fournisseur d'accès peut raccorder des millions de postes.
* tous ces différents réseaux peuvent être interconnectés.

### Les numéros de réseau (net-id) et de station (host-id)

Au sein d'un même réseau IP, toutes les adresses IP commencent par la même suite de bits. L’adresse IP d’une machine va en conséquence être composée de 2 parties : le net-id (la partie fixe) et le host-id (la partie variable).

### Masque d'un réseau IP

Le masque du réseau permet de connaître le nombre de bits du net-id. On appelle N ce nombre. Il s’agit d’une suite de 32 bits composée en binaire de N bits à 1 suivis de 32-N bits à 0.
* Exemple de masque Classe A
Le réseau d’une multinationale comprend toutes les adresses IP commençant par 5 (ici 5 n'est évidemment donné qu'à valeur informative). Une adresse IP sera du type 5.*.*.*. Le net-id comporte 8 bits et le host-id comporte 24 bits. Le masque s’écrira donc en binaire 8 bits à 1 suivi de 24 bits à 0 soit 1111 1111 0000 0000 0000 0000 0000 0000. Le masque sera donc 255.0.0.0 Un tel réseau peut comporter 2$^{24}$ machines soit 16 millions environ.
* Exemple de masque Classe B
Le réseau d’un campus universitaire comprend toutes les adresses IP commençant par 134.214. Une adresse IP sera du type 134.214.*.*. Le net-id comporte 16 bits et le host-id comporte 16 bits. Le masque s’écrira donc en binaire 16 bits à 1 suivi de 16 bits à 0 soit 1111 1111 1111 1111 0000 0000 0000 0000. Le masque sera donc 255.255.0.0. Un tel réseau peut contenir au maximum 2$^{16}$ machines soit 65536 machines.
* Exemple de masque Classe C
le réseau d’une PME comprend toutes les adresses IP commençant par 200.150.17. Une adresse IP sera du type 200.150.17.* Le net-id comporte 24 bits et le host-id comporte 8 bits. Le masque s’écrira donc en binaire 24 bits à 1 suivi de 8 bits à 0 soit 1111 1111 1111 1111 1111 1111 0000 0000. Le masque sera donc 255.255.255.0. Un tel réseau peut contenir au maximum 2$^8$ machines soit 256 machines.

### Adresse réseau

Chaque réseau IP a une adresse qui est celle obtenue en mettant tous les bits de l’host-id à 0. Le réseau de l’exemple 3 a comme adresse réseau 200.150.17.0. Un réseau IP est complètement défini par son adresse de réseau et son masque de réseau.

### Notation CIDR

La notation CIDR, pour Classless Inter-Domain Routing, est historiquement introduite après la notion de classe d'adresse IP (cf. section sur les classes). Elle s'inscrit dans une intention d'outrepasser la limite implicitement fixée par la notion de classe en termes de plages d'adresses disponibles dans les réseaux IPv4.
La notation initiale non CIDR considère pour un réseau donné le couple formé par l'adresse et le masque dudit réseau. En notation CIDR, une forme d'adressage équivalente est construite – ou obtenue, si l'on part de l'adresse en notation initiale non CIDR – par l'association de l'adresse du réseau (à l'instar de la notation initiale) et de la longueur du préfixe binaire déterminant ledit réseau. Le préfixe binaire de la notation CIDR correspond au nombre des premiers bits à 1 dans la forme binaire du masque du réseau de la notation initiale non CIDR.
En adressage IPv4, cela se concrétise par une forme décimale de 4 octets suivie d'un entier compris entre 0 et 32. En pratique, cette plage peut s'étendre de 1 à 31 afin de permettre un adressage des hôtes (host-id) par les bits différentiels (en effectif non nul).
* Exemples
** On considère le réseau d'adresse (décimale) 150.89.0.0 et de masque (décimal) 255.255.0.0 en notation initiale non CIDR. Ledit masque comporte 16 bits à 1 ; ces 16 bits sont les 16 premiers bits du masque. En notation CIDR, ce réseau est identifié par la forme décimale suivante : 150.89.0.0/16.
** De la même manière, le réseau d'adresse (décimale) 200.89.67.0 et de masque (décimal) 255.255.255.0 pourra être identifié par la notation CIDR 200.89.67.0/24.
** Pour un réseau d'adresse (décimale) 192.168.144.0 et de masque (décimal) 255.255.240.0, la notation CIDR sera 192.168.144.0/20.

### Adresse de diffusion (broadcast)

Cette adresse permet à une machine d’envoyer un datagramme à toutes les machines d’un réseau. Cette adresse est celle obtenue en mettant tous les bits de l’host-id à 1. Le réseau de l’exemple 3 a comme adresse de broadcast 200.150.17.255.

### Deux adresses interdites

Il est interdit d’attribuer à une machine d’un réseau IP, l’adresse du réseau et l’adresse de broadcast.
Ce qui, pour le réseau 192.168.1.0/24, nous donne :
* adresse du réseau : 192.168.1.0
* adresse de broadcast : 192.168.1.255

### Les classes A, B et C

Historiquement, le réseau Internet était découpé en classes d'adresses :
* Classe A :
** Le premier bit de ces adresses IP est à 0.
** Le masque décimal associé est 255.0.0.0, soit les 8 premiers bits à 1.
** Les adresses de ces réseaux ont la forme décimale a.0.0.0 avec a variant 0 à (2$^7$-1 =) 127.
** Cette classe détermine ainsi (127 - 0 + 1 =) 128 réseaux.
** Le nombre de bits restant pour l'adressage des hôtes est de (32 - 8 =) 24.
** Chaque réseau de cette classe peut donc contenir jusqu'à 2$^{24}$-2 = 16 777 214 machines.
* Classe B :
** Les 2 premiers bits de ces adresses IP sont à 1 et 0 respectivement.
** Le masque décimal associé est 255.255.0.0, soit les 16 premiers bits à 1.
** Les adresses de ces réseaux ont la forme décimale a.b.0.0 avec a variant de (2$^7$ =) 128 à (2$^7$ + 2$^6$-1 =) 191 et b variant de 0 à 255.
** Cette classe détermine ainsi ( (191 - 128 + 1) × (255 - 0 + 1) =) 16 384 réseaux.
** Le nombre de bits restant pour l'adressage des hôtes est de (32 - 16 =) 16.
** Chaque réseau de cette classe peut donc contenir jusqu'à 2$^{16}$-2 = 65 534 machines.
* Classe C :
** Les 3 premiers bits de ces adresses IP sont à 1, 1 et 0 respectivement.
** Le masque décimal associé est 255.255.255.0, soit les 24 premiers bits à 1.
** Les adresses de ces réseaux ont la forme décimale a.b.c.0 avec a variant de (2$^7$ + 2$^6$ =) 192 à (2$^7$ + 2$^6$ + 2$^5$-1 =) 223, b et c variant de 0 et 255 chacun.
** Cette classe détermine ainsi ( (223 - 192 + 1) × (255 - 0 + 1) × (255 - 0 + 1) =) 2 097 152 réseaux.
** Le nombre de bits restant pour l'adressage des hôtes est de (32 - 24 =) 8.
** Chaque réseau de cette classe peut donc contenir jusqu'à 2$^8$-2 = 254 machines.
* Classe D :
** Les 4 premiers bits de ces adresses IP sont à 1, 1, 1 et 0 respectivement.
** Le masque décimal associé par défaut est 224.0.0.0, soit les 3 premiers bits à 1.
** Les adresses de cette classe ont la forme décimale a.b.c.d avec a variant de (2$^7$ + 2$^6$ + 2$^5$ =) 224 à (2$^7$ + 2$^6$ + 2$^5$ + 2$^4$-1 =) 239, b, c et d variant de 0 et 255 chacun.
** Cette classe est spéciale : elle est réservée à l'adressage de groupes de diffusion multicast.
* Classe E :
** Les 4 premiers bits de ces adresses IP sont (tous) à 1.
** Le masque décimal associé par défaut est 240.0.0.0, soit les 4 premiers bits à 1.
** Les adresses de cette classe ont la forme décimale a.b.c.d avec a variant de (2$^7$ + 2$^6$ + 2$^5$ + 2$^4$ =) 240 à (2$^8$-1 =) 255, b, c et d variant de 0 et 255 chacun.
** Cette classe est également spéciale : elle est actuellement réservée à un adressage de réseaux de recherche.
La notion de classe d'adresses a été rendue obsolète pour l'adressage des nœuds du réseau Internet car elle induisait une restriction notable des adresses IP affectables par l'utilisation de masques spécifiques. Les documents RFC 1518 et RFC 1519 publiés en 1993 spécifient une nouvelle norme : l'adressage CIDR (cf. supra). Ce nouvel adressage précise qu'il est possible d'utiliser un masque quelconque appliqué à une adresse quelconque. Il organise par ailleurs le regroupement géographique des adresses IP pour diminuer la taille des tables de routage des principaux routeurs du réseau Internet.

### Exemple

Une machine possède l’adresse IP 134.214.80.12 : elle appartient au réseau de classe B 134.214.0.0 de masque 255.255.0.0. Dans ce réseau, une machine peut avoir une adresse IP comprise entre 134.214.0.1 et 134.214.255.254. L’adresse de broadcast est 134.214.255.255.

### Adresses privées (non routables sur l'Internet)

Un certain nombre de ces adresses IP sont réservées pour un usage interne aux entreprises (RFC 1918) Elles ne doivent pas être utilisées sur l'internet où elles ne seront de toute façon pas routées. Il s’agit des adresses :
* de 10.0.0.0 à 10.255.255.255
* de 172.16.0.0 à 172.31.255.255
* de 192.168.0.0 à 192.168.255.255
* les adresses de 127.0.0.0 à 127.255.255.255 sont également interdites.
Les adresses 127.0.0.0 à 127.255.255.255 s’appellent l’adresse de boucle locale (loopback en anglais) et désigne la machine locale (localhost).

### Distribution des adresses IP

Sur l'internet, l’organisme IANA est chargé de la distribution des adresses IP. IANA a délégué la zone européenne à un organisme : le RIPE NCC. Cet organisme distribue les adresses IP aux fournisseurs d’accès à l'internet.

### Découpage d'un réseau IP

Un réseau IP de classe A, B ou C peut être découpé en sous-réseaux. Lors d’un découpage le nombre de sous-réseaux est une puissance de 2 : 4, 8, 16, 32… ce qui est naturel si l'on pense à la représentation binaire d'une adresse IP. Chaque sous-réseau peut être découpé en sous-sous-réseaux et ainsi de suite On parle indifféremment de réseau IP pour désigner un réseau, un sous-réseau, … Chaque sous-réseau sera défini par un masque et une adresse IP.

### Exemple de découpage

On considère le réseau d'adresse 134.214.0.0 et de masque 255.255.0.0. On veut découper ce réseau en 8 sous-réseaux. Pour chaque sous-réseau, on veut obtenir le masque et l’adresse.
* Calcul du masque
On veut découper le réseau en 8. Or 8 = 2$^3$. En conséquence, le masque de chaque sous-réseau est obtenu en ajoutant 3 bits à 1 au masque initial. L’ancien masque 255.255.0.0 comprend 16 bits à 1 suivis de 16 bits à 0. Le nouveau masque comprendra donc 16 + 3 = 19 bits à 1 suivis de 13 bits à 0. Il correspond à 255.255.224.0.
* Calcul du net-id de chaque sous réseau
Le net-id de chaque sous-réseau sera constitué de 19 bits :
** Les 16 premiers bits seront ceux de l’écriture binaire du préfixe d'adresse 134.214 ;
** Les 3 bits suivants seront constitués du numéro du sous-réseau : 000 (0), 001 (1), 010 (2), 011 (3), 100 (4), 101 (5), 110 (6) ou 111 (7).
* Calcul de l'adresse de chaque sous-réseau
Pour obtenir l'adresse réseau, tous les bits du host-id sont positionnés à 0. On obtient donc comme adresse pour chaque sous-réseau :
** 134.214.(000 00000).0 soit 134.214.0.0
** 134.214.(001 00000).0 soit 134.214.32.0
** 134.214.(010 00000).0 soit 134.214.64.0
** 134.214.(011 00000).0 soit 134.214.96.0
** 134.214.(100 00000).0 soit 134.214.128.0
** 134.214.(101 00000).0 soit 134.214.160.0
** 134.214.(110 00000).0 soit 134.214.192.0
** 134.214.(111 00000).0 soit 134.214.224.0.
* Obtention des adresses de broadcast
Pour obtenir l’adresse de broadcast, on met à 1 tous les bits du host-id. Les adresses de broadcast sont donc :
** 134.214.(000 11111).255 soit 134.214.31.255
** 134.214.(001 11111).255 soit 134.214.63.255
** 134.214.(010 11111).255 soit 134.214.95.255
** 134.214.(011 11111).255 soit 134.214.127.255
** 134.214.(100 11111).255 soit 134.214.159.255
** 134.214.(101 11111).255 soit 134.214.191.255
** 134.214.(110 11111).255 soit 134.214.223.255
** 134.214.(111 11111).255 soit 134.214.255.255.

## Liens internes

* Adresse IP : la notion d'adresse IP et de masque.

## Exercices sur l'adressage IP
### EXERCICE 1

Ecrivez en binaire les adresses IP 156.78.90.87 et 192.168.23.60
156-128=28 28-16=12 12-8=4 4-4=0 156=128+16+8+4 soit en binaire 1001 1100
78-64=14 14-8=6 6-4=2 78=64+8+4+2 soit en binaire 0100 1110
90-64=26 26-16=10 10-8=2 2-2=0 90=64+16+8+2 soit en binaire 0101 1010
87-64=23 23-16=7 7-4=3 3-2=1 1-1=0 87=64+16+4+2+1 soit en binaire 0101 0111
L’ adresse IP 156.78.90.87 s’écrit donc en binaire 1001 1100 0100 1110 0101 1010 0101 0111
192-128=64 64-64=0 192=128+64 soit en binaire 1100 0000 168-128=40 40-32=8 8-8=0 168=128+32+8 soit en binaire 1010 1000
23-16=7 7-4=3 3-2=1 1-1=0 23=16+4+2+1 soit en binaire 0001 0111
60-32=28 28-16=12 12-8=4 4-4=0 60=32+16+8+4 soit en binaire 0011 1100
L’adresse IP 192.168.23.60 s’écrit donc en binaire
1100 0000 1010 1000 0001 0111 0011 1100

### EXERCICE 2

Écrivez sous la forme a.b.c.d les adresses IP 1100 1101 1010 1010 0110 0110 1100 0111 et 0110 1001 1001 1110 0101 0101 0111 1110
Écrivez sous la forme a.b.c.d l’adresse IP 1100 1101 1010 1010 0110 0110 1100 0111
1100 1101 vaut en décimal 128+64+8+4+1=205 1010 1010 vaut en décimal 128+32+8+2=170 0110 0110 vaut en décimal 64+32+4+2=102 1100 0111 vaut en décimal 128+64+4+2+1=199
L’adresse IP 1100 1101 1010 1010 0110 0110 1100 0111 s’écrit donc en 205.170.102.199
Écrivez sous la forme a.b.c.d l’adresse IP 0110 1001 1001 1110 0101 0101 0111 1110 0110 1001 vaut en décimal 64+32+8+1=105 1001 1110 vaut en décimal 128+16+8+4+2=158 0101 0101 vaut en décimal 64+16+4+1=85 0111 1110 vaut en décimal 64+32+16+8+4+2=126
L’adresse IP 0110 1001 1001 1110 0101 0101 0111 1110 s’écrit donc 105.158.85.126

### EXERCICE 3

Pour chacune des adresses IP suivantes 200.67.80.45 , 50.98.78.67, 130.89.67.45 :
- indiquez la classe de l’adresse. - donnez l’adresse du réseau de classe A, B ou C dans lequel se trouve cette adresse. - donnez l’adresse de broadcast de ce réseau. - indiquez les adresses IP attribuables à une machine de ce réseau.
* Adresse 200.67.80.45
200 s’écrit en binaire 1100 1000 ==> l’adresse commence par 110
Il s’agit donc d’une adresse de classe C. Elle appartient au réseau 200.67.80.0 de masque 255.255.255.0. Le host-id de 8 bits peut prendre n’importe quelle valeur sauf celle s’écrivant en binaire avec que des 0 (adresse du réseau) ou que des 1 (adresse de diffusion). On peut donc attribuer à une machine les adresses de 200.67.80.1 à 200.67.80.254. L’adresse de broadcast vaut 200.67.80.255.
* Adresse IP 50.98.78.67
50 s’écrit en binaire 0011 0010 ==> l’adresse commence par un 0 Il s’agit donc d’une adresse de classe A. Elle appartient au réseau 50.0.0.0 de masque 255.0.0.0. Le host-id de 24 bits peut prendre n’importe quelle adresse sauf celle s’écrivant en binaire avec que des 0 (adresse du réseau) ou que des 1 (adresse de diffusion). On peut donc attribuer à une machine les adresses de 50.0.0.1 à 50.255.255.254. L’adresse de broadcast vaut 50.255.255.255.
* Adresse 130.89.67.45
130 s’écrit en binaire 1000 0010 ==> l’adresse commence par 10 Il s’agit donc d’une adresse de classe B Elle appartient au réseau 130.89.0.0 de masque 255.255.0.0 Le host-id de 16 bits peut prendre n’importe quelle adresse sauf celle s’écrivant en binaire avec que des 0 (adresse du réseau) ou que des 1 (adresse de diffusion). On peut donc attribuer à une machine les adresses de 130.89.0.1 à 130.89.255.254 L’adresse de broadcast vaut 130.89.255.255

### EXERCICE 4

a) Découpez en 16 sous-réseaux le réseau 150.27.0.0 de masque 255.255.0.0 Indiquez pour chaque sous-réseau la liste des adresses attribuables à une machine ainsi que l’adresse de diffusion.
L’ancien masque 255.255.0.0 comporte 16 bits à 1.
On découpe en 16=2$^4$. On rajoute donc 4 bits à 1 au masque. La masque de chaque sous-réseau est donc 255.255.(1111 0000).0 soit 255.255.240.0
Le nouveau net-id comportera 20 bits. Les 16 premiers bits seront ceux l’écriture en binaire de 150.27. Les 4 derniers pourront prendre n’importe quelle valeur sauf 0000 et 1111. Il y aura donc 14 sous-réseaux utilisables. L’adresse du réseau sera obtenue en mettant à 0 tous les bits du host-id.
Les adresses des sous-réseaux sont donc : 150.27.(0000 0000).0 soit 150.27.0.0 150.27.(0001 0000).0 soit 150.27.16.0 150.27.(0010 0000).0 soit 150.27.32.0 150.27.(0011 0000).0 soit 150.27.48.0 150.27.(0100 0000).0 soit 150.27.64.0 150.27.(0101 0000).0 soit 150.27.80.0 150.27.(0110 0000).0 soit 150.27.96.0 150.27.(0111 0000).0 soit 150.27.112.0 150.27.(1000 0000).0 soit 150.27.128.0 150.27.(1001 0000).0 soit 150.27.144.0 150.27.(1010 0000).0 soit 150.27.160.0 150.27.(1011 0000).0 soit 150.27.176.0 150.27.(1100 0000).0 soit 150.27.192.0 150.27.(1101 0000).0 soit 150.27.208.0 150.27.(1110 0000).0 soit 150.27.224.0 150.27.(1111 0000).0 soit 150.27.240.0
L’adresse de broadcast est obtenue en mettant à 1 tous les bits du host-id. Les adresses de broadcast sont donc : 150.27.(0000 1111).255 soit 150.27.15.255 150.27.(0001 1111).255 soit 150.27.31.255 150.27.(0010 1111).255 soit 150.27.47.255 150.27.(0011 1111).255 soit 150.27.63.255 150.27.(0100 1111).255 soit 150.27.79.255 150.27.(0101 1111).255 soit 150.27.95.255 150.27.(0110 1111).255 soit 150.27.111.255 150.27.(0111 1111).255 soit 150.27.127.255 150.27.(1000 1111).255 soit 150.27.143.255 150.27.(1001 1111).255 soit 150.27.159.255 150.27.(1010 1111).255 soit 150.27.175.255 150.27.(1011 1111).255 soit 150.27.191.255 150.27.(1100 1111).255 soit 150.27.207.255 150.27.(1101 1111).255 soit 150.27.223.255 150.27.(1110 1111).255 soit 150.27.239.255 150.27.(1111 1111).255 soit 150.27.255.255
Le host-id peut prendre n’importe quelle valeur sauf celle comportant que des 0 ou que des 1. Pour chaque sous-réseau, on peut donc attribuer une machine les adresses : de 150.27.(0000 0000).1 soit 150.27.0.1 à 150.27.(0000 1111).254 soit 150.27.15.254 de 150.27.(0001 0000).1 soit 150.27.16.1 à 150.27.(0001 1111).254 soit 150.27.31.254 de 150.27.(0010 0000).1 soit 150.27.32.1 à 150.27.(0010 1111).254 soit 150.27.47.254 de 150.27.(0011 0000).1 soit 150.27.48.1 à 150.27.(0011 1111).254 soit 150.27.63.254 de 150.27.(0100 0000).1 soit 150.27.64.1 à 150.27.(0100 1111).254 soit 150.27.79.254 de 150.27.(0101 0000).1 soit 150.27.80.1 à 150.27.(0101 1111).254 soit 150.27.95.254 de 150.27.(0110 0000).1 soit 150.27.96.1 à 150.27.(0110 1111).254 soit 150.27.111.254 de 150.27.(0111 0000).1 soit 150.27.112.1 à 150.27.(0111 1111).254 soit 150.27.127.254 de 150.27.(1000 0000).1 soit 150.27.128.1 à 150.27.(1000 1111).254 soit 150.27.143.254 de 150.27.(1001 0000).1 soit 150.27.144.1 à 150.27.(1001 1111).254 soit 150.27.159.254 de 150.27.(1010 0000).1 soit 150.27.160.1 à 150.27.(1010 1111).254 soit 150.27.175.254 de 150.27.(1011 0000).1 soit 150.27.176.1 à 150.27.(1011 1111).254 soit 150.27.191.254 de 150.27.(1100 0000).1 soit 150.27.192.1 à 150.27.(1100 1111).254 soit 150.27.207.254 de 150.27.(1101 0000).1 soit 150.27.208.1 à 150.27.(1101 1111).254 soit 150.27.223.254 de 150.27.(1111 0000).1 soit 150.27.224.1 à 150.27.(1110 1111).254 soit 150.27.239.254 de 150.27.(1111 0000).1 soit 150.27.240.1 à 150.27.(1111 1111).254 soit 150.27.255.254
b) Redécoupez en 8 sous-réseaux le troisième sous-réseau utilisable parmi ces 16. Combien de machines au maximum peuvent contenir chacun de ces sous-réseaux ?
Il s’agit de découper en 8 le réseau 150.27.48.0 de masque 255.255.240.0
Le masque comporte 20 bits à 1.
On découpe en 8=2$^3$. On rajoute donc 3 bits à 1 au masque.
La masque de chaque sous-réseau est donc 255.255.(1111 1110).0 soit 255.255.254.0
L’adresse du réseau s’écrit 150.27.(0011 0000).0 soit 150.27.48.0 Le nouveau net-id comportera 23 bits. Les 20 premiers bits seront 150.27.(0011) Les 3 derniers pourront prendre n’importe quelle valeur sauf 000 et 111. Il y aura donc 6 sous-réseaux utilisables.
L’adresse du réseau sera obtenue en mettant à 0 tous les bits du host-id.
Les adresses des sous-réseaux sont donc :
150.27.(0011 001 0).0 soit 150.27.50.0
150.27.(0011 010 0).0 soit 150.27.52.0
150.27.(0011 011 0).0 soit 150.27.54.0
150.27.(0011 100 0).0 soit 150.27.56.0
150.27.(0011 101 0).0 soit 150.27.58.0
150.27.(0011 110 0).0 soit 150.27.60.0
Le host-id de chaque sous-réseau comporte 32-23=9 bits. Les adresses des broadcast (diffusion) et de réseau ne peuvent pas être attribuée à une machine. Chaque sous-réseau, peut donc contenir au maximum 2^9-2=510 machines.

## QCM relatif à l'adressage IP

* 1. L'adresse 180.30.17.20 est une adresse de classe :
a) A
b) B c) C
d) D
REPONSE b) En effet 180 est compris entre 128 et 191. L'adresse appartient donc à un réseau de classe B.
* 2. Si l'administrateur donne deux fois la même adresse IP à 2 machines différentes du réseau, que se passe-t-il ?
a) Les deux machines marchent très bien. b) La première machine à obtenir l'adresse IP du réseau marche mais pas la deuxième. c) Aucune machine ne marche. d) Le débit est partagé entre les 2 machines.
REPONSE c)
* 3. Un réseau de classe B est découpé en plusieurs sous-réseaux et on obtient un masque final valant 255.255.252.0. En combien de sous-réseaux le réseau de départ a-t-il été découpé ?
a) 32 b) 64
c) 128 d) 256
REPONSE b) Le net-id comporte 22 bits. Dans un réseau de classe B, le net-id comporte 16 bits. Le réseau a donc été découpé en 2^6=64
* 4.Un réseau a comme adresse 180.35.128.0 de masque 255.255.240.0. Quelle est l'adresse de broadcast ?
a) 180.35.255.255 b) 180.35.143.255 c) 180.35.159.25 d) 180.35.192.255
REPONSE b) Le net-id comporte 20 bits. L'adresse de broadcast est donc 180.35.(1000 1111).255=180.35.143.255
* 5.Un réseau a comme masque 255.255.255.224. Combien de machines peut-il y avoir sur un tel réseau ?
a) 254 b) 128 c) 224 d) 30
REPONSE d) Le net-id de départ comporte 8+8+8+3=27 bits à 1. Le host-id comporte donc 5 bits. Il peut donc y avoir 2^5-2=30 machines sur le réseau (32 moins les adresses broadcast et réseau).
* 6.Sur un réseau TCP/IP qui fixe l'adresse IP d'une machine ?
a) Le constructeur de la carte Ethernet. b) elle est fixée au hasard lors du boot. c) L'administrateur du réseau. d) Le chef du département.
REPONSE c)
* 7.Une machine a comme adresse IP 150.56.188.80 et se trouve dans un réseau dont le masque est 255.255.240.0. Quelle est l'adresse du réseau ?
a) 150.56.0.0
b) 150.56.128.0 c) 150.56.176.0 d) 150.56.192.0
REPONSE c)
188 s'écrit en base 2 : 10111100. Le net-id fait 20 bits. L'adresse réseau est obtenue en mettant tous les bits du host-id à 0. On obtient donc 150.56.(1011 0000).0=150.56.176.0
* 8.On découpe un réseau dont le masque est 255.255.224.0 en 16 sous-réseaux. Quel est le nouveau masque ?
a) 255.255.254.0 b) 255.255.255.0 c) 255.255.252.0 d) 255.255.248.0
REPONSE a)
L'ancien net-id fait 19 bits. En découpant en 16, on rajoute 4 bits au net-id, soit 23 bits. Le nouveau masque est donc 255.255.(1111 1110).0 soit 255.255.254.0
* 9.Lorsque le protocole IP est utilisé au dessus du protocole Ethernet, l'adresse IP a-t-elle la même valeur que l'adresse éther net ?
a) VRAI
b) FAUX c) cela dépend
REPONSE b) Ces adresses n'ont rien à voir : l'adresse Ethernet fait 48 bits et est déterminée par le constructeur de la carte alors que l'adresse IP fait 32 bits et est déterminée par l'administrateur de réseau.
* 10.Le protocole IP permet d'interconnecter un réseau de classe A avec un réseau de classe C.
a) VRAI
b) FAUX
REPONSE a) IP permet d'interconnecter des réseaux de taille très variables.

# Adressage IP v6

Les adresses IP v4 sont stockées sur 32 bits et peuvent donc adresser environ 4 milliards de machines (2$^{32}$ précisément). Avec l'informatisation et la multiplication des types de terminaux se connectant à internet (téléphone mobile, tablettes, ...), ce nombre a largement été dépassé. Jusqu'à maintenant, la résolution de ce problème consiste à subdiviser l'adressage IP v4 en sous-réseau et à faire partager une même adresse par plusieurs machines. Cependant les fournisseurs d'accès n'ont à présent (presque) plus de blocs d'adresses libres à proposer en IP v4.

## Création du protocole IP v6

La version 5 du protocole IP n'existe pas car le numéro de version 5 était déjà réservé à un autre protocole. Le numéro de version IP passe donc directement de la version 4 à la version 6.
Le protocole IP v6 conçu dès la fin des années 1990 définit une adresse sur 128 bits pouvant donc adresser environ 3×10$^{38}$ machines. Cette nouvelle version du protocole IP résout donc le problème de pénurie d'adresses. De plus l'adressage est simplifié par le fait que chaque machine possède une adresse propre.

## Format des adresses IP v6

Les adresses IP v6 sont formées de 8 paquets de 4 chiffres hexadécimaux séparés par le signe deux-points. Exemple :
Les zéros devant chaque nombre peuvent être supprimés :
Une séquence (une seule) de nombres nuls présent dans l'adresse peut être supprimée à condition de conserver les deux signes deux-points les encadrant :
Certaines adresses facilitant la migration depuis l'IP v6 peuvent se terminer par une adresse au format IPv4 :

## Adresse IP v6 dans les URLs

Au lieu d'utiliser le nom de domaine du serveur dans une URL, son adresse IP peut être utilisée. Dans ce cas, aucun serveur DNS n'est utilisé.
En IPv4, l'adresse est directement utilisable, même si un numéro de port est spécifié :
En IPv6, le caractère deux-points étant utilisé également dans l'adresse, il faut encadrer celle-ci entre crochets :

# Les serveurs DNS

Le DNS (Domain Name System) est un service qui permet d'effectuer la résolution de noms, c'est à dire d'associer une adresse IP à un FQDN (Full Qualified Domain Name) et inversement.

## FQDN

Un FQDN est composé d'un nom d'hôte et d'un nom de domaine, par exemple .wikibooks.org est un FQDN où est le nom d'hôte et wikibooks.org le nom de domaine.
Les noms de domaine sont organisés de manière hiérarchique, le domaine se trouvant le plus haut dans la hiérarchie est « . », il est omis dans les FQDN. En « dessous » dans la hiérarchie se trouvent les TLD (Top Level Domain).

## Le cours sur les serveurs DNS

Le Domain Name System (ou DNS, système de noms de domaine) est un système permettant d'établir une correspondance entre une adresse IP et un nom de domaine et, plus généralement, de trouver une information à partir d'un nom de domaine.

### Adresse FQDN

Dans un réseau TCP/IP, chaque machine possède une adresse FQDN (Fully Qualified Domain Name) encore appelée nom qualifié.
Le FQDN est l'association entre le nom de la machine et le domaine auquel elle appartient.
Exemple : .wikibooks.org. est le FQDN de la machine appartenant au domaine .wikibooks.org.
Ce nom a la structure ww.xx.yy.zz soit une suite d'éléments séparés par des points. Chaque élément est fait des lettres de l'alphabet, chiffres et/ou trait d'union, et ne peut excéder 63 caractères. L'ensemble d'un FQDN ne peut excéder 255 caractères.

### Résolution de noms directe

Dans un réseau IP, lorsqu’une machine A veut communiquer avec une machine B, la machine A connaît le nom FQDN de B.
Par exemple, lorsqu’on navigue sur le net, on connaît en général le nom FQDN des serveurs qu’on visite (exemple .wikibooks.org). Pour que A puisse communiquer avec B grâce au protocole IP, A va avoir besoin de connaître l’adresse IP de B.
A doit posséder un moyen d’effectuer la résolution de noms directe, c’est-à-dire un moyen de trouver l’adresse IP de B à partir de son nom qualifié. Le résolveur est le programme chargé de cette opération.

### Résolution de noms inverse

La machine B reçoit un datagramme IP en provenance de A. Ce datagramme contient l’adresse IP de A. B peut avoir besoin de connaître le nom FQDN de la machine A. B doit donc être capable de trouver le nom FQDN de A à partir de son adresse IP. C’est ce qu’on appelle la résolution de noms inverse.
Le résolveur est également chargé de cette opération.

### Résolution de noms par fichier hosts

Un fichier comprend l’adresse FQDN de chaque machine du réseau ainsi que son adresse IP. Cette méthode n’est envisageable que pour les réseaux très petits.

### Résolution de nom par serveur DNS (Domain Name System)

On installe un serveur de noms sur le réseau. Chaque machine du réseau doit connaître l’adresse IP de ce serveur DNS. Dès qu’une machine veut effectuer une résolution de noms directe ou inverse, elle va interroger le serveur de noms. L’administrateur doit configurer le serveur de noms pour que ce dernier connaisse l’adresse IP et le nom de toutes les machines du réseau.

### Notation inverse des adresses IP

Les DNS notent les adresses IP (partielles) dans l'ordre inverse et ajoutent le suffixe "IN-ADDR.ARPA".
Exemples :

### Zones directes et inverses

* Dans un réseau TCP/IP, chaque machine doit être capable de faire de la résolution de noms directe sur les adresses FQDN de toutes les machines du réseau.
* Chaque machine doit aussi être capable de faire de la résolution de noms inverses sur toutes les adresses IP du réseau.
* exemple :
Un réseau IP utilise les adresses IP 200.201.202.0 de masque 255.255.255.0 .
Ce réseau comporte 3 machines A, B et C d'adresse respective 200.201.202.1, 200.201.202.2 et 200.201.202.3 . Toutes les machines sont dans le domaine de noms toto.fr. Les adresses FQDN de A, B et C sont donc A.toto.fr., B.toto.fr. et C.toto.fr. Nous allons installer un serveur DNS sur la machine C.
Zone directe
C doit être capable à partir de n'importe quel nom du type *.toto.fr de fournir l'adresse IP de la machine. Dans le jargon TCP/IP, on dit que C a autorité sur la zone toto.fr.
Cette zone sert à faire de la résolution de noms directe.
Zone inverse
C doit être capable à partir de n'importe quelle adresse IP du type 200.201.202.* de fournir l'adresse FQDN de la machine.
Dans le jargon TCP/IP, on dit que C a autorité sur la zone 202.201.200.IN-ADDR.ARPA. . Cette zone sert à faire de la résolution de noms inverse.
Récapitulatif
Notre serveur DNS a donc autorité sur 2 zones : → toto.fr.
→ 202.201.200.IN-ADDR.ARPA. .
La configuration de chaque zone est écrite dans un fichier de zone.

### Panne d'un serveur DNS

* Un serveur DNS est un élément vital sur un réseau. S'il tombe en panne, les machines du réseau sont incapables de communiquer entre elles (À moins, bien sûr, que les machines connaissent directement l'adresse IP des machines du réseau avec lesquelles elle veulent communiquer).
* De plus, un serveur de noms DNS qui reçoit des requêtes de millions de machines peut être saturé.
* Le réseau entre une machine et son serveur DNS peut également tomber en panne.
* Dans les 3 cas, tout le réseau est en panne.

### Amélioration de la résistance aux pannes

* Pour améliorer la résistance aux pannes du réseau, on installe des serveurs de noms secondaires.
* Tout comme les serveurs primaires, ils sont capables de faire de la résolution de noms directe et inverse sur différentes zones.
* Un serveur secondaire s’installe lorsque le serveur DNS primaire est en marche (pas après la panne).

### Configuration d'un DNS secondaire

Tout serveur secondaire pour une zone donnée doit connaître l'adresse IP du serveur de noms primaire qui a autorité sur cette zone.
Lorsqu'on lance le serveur secondaire, il va interroger le serveur de noms primaire pour obtenir une copie du fichier de zone.
Pour une zone donnée, il ne peut y avoir qu'un seul serveur de noms primaire (sauf rares cas particuliers ou plusieurs serveurs primaires peuvent être nécessaires).
Par contre, il peut y avoir de nombreux serveurs de noms secondaires.

### Configuration des postes clients

Chaque machine doit connaître une liste de serveurs DNS primaires ou secondaires Cette liste doit comporter au moins un élément. Lorsqu’aucun serveur DNS n’est en panne, la machine va interroger en permanence le premier serveur de la liste.

### Serveur DNS en panne

Si la machine interroge le premier serveur DNS de la liste et que celui-ci ne répond pas, la machine va interroger le deuxième de la liste. Si le deuxième ne répond pas, on interroge le troisième. Si tous les serveurs DNS sont en panne, tout le réseau est en panne. 'Remarque : Si la machine interroge le premier serveur DNS de la liste et que celui-ci répond que la machine n’existe pas, la machine ne va pas interroger le deuxième de la liste.

### Répartition de la charge

Le premier serveur DNS de la liste n’est pas forcément le serveur primaire.
Si le réseau contient un DNS primaire A et 2 serveurs secondaires B et C, il est bon de répartir la charge entre A, B et C :
1/3 des machines aura comme liste A, B et C
1/3 des machines aura comme liste B, C et A
1/3 des machines aura comme liste C, A et B

### Mise à jour d'un serveur DNS primaire

La mise à jour des serveurs de noms primaires est effectuée par l'administrateur de réseau. Il doit rentrer chaque machine du réseau dans la zone directe et dans la zone inverse.

### Mise à jour d'un serveur DNS secondaire

La mise à jour des serveurs de noms secondaires est automatique. Chaque serveur de noms secondaire doit interroger à intervalle de temps régulier (par exemple toutes les 3 heures) le serveur de noms primaire et il met à jour sa copie locale du fichier de zone.

### Un problème lié à la mise à jour du DNS

L'administrateur met à jour un serveur de noms primaire et lui rajoute une machine Si le serveur de noms secondaires se met à jour toutes les 3 heures, il peut se passer un délai de plusieurs heures avant que les serveurs de noms secondaires soient à jour. Cela peut être très gênant pour le fonctionnement du réseau : la machine qu’on vient de rajouter est inaccessible. L ’administrateur peut forcer « à la main » la mise à jour du serveur secondaire mais ce n ’est pas très pratique.

### Notification

De manière optionnelle, l'administrateur peut mettre en œuvre la notification. Le serveur de noms primaire doit connaître les adresses IP des serveurs de noms secondaires. Dès que l'administrateur met à jour le serveur de noms primaires, celui-ci envoie automatiquement un message à tous les serveurs de noms secondaires qui se mettent alors à jour immédiatement.
Remarque : Il faut être sûr des modifications apportées. Si une erreur s'est glissée dans les modifications apportées, celle-ci sera automatiquement propagée sur les serveurs DNS secondaires.

### Interconnexion de réseaux

Supposons que 3 réseaux Ethernet A, B et C soient interconnectés par un routeur R
A est le réseau 192.168.1.0 /24
B est le réseau 192.168.2.0 /24
C est le réseau 192.168.3.0 /24
Toutes les machines du réseau peuvent avoir le même domaine direct toto.fr
* Installation d'un serveur DNS primaire
** Sur un tel réseau, on peut très bien n’installer qu’un seul serveur DNS sur le réseau A par exemple. Nous appellerons ce serveur DNS-A.
** Toutes les machines attaqueront dans ce cas le même serveur DNS : il n’est pas obligatoire qu’un serveur DNS soit sur le même réseau qu’une machine.
* Zones directes et inverses
Le serveur DNS-A aura autorité sur 4 zones
** toto.fr.
** 1.168.192.IN-ADDR.ARPA.
** 2.168.192.IN-ADDR.ARPA.
** 3.168.192.IN-ADDR.ARPA.
* Résistance aux pannes
** Pour améliorer la résistance aux pannes, il est toutefois conseillé d’installer un serveur DNS sur chaque réseau.
** Nous installerons donc 2 serveurs DNS secondaires DNS-B et DNS-C respectivement sur les réseaux B et C.
** Chacun de ces serveurs DNS secondaires aura autorité sur les 4 zones mais sera serveur DNS secondaire pour ces zones.
** Chaque machine interrogera en premier le serveur DNS le plus proche d’elle.
* Configuration des postes clients
** Chaque poste client interrogera en premier les serveurs DNS en commençant par le plus proche.
** Les machines du réseau A auront comme liste de serveurs DNS : DNS-A, DNS-B et DNS-C.
** Les machines du réseau B auront comme liste de serveurs DNS : DNS-B, DNS-C et DNS-A.
** Les machines du réseau C auront comme liste de serveurs DNS : DNS-C, DNS-A et DNS-B.
** Ce choix assure en plus une meilleure résistance aux pannes en cas de panne de R.
** Il faudra également configurer sur chaque machine le nom du domaine direct.

### Quelques notions sur les fichiers de zone

* La configuration de chaque zone est décrite dans un fichier texte appelé fichier de zone.
* Le fichier de zone est constitué d’enregistrements.
* Il existe de nombreux types d’enregistrements : NS, SOA, A, PTR, ...
* En général, on utilise un logiciel de configuration qui écrit automatiquement les fichiers de zone.

### Les enregistrements NS

* NS Name server, ils permettent de spécifier les serveurs de noms ayant autorité sur le domaine.
Exemple :
Cet enregistrement indique que la machine d'adresse FQDN serveur.toto.fr. a autorité sur toto.fr. Chaque fichier de zone comporte en général un tel enregistrement.

### Les enregistrements SOA

* SOA Start Of Authority
Ils permettent de fixer des paramètres en secondes qui sont utilisés lorsqu’il y a des serveurs DNS secondaires.
Exemple :
Cet enregistrement comporte :
* Le nom de la zone toto.fr. Pour parler de la zone courante on aurait pu indiquer @ à la place de toto.fr.
* IN SOA qui indique le type de l'enregistrement.
* L'adresse FQDN du serveur primaire, ici : serveur.toto.fr.
* L'adresse e-mail de l'administrateur, ici : admin@serveur.toto.fr.
* Le numéro de version du fichier, ici : 32. À chaque modification du ficher de zone ce numéro doit être incrémenté de 1. Il permet aux serveurs DNS secondaires de savoir s'ils possèdent ou non la dernière version du fichier de zone.
* Le temps de rafraîchissement, ici : 10800 secondes soit 3h. Toutes les 3 heures, les serveurs DNS secondaires doivent contacter le primaire et éventuellement mettre à jour leur fichier de zone.
* Le temps avant un nouvel essai, ici : 600 secondes soit 10 minutes. Si l'opération précédente a échoué (le serveur primaire redémarrait ou le réseau était momentanément en panne,...), les serveurs DNS secondaires vont essayer de se mettre à jour toutes les 10 minutes jusqu'à ce qu'ils y arrivent. Ils reprennent ensuite leur cycle de mise à jour toutes les 3 heures.
* Le temps d'expiration, ici : 86400 secondes soit 24 heures. Si les DNS secondaires n'arrivent pas à contacter le primaire, ils vont fonctionner de manière autonome durant 24h ensuite ils considèreront leurs informations comme étant obsolètes et ils cesseront de fonctionner.
* Durée de vie d'un enregistrement (TTL), ici : 3600 secondes soit 1 heure. La durée de vie d'un enregistrement permet de déterminer le temps durant lequel une copie de cet enregistrement peut être conservée dans un cache.

### Enregistrements de type A

* A Address
Ils se trouvent dans la zone directe et permettent d'associer une adresse FQDN à une adresse IP. En général, chaque machine possède un enregistrement de type A dans sa zone directe.
Exemple :

### Enregistrements de type PTR

* PTR PoinTer Record
Il se trouve dans la zone inverse et permet d'associer la dernière partie d'une adresse IP (numéro de machine) à une adresse FQDN. L'adresse IP est écrite "à l'envers" et se termine par in-addr.arpa (!). En général, chaque machine possède un enregistrement de type PTR dans sa zone inverse.
Exemple : Pour la machine pc1.toto.fr d'adresse IP 200.50.12.14 :

### Exemple de fichier de zone

* Présentation
Un réseau utilise les adresses 200.50.12.0/24 et le nom de domaine toto.fr. Le réseau comporte 3 machines : pc1 (adresse IP 200.50.12.1), pc2 (adresse IP 200.50.12.2) et pc3 (adresse IP 200.50.12.3). pc3 est le serveur DNS du réseau.
* Zones:
pc3 a autorité sur la zone directe toto.fr et sur la zone inverse 12.50.200.IN-ADDR.ARPA
* Fichier de zone de toto.fr

### Interconnexion de serveurs DNS

Sur Internet, les différents serveurs DNS se connaissent mutuellement. Imaginons la situation suivante : l'utilisateur de la machine X du réseau local de l'entreprise toto utilise Internet Explorer et tape : .wikibooks.org. Cette machine a besoin de connaître l'adresse IP de la machine portant le nom .wikibooks.org.
* Les différents serveurs DNS
** S1 est le serveur DNS de l'entreprise toto. Il a autorité sur toto.fr.
** S2 est le serveur DNS de l'organisation wikibooks. Il a autorité sur wikibooks.org.
** S3 est le serveur DNS ayant autorité sur .fr.
** S4 est le serveur DNS ayant autorité sur .com.
** S5 est un serveur racine d'Internet qui a autorité sur . (point étant la racine de tous les noms de domaines).
* Schéma d'une résolution
** La machine voulant faire la résolution interroge S1.
** S1 ne connaît pas l'adresse IP de .wikibooks.org. Il interroge S3, qui n'a pas la réponse mais qui fournit à S1 l'adresse IP de S5.
** S1 interroge S5 qui n'a pas la réponse mais qui fournit à S1 l'adresse IP de S4.
** S1 interroge S4 qui n'a pas la réponse mais qui fournit à S1 l'adresse IP de S2.
** S1 interroge S2 qui a autorité sur wikibooks.org et qui connaît donc l'adresse IP de la machine .wikibooks.org. S2 envoie à S1 cette adresse IP.
** S1 fournit la réponse à la machine de départ.
Bien entendu, le nombre de connexions étant important, chaque DNS (et parfois les postes clients) gère un cache des noms de domaines demandés afin de diminuer le nombre de requêtes.

## Liens internes

* DNS : Quelques notions sur les DNS.
* Serveurs DNS racine : présentation des serveurs DNS racines.

# Le routage IP statique
## Routeur

Un routeur est un dispositif relié à au moins deux réseaux, dont le travail est de déterminer le prochain nœud du réseau auquel un paquet de données doit être envoyé. Pour ce faire un routeur utilise une « table de routage ».
Plus d'infos sur Wikipédia.

## Table de routage

La table de routage établit la correspondance entre une machine de destination, le prochain routeur et l'interface réseau à utiliser pour suivre ce chemin. Dans le cas où plusieurs chemins sont possibles, on fait appel à des algorithmes spéciaux.

## Le cours sur le routage
### Interconnexion de réseaux

Pour interconnecter des réseaux IP, on utilise des routeurs IP. Les routeurs sont des boîtiers dédiés possédant un certain nombre d’interfaces (Ethernet, liaison série…) permettant la communication entre les machines des différents réseaux.

### Objectif du routage

Il faut configurer chaque machine et chaque routeur pour que toutes les machines puissent envoyer un datagramme IP à n’importe quelle autre machine. Pour cela, il faudra notamment configurer la table de routage de chaque routeur et chaque machine.

### Interface réseaux

Il s’agit d’un moyen d’accéder à un réseau : une carte Ethernet, une liaison série... Les cartes Ethernet d’une machine ou d’un routeur seront notées eth0, eth1, eth2, etc. Les liaisons séries seront notées S0/0/0,S0/0/1,.... etc.

### Un exemple de routage

Sur ce schéma on voit 4 réseaux Ethernet A, B, C et D. A et B sont reliés à un routeur R1. C et D sont reliés à un routeur R2. Les 2 routeurs R1 et R2 sont reliés entre eux par une liaison bipoint qui pourrait être par exemple une liaison par modem.

### Remise directe et indirecte

Lorsque X veut envoyer un datagramme à X’, X va envoyer ce datagramme directement sur sa carte Ethernet sans passer par le routeur : on parle alors de remise directe. Lorsque X veut envoyer un datagramme IP à Z, X va envoyer ce datagramme à R1, R1 enverra ce datagramme à R2 et R2 l’enverra à Z : on parle alors de remise indirecte.

### Philosophie du routage IP

* Aucune machine ni aucun routeur ne connaît le plan complet du réseau.
* Chaque machine et chaque routeur possède une table de routage : lorsqu’une machine veut envoyer un datagramme IP à une autre, elle regarde sa table de routage qui lui dit :
** si le destinataire est directement accessible grâce à une interface
** sinon l’adresse IP du routeur auquel il faut envoyer le datagramme. Ce routeur doit être directement accessible
* On indique à chaque étape le routeur suivant : on parle de "next hop routing".

### Un premier exemple

* Adressage IP
** Sur le réseau A, on utilisera les adresses IP du réseau 200.50.60.0 de masque 255.255.255.0.
** Sur le réseau B, on utilisera les adresses IP du réseau 200.50.61.0 de masque 255.255.255.0.
* Adresses IP des interfaces
** Chaque interface possède une adresse IP
** Machine X : une interface eth0 d’adresse IP 200.50.60.1
** Machine X’ : une interface eth0 d’adresse IP 200.50.60.2
** Machine Y : une interface eth1 d’adresse IP 200.50.61.1
** Machine Y’ : une interface eth1 d’adresse IP 200.50.61.2
** Le routeur R a 2 interfaces et il aura donc 2 adresses IP
eth0 d’adresse IP 200.50.60.3
eth1 d’adresse IP 200.50.61.3
* Table de routage de X
| Adresse réseau | Masque | Passerelle | Interface |
| 200.50.60.0 | 255.255.255.0 | 200.50.60.1 | 200.50.60.1 |
| 200.50.61.0 | 255.255.255.0 | 200.50.60.3 | 200.50.60.1 |
** Une table de routage sera constituée de lignes comportant des quadruplets : adresse, masque, passerelle, et interface.
** Pour la première ligne, la passerelle est égale à l’interface : cela signifie que pour envoyer un datagramme à une machine du réseau 200.50.60.0 de masque 255.255.255.0, X peut remettre directement ce datagramme au destinataire grâce à son interface 200.50.60.1.
** Pour la deuxième ligne, la passerelle est différente de l’interface : cela signifie que pour envoyer un datagramme à une machine du réseau 200.50.61.0 de masque 255.255.255.0, la remise est indirecte et X doit envoyer ce datagramme au routeur 200.50.60.3 grâce à son interface 200.50.60.1.
* Table de routage de X'
| Adresse réseau | Masque | Passerelle | Interface |
| 200.50.60.0 | 255.255.255.0 | 200.50.60.2 | 200.50.60.2 |
| 200.50.61.0 | 255.255.255.0 | 200.50.60.3 | 200.50.60.2 |
** Pour la première ligne, la passerelle est égale à l’interface : cela signifie que pour envoyer un datagramme à une machine du réseau 200.50.60.0 de masque 255.255.255.0, X’ peut remettre directement ce datagramme au destinataire grâce à son interface 200.50.60.2.
** Pour la deuxième ligne, la passerelle est différente de l’interface : cela signifie que pour envoyer un datagramme à une machine du réseau 200.50.61.0 de masque 255.255.255.0, la remise est indirecte et X’ doit envoyer ce datagramme au routeur 200.50.60.3 grâce à son interface 200.50.60.2.
* Table de routage de R
| Adresse réseau | Masque | Passerelle | Interface |
| 200.50.60.0 | 255.255.255.0 | 200.50.60.3 | 200.50.60.3 |
| 200.50.61.0 | 255.255.255.0 | 200.50.61.3 | 200.50.61.3 |
** Pour la première ligne, la passerelle est égale à l’interface : cela signifie que pour envoyer un datagramme à une machine du réseau 200.50.60.0 de masque 255.255.255.0, R peut remettre directement ce datagramme au destinataire grâce à son interface 200.50.60.3
** Pour la deuxième ligne, la passerelle est égale à l’interface : cela signifie que pour envoyer un datagramme à une machine du réseau 200.50.61.0 de masque 255.255.255.0, R peut remettre directement ce datagramme au destinataire grâce à son interface 200.50.61.3.
* Table de routage de Y
| Adresse réseau | Masque | Passerelle | Interface |
| 200.50.61.0 | 255.255.255.0 | 200.50.61.1 | 200.50.61.1 |
| 200.50.60.0 | 255.255.255.0 | 200.50.61.3 | 200.50.61.1 |
** Pour la première ligne, la passerelle est égale à l’interface : cela signifie que pour envoyer un datagramme à une machine du réseau 200.50.61.0 de masque 255.255.255.0, Y peut remette directement ce datagramme au destinataire grâce à son interface 200.50.61.1
** Pour la deuxième ligne, la passerelle est différente de l’interface : cela signifie que pour envoyer un datagramme à une machine du réseau 200.50.60.0 de masque 255.255.255.0, la remise est indirecte et Y doit envoyer ce datagramme au routeur 200.50.61.3 grâce à son interface 200.50.61.1.
* Table de routage de Y'
| Adresse réseau | Masque | Passerelle | Interface |
| 200.50.61.0 | 255.255.255.0 | 200.50.61.2 | 200.50.61.2 |
| 200.50.60.0 | 255.255.255.0 | 200.50.61.3 | 200.50.61.2 |
** Pour la première ligne, la passerelle est égale à l’interface : cela signifie que pour envoyer un datagramme à une machine du réseau 200.50.61.0 de masque 255.255.255.0, Y' peut remette directement ce datagramme au destinataire grâce à son interface 200.50.61.2.
** Pour la deuxième ligne, la passerelle est différente de l’interface : cela signifie que pour envoyer un datagramme à une machine du réseau 200.50.60.0 de masque 255.255.255.0, la remise est indirecte et b doit envoyer ce datagramme au routeur 200.50.61.3 grâce à son interface 200.50.61.2.
* X envoie un datagramme à X'
** X regarde sa table de routage et cherche comment envoyer un datagramme à X’.
** X’ a comme adresse IP 200.50.60.2 : cette adresse appartient au réseau 200.50.60.0 de masque 255.255.255.0.
** la table de routage de X indique que X peut envoyer un datagramme directement à X’ grâce à son interface 200.50.60.1.
* X envoie un datagramme à Y
** X regarde sa table de routage : Y (d’adresse IP 200.50.61.1) appartient au réseau 200.50.61.0 de masque 255.255.255.0.
** X envoie ce datagramme à l’adresse IP 200.50.60.3 grâce à son interface 200.50.60.1.
** R reçoit ce datagramme.
** R regarde le destinataire du datagramme : 200.50.61.1.
** R regarde sa table de routage : 200.50.61.1 appartient au réseau 200.50.61.0 de masque 255.255.255.0.
** R envoie donc ce datagramme directement sur son interface 200.50.61.3.
** Y reçoit le datagramme et s’aperçoit qu’il est pour lui

### Route par défaut

On aurait pu écrire ainsi la table de routage de X :
| Adresse réseau | Masque | Passerelle | Interface |
| 200.50.60.0 | 255.255.255.0 | 200.50.60.1 | 200.50.60.1 |
| 0.0.0.0 | 0.0.0.0 | 200.50.60.3 | 200.50.60.1 |
* Si X doit envoyer un datagramme IP à une machine du réseau 200.50.60.0, X doit envoyer directement ce datagramme sur son interface 200.50.60.1.
* Pour toutes les autres adresses IP (c'est la signification de 0.0.0.0 / 0.0.0.0), X envoie ce datagramme à l’adresse IP 200.50.60.3
* L’adresse IP 200.50.60.3 s’appelle la passerelle par défaut de X

### Deuxième exemple

* Adressage IP des réseaux
** Le réseau A va utiliser les adresses IP 200.50.60.0 de masque 255.255.255.0
** Le réseau B va utiliser les adresses IP 200.50.61.0 de masque 255.255.255.0
** Le réseau C va utiliser les adresses IP 200.50.62.0 de masque 255.255.255.0
** Le réseau D va utiliser les adresses IP 200.50.63.0 de masque 255.255.255.0
* Adresses des machines
** X possède une interface eth0 d’adresse IP 200.50.60.1
** Y possède une interface eth0 d’adresse IP 200.50.61.1
** Z possède une interface eth0 d’adresse IP 200.50.62.1
** W possède une interface eth0 d’adresse IP 200.50.63.1
* Adresses IP des routeurs
** R1 possède 3 interfaces : eth0 d’adresse IP 200.50.60.2, eth1 d’adresse IP 200.50.61.2 et ppp0 d’adresse IP 200.50.64.1.
** R2 possède 3 interfaces : eth0 d’adresse IP 200.50.62.2, eth1 d’adresse IP 200.50.63.2 et ppp0 d’adresse IP 200.50.64.2.
* Table de routage de X
| Adresse réseau | Masque | Passerelle | Interface |
| 200.50.60.0 | 255.255.255.0 | 200.50.60.1 | 200.50.60.1 |
| 0.0.0.0 | 0.0.0.0 | 200.50.60.2 | 200.50.60.1 |
* Table de routage de Y
| Adresse réseau | Masque | Passerelle | Interface |
| 200.50.61.0 | 255.255.255.0 | 200.50.61.1 | 200.50.61.1 |
| 0.0.0.0 | 0.0.0.0 | 200.50.61.2 | 200.50.61.1 |
* Table de routage de Z
| Adresse réseau | Masque | Passerelle | Interface |
| 200.50.62.0 | 255.255.255.0 | 200.50.62.1 | 200.50.62.1 |
| 0.0.0.0 | 0.0.0.0 | 200.50.62.2 | 200.50.62.1 |
* Table de routage de W
| Adresse réseau | Masque | Passerelle | Interface |
| 200.50.63.0 | 255.255.255.0 | 200.50.63.1 | 200.50.63.1 |
| 0.0.0.0 | 0.0.0.0 | 200.50.63.2 | 200.50.63.1 |
* Table de routage de R1
| Adresse réseau | Masque | Passerelle | Interface |
| 200.50.60.0 | 255.255.255.0 | 200.50.60.2 | 200.50.60.2 |
| 200.50.61.0 | 255.255.255.0 | 200.50.61.2 | 200.50.61.2 |
| 200.50.64.2 | 255.255.255.255 | 200.50.64.1 | 200.50.64.1 |
| 0.0.0.0 | 0.0.0.0 | 200.50.64.2 | 200.50.64.1 |
La troisième ligne indique une route vers un hôte : pour atteindre l’adresse IP 200.50.64.2, il suffit d’envoyer un datagramme directement sur l’interface 200.50.64.1.
* Table de routage de R2
| Adresse réseau | Masque | Passerelle | Interface |
| 200.50.62.0 | 255.255.255.0 | 200.50.62.2 | 200.50.62.2 |
| 200.50.63.0 | 255.255.255.0 | 200.50.63.2 | 200.50.63.2 |
| 200.50.64.1 | 255.255.255.255 | 200.50.64.2 | 200.50.64.2 |
| 0.0.0.0 | 0.0.0.0 | 200.50.64.1 | 200.50.64.2 |
La troisième ligne indique une route vers un hôte : pour atteindre l’adresse IP 200.50.64.1, il suffit d’envoyer un datagramme directement sur l’interface 200.50.64.2.
* X envoie un datagramme IP à W
** W a comme adresse IP 200.50.63.1 : X va lire sa table de routage et envoie ce datagramme au routeur 200.50.60.2 grâce à son interface 200.50.60.1 (eth0).
** R1 va recevoir ce datagramme et va lire l’adresse IP du destinataire : il consulte sa table de routage et envoie ce datagramme au routeur 200.50.64.2 grâce à son interface 200.50.64.1 (ppp0).
** R2 reçoit ce datagramme, lit l’adresse IP du destinataire et consulte sa table de routage : il envoie donc le datagramme directement sur son interface 200.50.63.2 (eth1).
** W reçoit ce datagramme et s’aperçoit qu’il est pour lui et il le garde !

### Un troisième exemple

* Réseau de type backbone
** Le réseau H est le backbone de notre réseau : il est connecté à différents routeurs. Chaque **routeur est lui-même connecté à différents réseaux.
* Adressage IP et évolution
** Il faut penser aux évolutions futures du réseau.
** Il serait dommage que le rajout d’un réseau ou d’un routeur oblige l’administrateur à changer les adresses IP de toutes les machines du réseau.
** Nous allons supposer que l’administrateur doit utiliser les adresses IP du réseau 180.50.0.0 de masque 255.255.0.0.
* Découpage : premier niveau
** Nous allons découper les réseaux en 8 parties dont 6 seront utilisables
** La première partie sera appelée réseau R1 : il regroupe tous les réseaux connectés à R1 sauf le backbone .
** La deuxième partie sera appelée réseau R2 : il regroupe tous les réseaux connectés à R2 sauf le backbone.
** La troisième partie sera appelée réseau R3 : il regroupe tous les réseaux connectés à R3 sauf le backbone .
** La quatrième partie sera appelées réseau d’administration et sera utilisée pour les autres réseaux notamment le backbone ou par exemple d’éventuels accès extérieurs via un modem.
** Les cinquième et sixième parties seront éventuellement utilisées pour de futurs routeurs R4 et R5.
** masque On a besoin de 3 bits pour permettre la gestion de jusqu'à 2^3=8 réseaux (R1,...,R7 et réseau d'administration). Pour le masque des réseaux R1, R2, R3 et du réseau d’administration les 8+8=16 premiers bits sont déjà à 1. Le masque comporte donc 16+3=19 bits à 1 suivis de 13 bits à 0 : le masque est donc 255.255.224.0.
** adresses réseaux obtenues
Le réseau R1 a comme adresse 180.50.32.0 Le réseau R2 a comme adresse 180.50.64.0 Le réseau R3 a comme adresse 180.50.96.0 Le réseau d’administration a comme adresse 180.50.128.0
* Découpage : deuxième niveau
** On redécoupe en 8 le réseau R1 : les 2 premiers sous-réseaux seront attribués à A et B.
** On redécoupe en 8 le réseau R2 : les 3 premiers sous-réseaux seront attribués à C, D et E.
** On redécoupe en 8 le réseau R3 : les 2 premiers sous-réseaux seront attribués à F et G.
** On redécoupe en 8 le réseau d’administration : le premier sous-réseau sera attribué à H (ou on peut laisser le réseau d'administration sans découpage puisque il contient un seul sous-réseau)
** Masque Lorsqu’on redécoupe chaque sous-réseau, le masque obtenu comporte 22 bits à 1 et est donc 255.255.252.0.
** adresses réseaux obtenues
On redécoupe R1 :
Le réseau A obtient comme adresse 180.50.36.0
Le réseau B obtient comme adresse 180.50.40.0
On redécoupe R2 : Le réseau C obtient comme adresse 180.50.68.0
Le réseau D obtient comme adresse 180.50.72.0
Le réseau E obtient comme adresse 180.50.76.0
On redécoupe R3 : Le réseau F obtient comme adresse 180.50.100.0
Le réseau G obtient comme adresse 180.50.104.0
Le réseau H reste inchangé puisqu'il a un seul sous-réseau (le réseau H), donc le réseau H a comme adresse 180.50.128.0 et comme masque 255.255.224.0
* Attribution des adresses IP aux machines
X a comme adresse IP 180.50.36.2 Y a comme adresse IP 180.50.76.2 Z a comme adresse IP 180.50.100.2 W a comme adresse IP 180.50.128.4
* Table de routage de R1
| Adresse réseau | Masque | Passerelle | Interface |
| 180.50.36.0 | 255.255.252.0 | 180.50.36.1 | 180.50.36.1 |
| 180.50.40.0 | 255.255.252.0 | 180.50.40.1 | 180.50.40.1 |
| 180.50.128.0 | 255.255.224.0 | 180.50.128.1 | 180.50.128.1 |
| 180.50.64.0 | 255.255.224.0 | 180.50.128.2 | 180.50.128.1 |
| 180.50.96.0 | 255.255.224.0 | 180.50.128.3 | 180.50.128.1 |
* Table de routage de R2
| Adresse réseau | Masque | Passerelle | Interface |
| 180.50.68.0 | 255.255.252.0 | 180.50.68.1 | 180.50.68.1 |
| 180.50.72.0 | 255.255.252.0 | 180.50.72.1 | 180.50.72.1 |
| 180.50.76.0 | 255.255.252.0 | 180.50.76.1 | 180.50.76.1 |
| 180.50.128.0 | 255.255.224.0 | 180.50.128.2 | 180.50.128.2 |
| 180.50.32.0 | 255.255.224.0 | 180.50.128.1 | 180.50.128.2 |
| 180.50.96.0 | 255.255.224.0 | 180.50.128.3 | 180.50.128.2 |
* Table de routage de R3
| Adresse réseau | Masque | Passerelle | Interface |
| 180.50.100.0 | 255.255.252.0 | 180.50.100.1 | 180.50.100.1 |
| 180.50.104.0 | 255.255.252.0 | 180.50.104.1 | 180.50.104.1 |
| 180.50.128.0 | 255.255.224.0 | 180.50.128.3 | 180.50.128.3 |
| 180.50.32.0 | 255.255.224.0 | 180.50.128.1 | 180.50.128.3 |
| 180.50.64.0 | 255.255.224.0 | 180.50.128.2 | 180.50.128.3 |
* Table de routage de X
| Adresse réseau | Masque | Passerelle | Interface |
| 180.50.36.0 | 255.255.252.0 | 180.50.36.2 | 180.50.36.2 |
| 0.0.0.0 | 0.0.0.0 | 180.50.36.1 | 180.50.36.2 |
* Table de routage de Y
| Adresse réseau | Masque | Passerelle | Interface |
| 180.50.76.0 | 255.255.252.0 | 180.50.76.2 | 180.50.76.2 |
| 0.0.0.0 | 0.0.0.0 | 180.50.76.1 | 180.50.76.2 |
* Table de routage de Z
| Adresse réseau | Masque | Passerelle | Interface |
| 180.50.100.0 | 255.255.252.0 | 180.50.100.2 | 180.50.100.2 |
| 0.0.0.0 | 0.0.0.0 | 180.50.100.1 | 180.50.100.2 |
* Table de routage de W
| Adresse réseau | Masque | Passerelle | Interface |
| 180.50.128.0 | 255.255.224.0 | 180.50.128.4 | 180.50.128.4 |
| 180.50.32.0 | 255.255.224.0 | 180.50.128.1 | 180.50.128.4 |
| 180.50.64.0 | 255.255.224.0 | 180.50.128.2 | 180.50.128.4 |
| 180.50.96.0 | 255.255.224.0 | 180.50.128.3 | 180.50.128.4 |

# NAT
## Traduction d'adresses NAT/PAT

Traduction d'adresses réseau (NAT) Network Address Translation
Traduction d'une adresse IP (Internet Protocol) d'un réseau en une adresse IP différente d'un autre réseau. Un réseau est désigné réseau interne et l'autre est le réseau externe. Le réseau interne s'affiche sous la forme d'une entité pour le monde extérieur. Dans le cas de réseaux locaux sans fil avec une connexion Internet externe, la fonctionnalité NAT d'un logiciel de partage de connexion Internet permet le partage d'une connexion Internet entre des ordinateurs sans fil connectés.

### Objectif de la traduction d'adresse NAT

Permettre aux machines d'un réseau, ou un groupe de machines, de n'apparaitre que sous l'identifiant d'une seule adresse IP (éventuellement choisie parmi un groupe d'adresses prédéfinies : pool) pour les réseaux extérieurs (c'est un masquage).
Une image pour illustrer cela est comme si un seul interlocuteur parlait au nom de tout un groupe à une entité extérieure.
C'est une opération associée aux routeurs (ou passerelles). Votre passerelle Internet fait du NAT entre votre réseau privé et le réseau Internet et de ce fait votre fournisseur d'accès ne vous fournit, en général, qu'une seule IP alors que vous pouvez très bien avoir plusieurs machines, voire plusieurs réseaux, connectés à Internet à partir de votre zone locale.
La mise en place de ce protocole est due principalement au manque d'adresses IP dans le plan d'adressage IPv4 pour l'accès à Internet.
IPv4 est limité à 4 octets, ce qui correspond à peu près à 2$^{32}$ adresses possibles. IPv6, un nouveau plan d'adressage sur 16 octets, permet 2$^{128}$ adresses possibles ; ce qui est considérable mais pas infini.

### Liens internes

* Network address translation sur la Wikipédia.

# VPN
## Les VPN

Une connexion VPN (Virtual Private Network ou réseau privé virtuel) sert à se connecter à un réseau privé (d'une entreprise par exemple) à partir d'un ordinateur quelconque situé à l'extérieur de ce réseau (par exemple via internet) ou bien entre deux réseaux locaux (site à site).
Le réseau emprunté étant public, il est considéré comme moins sécuritaire qu'un réseau local où les données ne peuvent pas être interceptées. C'est pourquoi une connexion VPN est censée chiffrer les données afin qu'elles soient illisibles par une tierce personne (on utilise la notion de tunnel pour symboliser ce cryptage).
Pour mettre ce service en place, il faut disposer d'un serveur qui recevra les requêtes et qui jouera le rôle de passerelle vers le réseau privé. C'est lui qui se chargera d'initialiser la connexion, de crypter et décrypter les données etc.

# La pile TCP/IP
## La pile TCP/IP
### Le datagramme IP (version 4)

Lorsque deux machines communiquent en utilisant le protocole IP, elles s'échangent des datagrammes IP qui ont le format ci-dessous :
32 bits (= 4 octets) :
| Numéro de version | Longueur en-tête | Type de service | Longueur totale du datagramme | Longueur totale du datagramme |
| Identificateur (recopié dans chaque segment) | Identificateur (recopié dans chaque segment) | Identificateur (recopié dans chaque segment) | Drapeaux + position du segment |
| Durée de vie | Durée de vie | Protocole couche 4 | Somme de contrôle de l'en-tête | Somme de contrôle de l'en-tête |
| Adresse IP source ||||||
| Adresse IP destination ||||||
| Options ||||||
| Données ||||||
* Version (4 bits) :
    le champ version indique la version utilisée du protocole IP. Début 2006, la version de IP la plus fréquemment utilisée est la version 4. La version 6 commence à apparaitre : il n'y aura pas de version 5. Les 4 bits de ce champ sont donc 0100 (codage en binaire de la valeur décimale 4).
* IHL = IP Header Length - longueur de l'en-tête IP (4 bits) :
    ce champ indique la longueur de l'entête IP. L'unité est le nombre de mots de 32 bits. Pour la version 4 la longueur de cette entête est de 20 octets soit 5 fois 32 bits : ce champ vaut donc 0101.
* Type of service (8 bits) :
    ce champ permet d'indiquer que certains datagrammes IP ont une priorité supérieure à d'autres. Il est peu utilisé sauf par quelques routeurs spécialisés dans la transmission de voix sur IP.
* Total length (16 bits) :
    ce champ indique le nombre d'octets du datagramme, en-tête IP comprise. La longueur maximale du datagramme en octets est 2$^{16}$-1 = 65 535 octets = 64 ko -1 octet
* ID (16 bits) :
    ce champ est un identifiant du datagramme IP (le numéro du datagramme).
* F = Flags - les drapeaux (3 bits) :
** le premier bit est inutilisé
** le deuxième bit DF (don't fragment) permet d'interdire ou d'autoriser la fragmentation. positionné à 1, il est interdit de fragmenter ce datagramme IP.
** le troisième bit MF (more fragment) est utilisé lors de la fragmentation : il indique si le fragment est le dernier fragment du datagramme (MF=0) ou non (MF=1).
* TTL = Time to live - temps restant à vivre (8 bits) :
    il s'agit d'une valeur initialisée par l'émetteur et qui est décrémentée de 1 à chaque fois que le datagramme traverse un routeur. Si le TTL arrive à la valeur 0, le datagramme est détruit : ce mécanisme assure la destruction des datagrammes qui se perdent sur le réseau. Ainsi ces datagrammes perdus n'encombrent pas indéfiniment le réseau.
* Protocole (8 bits) :
    ce champ indique la nature des données transportées par ce datagramme IP. 3 protocoles sont principalement utilisés au dessus de IP : ICMP (code 1), TCP (code 6) et UDP (code 17).
* Header Checksum - somme de contrôle de l'en-tête (16 bits) :
    il s'agit d'un code détecteur d'erreurs qui ne porte que sur l'entête : la somme des octets de l'entête regroupé par paquets de 16 bits (header checksum compris) doit valoir 2$^{16}$-1 modulo 2$^{16}$. En cas d'erreur sur l'entête le datagramme est détruit. IP n'est pas un protocole fiable puisqu'on ne garantit pas que les données arrivent, ni de leur fiabilité.
* IP source (32 bits) :
    adresse IP de l'expéditeur.
* IP destination (32 bits) :
    adresse IP du destinataire.

## La fragmentation IP
### Notion de MTU

La plupart des réseaux imposent une limite physique à la taille des données qu'ils peuvent transporter. Un datagramme IP peut avoir une taille maximale de 65535 octets, ce qui est trop grand pour la plupart des réseaux. Le MTU (Maximum Transfert Unit) correspond à la taille maximale des données transportables par le réseau. Le datagramme IP (entête comprise) aura comme taille maximale le MTU du réseau.

### Quelques valeurs du MTU

Ethernet : MTU = 1500 octets (fixé à 1492 pour optimiser sa connexion). FDDI : 4470 octets.

### Découpage par le routeur

Si un routeur route des données d'un réseau A vers un réseau B et si les 2 réseaux ont des valeurs différentes de MTU (par exemple le réseau A est un réseau FDDI de MTU 4470 et le réseau B est un réseau Ethernet de MTU 1500 octets), alors il peut être amené à découper un datagramme IP en plusieurs datagrammes plus petits.

### Le rôle des flags et du champ FO

Si un datagramme a été découpé, il faut être capable de réunir les différents morceaux dans le bon ordre à l'arrivée : les flags (3 bits) et le champ FO (Fragment Offset sur 13 bits) vont contenir les informations nécessaires à cette reconstruction.

### Les flags

* premier bit : inutilisé. La valeur est toujours à 0.
* deuxième bit : DF (Don't fragment) permet d'autoriser ou d'interdire la fragmentation du datagramme. Si le bit DF est à 0, la fragmentation est autorisée et s'il vaut 1, elle est interdite. Si le routeur doit découper un datagramme et que le bit DF est à 1, alors le datagramme IP sera détruit.
* troisième bit : MF (More Fragment) permet d'indiquer si le datagramme est le dernier ou non. Si MF est à 0, alors le fragment est le dernier, s'il vaut 1, alors il n'est pas le dernier.

### Le champ FO

Le nombre d'octets de données de chaque fragment, sauf le dernier, doit être un multiple de 8. Ainsi la position du premier octet de chaque fragment dans le datagramme d'origine sera un multiple de 8. La valeur du champ FO de chaque fragment sera le quotient de cette position par 8, codé en binaire sur 13 bits.

### Exemple

* Données de départ :
** Un routeur doit router un datagramme IP dont la taille totale fait 4470 octets sur un réseau Ethernet.
** Le datagramme initial comprend 20 octets d'entête et 4450 octets de données. Numérotons de 0 à 4449 ces octets.
** Chaque fragment aura une taille maximale de 1500 octets, soit 20 octets d'entête et 1480 octets de données.
* Répartition des données dans les fragments :
** On mettra dans le premier fragment les octets de 0 à 1479 du datagramme initial.
** On mettra dans le deuxième fragment les octets de 1480 à 2959 du datagramme initial.
** On mettra dans le troisième fragment les octets de 2960 à 4439 du datagramme initial.
** On mettra dans le quatrième fragment les octets de 4440 à 4449 du datagramme initial.
* La position du premier octet du fragment dans le datagramme initial sera donc :
** premier fragment : 0
** deuxième fragment : 1480
** troisième fragment : 2960
** quatrième fragment : 4440
* On s'aperçoit que la condition Chaque fragment sauf le dernier contient un nombre d'octets multiple de 8 a pour conséquence que dans tous les fragments y compris le dernier la position du premier octet du fragment dans le datagramme initial est un multiple de 8.
* Description des fragments :
** premier fragment : FO=0/8=0 et MF=1
** deuxième fragment : FO=1480/8=185 et MF=1
** troisième fragment : FO=2960/8=370 et MF=1
** quatrième fragment : FO=4440/8=555 et MF=0

## Le protocole ARP
### Encapsulation des protocoles

* Lorsqu'un datagramme IP est envoyé sur un réseau Ethernet alors sur le réseau il ne va circuler que des trames Ethernet. Ces trames Ethernet contiendront dans leur champ de données un datagramme IP. On dit que le protocole IP est encapsulé dans Ethernet.
* L'encapsulation peut être plus complexe. Lorsque une machine envoie un datagramme ICMP, celui-ci sera encapsulé dans un datagramme IP qui sera encapsulé dans une trame Ethernet.

### Format de la trame Ethernet

Une trame Ethernet contient les champs suivants :
* un préambule sur 64 bits : 31 fois 01 suivi de 11. Le préambule sert à la synchronisation ;
* l'adresse MAC du destinataire ;
* l'adresse MAC de l'expéditeur ;
* un code sur 16 bits indiquant le protocole utilisé au dessus d'Ethernet. IP aura comme code 0800 (en hexadécimal) et ARP aura comme code 0806 ;
* les données ;
* un code détecteur d'erreur de type CRC permettant de savoir si la trame a été altérée ou non.

### Le problème

Imaginons qu'une machine A veuille envoyer un datagramme IP à une machine B via un réseau Ethernet. Le datagramme IP sera encapsulé dans une trame Ethernet. A va avoir besoin des informations suivantes :
* sa propre adresse IP. A connait son adresse IP car l'administrateur l'a configurée ;
* l'adresse IP de B. A la connait : un serveur DNS lui a fourni l'adresse IP de B ;
* sa propre adresse MAC : A la connait car elle est écrite sur sa carte Ethernet ;
* l'adresse MAC de B. A ne possède pas cette information ! A est incapable d'envoyer une trame Ethernet à B sans cette information. Le protocole ARP va permettre à A de récupérer cette information.

### Rôle du protocole ARP

Le protocole ARP, pour Address Resolution Protocol, permet d'obtenir l'adresse MAC d'une machine à partir de son adresse IP.

### Le format de la trame ARP

32 bits (= 4 octets) :
| champ 1 | champ 1 | champ 2 | champ 2 |
| champ 3 | champ 4 | champ 5 | champ 5 |
| champ 6 ||||
| champ 6 (suite) | champ 6 (suite) | champ 7 | champ 7 |
| champ 7 (suite) | champ 7 (suite) | champ 8 | champ 8 |
| champ 8 (suite) ||||
| champ 9 ||||
* champ 1 (2 octets) : type de réseau physique. Il s'agit d'un code indiquant la nature du réseau physique. Pour Ethernet le code sera 01 (en hexadécimal)
* champ 2 (2 octets) : il s'agit du code du protocole réseau utilisé. IP aura comme code 0800 (en hexadécimal).
* champ 3 (1 octet) : longueur de l'adresse physique. Le protocole Ethernet utilise des adresses de 48 bits soit 6 octets. Ce champ vaudra donc 6 pour un réseau Ethernet.
* champ 4 (1 octet) : longueur de l'adresse protocole. Le protocole IP utilise des adresse de 32 bits soit 4 octets. Ce champ vaudra donc 4 pour un réseau IP.
* champ 5 (2 octets) : opération indique la nature de l'opération demandée. Une demande ARP aura comme code 01 et une réponse ARP le code 02.
* champ 6 (6 octets) : adresse physique de l'expéditeur.
* champ 7 (4 octets) : adresse protocole de l'expéditeur.
* champ 8 (6 octets) : adresse physique du destinataire. Pour les demandes ce champ a la valeur hexadécimale FF:FF:FF:FF:FF:FF.
* champ 9 (4 octets) : adresse protocole du destinataire.

### La table ARP

Les réponses des différentes demandes ARP sont mémorisées dans une table ARP qui contient les correspondances entre les adresses MAC et IP de différentes machines.

### Un exemple d'échange de trames ARP

On considère 2 machines A et B sur un même réseau. A souhaite connaître l'adresse MAC de B dont il connait l'adresse IP.
* A envoie en broadcast une demande ARP.
* B notifie dans sa table ARP la correspondance entre les adresses IP et MAC de A.
* B répond à A en lui transmettant son adresse MAC.
* A mémorise les correspondances entre les adresses MAC et IP de B dans sa table ARP.
Les données contenues dans la table ARP ont une validité de 20 minutes. Une fois ce delai dépassé, il faut refaire une demande ARP.

## Le protocole ICMP

ICMP, pour Internet Control Message Protocol, est un protocole de contrôle au niveau de la couche 3 du modèle OSI. À l'instar du protocole IP, il se décline actuellement en versions 4 et 6.

### Le rôle de protocole ICMP

Ce protocole assure les rôles suivants :
* éprouver la connectivité réseau. Par exemple, dans sa version 4, le datagramme ICMP de type 8 (demande d'écho) invite le destinataire à une réponse par un datagramme ICMP de type 0 (réponse à une demande d'écho) ;
* optimiser le réseau, à une certaine échelle ;
* gérer les messages d'erreurs de réseau.
Il n'assure pas d'échange de données proprement dit.

### Le format du paquet ICMP

Les données du protocole ICMP sont encapsulées dans un paquet IP. Dans ce sens, un paquet ICMP désigne un paquet IP dont la charge utile correspond aux données ICMP.
Les champs spécifiques à ICMP sont les suivants :
* Type : sur 8 bits. Ce champ détermine la nature (ou le type ou la catégorie) du datagramme ICMP.
* Code : sur 8 bits. Il indique un sous-type du datagramme ICMP.
* Checksum - somme de contrôle : sur 16 bits. Il correspond à un code détecteur d'erreurs pour les données ICMP.
* Données : sur 32 bits ou plus. Elles figurent des informations, optionnelles, liées aux type et sous-type de paquet ICMP.

### Types de datagramme ICMP

Les RFC de référence, 792 pour la version 4, 4443 et 4884 pour la version 6, spécifient plusieurs types de paquet ICMP.
Les paquets ICMP les plus couramment rencontrés et utilisés sont les suivants :
* demande d'écho : Type 8 en version 4, Type 128 en version 6 ;
* réponse à une demande d'écho : Type 0 en version 4, Type 129 en version 6.

## Le protocole UDP

Le protocole UDP (User Datagram Protocol) utilise le protocole IP (adresses source et destinataire) pour l'envoi et la réception de trames de données (Datagram).
Ce protocole n'est pas "fiable" pour différentes raisons :
* Les paquets peuvent être reçus dans un ordre différent de celui utilisé lors de leur envoi. Ceci s'explique par le fait qu'ils peuvent suivre des routes différentes, subir des traitements différents, ...
* Il n'y a pas d'acquittement ou de retransmission des paquets de données.
* La connexion n'est pas maintenue entre le serveur (émetteur) et le client (récepteur), la transmission des paquets est ponctuelle.
Ce manque de "fiabilité" doit donc être compensé au niveau supérieur (application) en résolvant les points précédents de la manière suivante (par exemple) :
* Afin de reconstituer les données sources, inclure un numéro de paquet pour reconstituer les données dans l'ordre, ou ajouter une adresse dans le flux de donnée global,
* Afin de vérifier la bonne transmission de chaque paquet, ajouter une somme de vérification (CRC, code de hashage),
* Afin de vérifier la bonne transmission de tous les paquets, le client envoi un paquet d'acquittement pour chaque paquet reçu correctement, l'émetteur qui n'obtient pas cet acquittement dans un temps raisonnable retransmet à nouveau le paquet correspondant.

## Le protocole TCP

Le protocole TCP (Tranmission Control Protocol) résout les problèmes de "fiabilité" du protocole UDP, et permet la transmission de données sous la forme d'un flux d'octets plutôt que sous la forme de paquets.

## Voir aussi ...

* IP version 4 : présentation du datagramme IP.
* Ethernet : présentation de la trame Ethernet.
* ARP : présentation de ARP.
* ICMP : présentation du protocole ICMP.

# DHCP

Dynamic Host Configuration Protocol (DHCP) est un terme anglais désignant un protocole réseau dont le rôle est d'assurer la configuration automatique des paramètres TCP/IP d'une station, notamment en lui assignant automatiquement une adresse IP et un masque de sous-réseau.

## But du DHCP

Ce protocole permet, comme son nom l'indique, la configuration automatique du réseau d'un ordinateur.
Ce protocole est couramment utilisé pour attribuer automatiquement des adresses IP à des machines.
Cela permet aussi de gérer depuis une seule machine toute la configuration réseau des machines d'un parc informatique.
Imaginez par exemple un gros réseau d'entreprise dont on a besoin de changer l'adresse IP d'un serveur DNS. Si la configuration est statique sur les postes, il faut alors passer sur chacun d'entre-eux pour déclarer la nouvelle adresse IP du serveur DNS. Ceci s'avère donc très lourd et laborieux. Si les postes sont configurés pour obtenir leur configuration auprès d'un serveur DHCP, alors il suffit de déclarer l'adresse IP dans le fichier de configuration du serveur DHCP, et la modification sera automatiquement prise en compte par toutes les machines, ce qui représente beaucoup moins de travail.

## Échange entre un client et un serveur DHCP

Lorsqu'une machine veut obtenir ses informations de configuration IP, elle va envoyer en diffusion (broadcast) un paquet de 'demande de serveur DHCP'. Tous les serveurs DHCP qui reçoivent ce paquet de diffusion peuvent alors lui répondre pour proposer une adresse IP.
La machine reçoit alors une ou plusieurs réponses. Elle va en choisir une (la première reçue) et répondre au serveur DHCP qui est à l'origine de la réponse pour confirmer qu'elle a bien décidé de choisir cette configuration en particulier. Le serveur envoie alors tous les paramètres qu'il détient (passerelle par défaut, adresse du serveur DNS, WINS, etc.) et la machine se configure elle-même selon ce que le serveur DHCP lui a envoyé.
Afin de s'assurer de ne pas prendre une adresse IP déjà utilisée par une autre machine (éventuellement dû à une configuration statique), la machine envoie une requête ARP sur l'adresse que le serveur vient de lui attribuer. S'il n'y a pas de réponse après une certaine durée, la machine considère que cette adresse lui appartient.
La durée durant laquelle l'adresse lui est attribuée s'appelle un BAIL. À la moitié de la durée du bail, puis régulièrement par la suite, la machine demande le renouvellement du bail au serveur DHCP qui lui a attribué sa configuration IP, ceci pour éviter toute interruption de la communication IP. Si le renouvellement n'a pas eu lieu à l'échéance du bail, la communication IP est interrompue.

# Routage dynamique
## Le routage dynamique

Il existe sur les routeurs certaines applications qui permettent aux routeurs voisins de s'échanger de l'information quant à leur tables de routage; ce sont les protocoles de routage.
Dans le routage statique, l'administrateur réseau doit informer (paramétrer) les routeurs pour leur donner des ordres de routage: sur quelle interface envoyer les datagrammes pour le réseau de destination d'adresse IP "X". C'est une modification statique de la table de routage des routeurs.
C'est long, fastidieux et pas très efficace et ne convient qu'à de petites structures.
Si la configuration du réseau change (souvent) pour des raisons diverses : incident, coupure, changement de matériel, surcharge, alors il faut, pour maintenir le routage dans de bonnes conditions, (donc maintenir la continuité de service), que chaque routeur adapte sa table de routage à la nouvelle configuration. Cela n'est possible qu'à travers un processus automatique.
C'est le rôle des protocoles de routage.
Protocole de routage à vecteur de distance RIP : Routing Information Protocol
Protocole de routage à état de liens OSPF : Open shortest path first

# Les routeurs CISCO
## Les routeurs CISCO

Un routeur est un ordinateur spécial et est doté de mêmes composants de base d’un ordinateur. À savoir :
* UC (processeur) ;
* Mémoires ;
* Système de bus ;
* Interfaces d’entrée / sortie.
Les routeurs ont deux fonctions principales :
* Sélectionner le meilleur chemin pour les paquets ;
* Commuter ces paquets vers les interfaces appropriées.
Le rôle principal d’un routeur dans un WAN n’est pas le routage, mais la compatibilité des connexions vers et entre les diverses normes physiques et de liaison de données d’un réseau WAN.

### Notions de hardware pour un routeur

Les composants d'un routeur sont :
* l'unité centrale (UC) : L’unité centrale, ou le microprocesseur, est responsable de l’exécution du système d’exploitation (chez Cisco, c’est IOS) du routeur. La puissance du microprocesseur est directement liée à la puissance de traitement du routeur ;
* la mémoire Flash : La flash représente une sorte de ROM effaçable et programmable. Sur beaucoup de routeurs, la flash est utilisée pour maintenir une image IOS. La mémoire flash est pratique car elle permet une mise à jour de la mémoire sans changer des « chips ». Elle peut stocker plusieurs versions de la plate forme logicielle IOS. Elle conserve son contenu à la mise hors tension ou au redémarrage du routeur ;
* la ROM : La ROM contient le code pour réaliser les diagnostics de démarrage (POST : Power On Self Test). Elle stocke le programme d’amorçage (bootstrap) et le logiciel de système d’exploitation de base. On change rarement la ROM. Si on la change, on doit souvent enlever des « chips » et les remplacer ;
* la RAM : La RAM est utilisé par le système d’exploitation pour maintenir les informations durant le fonctionnement. Elle peut contenir les tampons (buffers), les tables de routage, la table ARP, la configuration mémoire et un nombre important d’autres choses. Et comme c’est de la RAM, lors de la coupure de l’alimentation, elle est effacée ;
* la NVRAM (RAM non volatile) : Le problème de la RAM est la non-conservation des données après la coupure de l’alimentation. La NVRAM résout le problème, puisque les données sont conservées même après la coupure de l’alimentation. L’utilisation de la NVRAM permet de ne pas avoir de mémoire de masse (disques durs, floppy, etc). Cela évite donc les pannes dues à une partie mécanique. La configuration est maintenue dans la NVRAM ;
* des portes I/O : La structure même d’un routeur est l’ouverture, donc l’interfaçage vers le monde extérieur est important. Il existe un nombre impressionnant d’interfaces possibles pour un routeur (liaison série asynchrone, synchrone, Ethernet, tokenring, ATM, sonet, FO, etc). La vitesse du bus qui interconnecte les I/O avec les différents composants du routeur marque aussi la puissance de traitement du routeur ;
* une alimentation : L’alimentation fournit l’énergie nécessaire au fonctionnement des composants internes. Les grands routeurs peuvent être dotés d’alimentations multiples ou modulaires. Certains des petits routeurs sont dotés d’une alimentation externe ;

### Configurer un routeur

Un routeur peut être configuré de différente manières :
* un logiciel spécialisé permet de configurer le routeur. Le logiciel peut notamment avoir une interface Web ;
* on ouvre une connexion en mode texte avec le routeur et grâce à un langage de commande, on configure le routeur. C'est cette solution que nous retiendrons ici.

### Hyperterminal

Notre routeur comporte un port nommé console qui est une interface série et qui permet d'envoyer des commandes en mode texte vers le routeur. Pour ouvrir une telle connexion, il suffit de mettre un câble série entre le port série de notre PC et le port console de notre routeur CISCO. Il faut ensuite utiliser un logiciel permettant de communiquer en mode texte via le port série du PC. On peut utiliser par exemple le logiciel Windows standard nommé Hyperterminal.

### Le langage de commande CISCO

Nous allons étudier quelques notions de base sur le langage de commandes.
* Initialement, après avoir booté, le routeur est dans le mode normal. Il peut essentiellement tester la configuration du routeur ou visualiser celle-ci. Il ne peut pas la modifier.
* Pour passer dans le mode superviseur il faut taper la commande enable. Le routeur demandera un mot de passe permettant d'identifier la personne. Pour revenir au mode normal, il faut utiliser la commande disable.
* À partir du mode superviseur, il faut utiliser la commande configure terminal pour passer dans le mode config. Ce mode permet de modifier la table de routage et la configuration des interfaces du routeur. La commande exit permettra de passer du mode config au mode superviseur. À partir du mode config, il faut utiliser la commande interface pour passer dans le mode config-if permettant de configurer une interface. La commande interface prend un paramètre : le nom de l'interface considérée. Les cartes Ethernet de notre routeur seront appelées respectivement fastethernet 0/0 et fastethernet 0/1. On écrira donc interface fastethernet 0/0 pour pouvoir configurer l'interface fastethernet 0/0 .
* Si vous oubliez le nom d'une commande le « ? » liste les commandes possibles dans le mode où vous vous trouvez. Plus encore, vous pouvez taper le début d'une commande puis « ? », vous aurez alors toutes les possibilités de cette commande (exemple : interface ?).

### Le mode normal

* la commande enable : Permet de passer en mode privilégié
* la commande ping : Permet de pinguer une autre interface
* la commande show ip interface : Permet de connaitre l'adresse IP d'une interface
* la commande show ip interface brief : l'état d'une interface série liés au protocole RS232-C
* la commande show ip route : Permet de visualiser la table de routage
* la commande show interface status : Permet de voir l'état des ports du CISCO

### Le mode Privilégié

* la commande configure terminal : Permet de passer en mode configuration (config)
* la commande disable

### Le mode config

* la commande ip routing
* la commande no ip routing
* la commande ip route
* la commande exit : Permet de revenir au mode précédent (soit le mode privilégié)
* la commande no ip route
* la commande interface : Permet de sélectionner une interface et passer en mode config-if sur celle ci (exemple : interface fastethernet 0/0 ou int f 0/0 pour aller en config-if sur le port fastethernet 0/0)

### Le mode config-if

* la commande ip address : Permet de mettre une adresse IP sur le port sélectionné
* la commande no shutdown : Permet d'activer le port sélectionné
* la commande shutdown : Permet de désactiver le port sélectionné
* la commande exit : Retour au mode config

### Un premier exemple
# Administration sous Windows
## Administration sous Windows

Une station sous Windows NT peut comporter une ou plusieurs interfaces réseau (intégrées à la carte mère ou pas). Token-ring, Ethernet, Wifi...
Les interfaces sont normalement installées physiquement au démarrage par reconnaissance automatique et implantation du driver adéquat (plug & Play). Un ou plusieurs voyants permettent de vérifier si l'interface est bien connectée au système d'interconnexion extérieur (le plus souvent un commutateur ou switch). Si ce n'est pas le cas, rien ne fonctionnera.
Par défaut, une interface réseau comporte son propre identificateur unique, une adresse de couche 2 : adresse MAC (Medium Access Control) sous la forme d'un nombre de 6 octets attribué par le constructeur. L'autosynchronisation est choisie par défaut mais des vitesses de transmission différentes peuvent être appliquées au niveau du driver (cas particulier).

### Configuration TCP/IP

Pour utiliser les protocoles de la pile TCP/IP, l'administrateur réseau doit attribuer à l'interface une adresse IP unique (non redondante) sur le réseau logique auquel elle appartient. c'est l'adressage STATIQUE. Un nombre de 4 octets choisi dans un plan d'adressage prédéfini. Il fournira aussi un masque de sous réseau qui permettra à l'interface de connaître le sous réseau auquel elle appartient. L'adresse de diffusion (broadcast) sera la dernière @IP de la plage du sous réseau.
Pour que cette machine puisse émettre des datagrammes vers d'autres réseaux (logique et/ou physique), l'administrateur devra lui fournir une adresse de passerelle par défaut ou default gateway (une porte de sortie, un routeur connecté au même segment de réseau physique et adressé dans le même réseau logique que la machine qui prendra en charge les datagrammes afin de les envoyer à leur destination).
Pour l'accès à Internet par résolution de nom, l'adresse IP d'un serveur DNS devra aussi être fournie. (Plusieurs adresses peuvent être fournies)
Dans des cas particuliers, on pourra fournir à l'interface plusieurs adresses IP (sur le même réseau logique ou pas).
Exemples d'adressage IpV4 privé sur les trois classes A, B, C :
| Adresse | Masque | Passerelle par défaut | DNS |
| 10.0.0.1 | 255.0.0.0 | 10.255.255.254 | @IP DNS local ou externe |
| 172.16.0.1 | 255.255.0.0 | 172.16.255.254 | @IP DNS local ou externe |
| 192.168.0.1 | 255.255.255.0 | 192.168.0.254 | @IP DNS local ou externe |

#### Adressage dynamique par DHCP

Pour éviter de paramétrer l'interface manuellement, l'adressage dynamique peut aussi être choisi à condition qu'il existe sur le segment de réseau physique au moins un serveur DHCP (Dynamic Host Configuration Protocol) pour répondre à la demande de la machine.
Dans le cas contraire, c'est par l'intermédiaire d'APIPA (Automatic Private IP Addressing) qu'une adresse IP entre 169.254.0.1 et 169.254.255.254 avec un masque de sous-réseau de 255.255.0.0 sera automatiquement assignée si aucune configuration alternative n'a été spécifiée. APIPA est conçu pour fournir un adressage IP automatique sur des réseaux à segment unique exclusivement.

### Paramétrage des interfaces réseaux

Le paramétrage sous Windows s'effectue par l'intermédiaire d'une interface graphique dont les modifications seront enregistrées dans la base de registre. Il faut des droits d'administrateur local à la machine pour modifier ces paramètres. Cette interface se trouve dans Menu démarrer > Paramètres > Panneau de configuration > Connexions réseau > Interface à modifier
On peut choisir de montrer l'état des interfaces dans la barre de lancement rapide. Les interfaces réseau peuvent être nommées pour en faciliter le repérage.
Une fois les modifications validées, le système ne demande pas de redémarrage comme sous W95, W98.

### Test des interfaces

Pour tester la configuration, on dispose de plusieurs commandes en mode console. Toutes les commandes qui suivent comportent des paramètres d'entrée spécifiques. Pour afficher une aide en ligne tapez la commande suivi de /h pour help.
* Ouvrir une console en ligne de commande par Menu démarrer > Exécuter > « cmd »

#### ipconfig

* Visualisation des paramètres de toutes les interfaces réseau

#### ping

* Test de l'interface de bouclage
* Test de la passerelle
* Test de la connectivité Internet

#### route

* Visualisation de la table de routage
* Ajout
* Suppression

#### tracert

* Test de routage

#### netstat

* visualisation des services actifs

#### nslookup

* Test la résolution DNS
Pour lire d'autres entrées de la zone DNS, il faut préciser leurs types :
Pour voir le serveur de mails :

# Administration sous Linux

Cette page présente les outils d'administration réseau sous Linux.

## L'interface Ethernet

Les interfaces sont notées eth suivi d'un entier qui débute à 0 et s'incrémente de 1 en 1. Ainsi la première interface est nommé eth0, la seconde eth1 etc. La boucle locale, qui a donc pour adresse 127.0.0.1 est notée lo.
Les systèmes GNU/Linux vous permettent également la création d'interfaces virtuelles, afin de gérer n adresses à partir d'une seule et même interface physique.

### Informations

Pour afficher toutes les informations pour toutes les interfaces actives : utilisez la commande ifconfig.
Pour afficher toutes les informations pour toutes les interfaces mêmes celles inactives : utilisez la commande ifconfig -a.
Si vous désirez n'avoir les informations que sur une interface, précisez la :

### Modifications
#### Activation / désactivation

Pour activer ou désactiver une interface réseau : il faut utiliser respectivement les commandes ifup et ifdown sous certaines distributions. Une commande generique est : ifconfig ethX up et ifconfig ethX down pour activer ou desactiver l'interface ethX. l'activation et la désactivation d'une interface réseau nécessite les privilèges root.
Les commandes ifup et ifdown ne peuvent être utilisées qu'à partir du moment où l'interface désignée est paramétrée dans le fichier de configuration de votre distribution :
* Systèmes debian : /etc/network/interfaces
* Systèmes Red Hat : /etc/sysconfig/network-script/ifcfg-nom_de_l_interface

#### Changer l'adresse IP d'une interface

Il s'agit de la commande ifconfig. Elle s'utilise de la façon suivante :

##### Changer le masque de sous réseau d'une interface

Il s'agit de la commande ifconfig. Elle s'utilise de la façon suivante :
La manpage d'ifconfig vous en dira plus

#### Obtenir un bail DHCP

Plusieurs commande permettent d'obtenir un bail : dhclient, pump, ifup
La plupart des distributions utilisent par défaut la commande dhclient :

#### Routage
##### Afficher les route définies
##### Ajouter la route par défaut

La commande route vous permet d'ajouter et/ou modifier la table de routage.

#### Ajout/modification des serveurs DNS

Le fichier /etc/resolv.conf vous permet de définir vos serveurs de noms :

### Un exemple complet

On veut changer l'adresse de l'interface eth0 en 192.168.0.252 :

## L'interface sans fil Wifi

Pour lister toutes les interfaces sans fils existantes, on utilise la commande iwconfig -a. On peut utiliser cette commande pour voir l'état d'une interface comme par exemple l'interface wlan0 iwconfig wlan0. Pour changer les paramètres de cette interface (comme adresse IP ou masque de sous réseau), il faut utiliser la commande ifconfig comme expliqué en haut. Pour voir l'entourage sans fils actif, on utilise la commande iwlist scan

### Se connecter à une interface sans fil en WEP

On utilise la commande iwconfig. # iwconfig interface essid SSID key clé_wep Par exemple : # iwconfig wlan0 essid MonRéseau key FB0126E5A0

### Se connecter à une interface sans fil en WPA

On utilise la commande wpa_supplicant couplée à son fichier de configuration (généralement /etc/wpa_supplicant.conf) # wpa_supplicant -cfichier_de_configuration -Ddriver -iinterface Par exemple : # wpa_supplicant -c/etc/wpa_supplicant.conf -Dwext -iwlan0

## Références

* ↑ (anglais) Request for comments n$^o$ 1518.
* ↑ (anglais) Request for comments n$^o$ 1519.
* ↑ (anglais) Request for comments n$^o$ 1918.
* ↑ http://www.linuxtopia.org/online_books/francais/debian_linux_guides/debian_linux_reference_guide/ch-gateway.fr_022.html

# Analyse des messages

Les messages échangés entre les machines d'un réseau TCP/IP peuvent être analysés et identifiés par certains logiciels, comme Wireshark.
Il est alors possible de reconnaitre les différents en-têtes et encapsulations des messages.

## DHCP
# Glossaire
## Liens internes

* Adresse IP : la notion d'adresse IP et de masque.
* DNS : quelques notions sur les DNS.
* Serveurs DNS Racine : présentation des serveurs DNS racine.
* Ethernet : présentation de la trame Ethernet.
* IP version 4 : présentation du datagramme IP.
* ARP : présentation de ARP.
* La pile TCP/IP : présentation de la pile de protocoles TCP/IP.