FANDOM


Plan de cours Edit

  1. Introduction aux protocoles Internet
    1. Comparaison de deux principaux modèles de références
    2. Les principaux protocoles de la famille TCP/IP
  2. La structure des communications sur un réseau
    1. Encapsulation
    2. Entêtes
    3. Utilisation de Wireshark
  3. Couche 2
    1. SLIP
    2. PPP
    3. Ethernet, CSMA/CD, PPPoE
    4. 802.11 (WLAN)
    5. Les différentes normes
    6. Particularités des réseaux sans fil
  4. Protocoles ARP et RARP (couches 2 et 3)
    1. Résolution d'adresses
    2. Tables ARP
  5. Couche 3
    1. IPv4
      1. Description du protocole
      2. Schémas d'adressage
      3. Réseaux publics et privés
      4. Sous-réseaux
      5. Filtres IP
      6. ICMP
      7. NAT
    2. IPv6
      1. Description du protocole
      2. Structure des adresses IPv6
      3. Réseaux publics et privés
  6. Couche 4 - TCP et UDP
    1. Description
    2. Cas d'usage
  7. Couche 7
    1. Communication entre hôtes
      1. Telnet
      2. FTP
    2. Attribution d'adresses IP
      1. BOOTP
      2. DHCP
    3. Résolution de noms
      1. DNS
    4. Diagnostics
      1. SNMP (v1, v2 et v3)
  8. Protocoles de «tunnelling» et chiffrement
    1. SSL/TLS
    2. IPSec
    3. L2TP

Introduction aux protocoles Internet Edit

NetBIOS [Wikipédia] = une architecture réseau codéveloppée par IBM et Sytek (en) au début des années 1980, aujourd'hui utilisé principalement par Microsoft ; ce n'est pas un protocole réseau, mais un système de nommage et une interface logicielle qui permet d’établir des sessions entre différents ordinateurs d’un réseau

NetBIOS n'est pas un protocole, mais il fait partie d'un protocole NetBT (NetBIOS sur TCP/IP).

WINS [Wikipédia] = (Windows Internet Name Service) est un serveur de noms et services pour les ordinateurs utilisant NetBIOS. En pratique, WINS est aux noms NetBIOS, ce que le DNS est au FQDN ― un dépôt central d'informations (base de données), auquel un client voulant contacter un ordinateur sur le réseau peut envoyer des requêtes pour trouver l'adresse IP à joindre.

DNS Edit

1024px-Dns-raum.svg

Fully qualified domain name (FQDN) [Wikipédia] = le nom de domaine complet d'un ordinateur ou d'un hôte particulier sur Internet, qui révèle la position absolue d'un nœud dans l'arborescence DNS ; il se compose de deux parties: le nom d'hôte et le nom de domaine ; selon RFC 1035 « Domain names that end in a dot are called absolute, and are taken as complete. Domain names which do not end in a dot are called relative ».

La norme prévoit qu'un élément d'un nom de domaine (appelé label) ne peut dépasser 63 caractères, un FQDN ne pouvant dépasser 253 caractères.

DNS (Domain Name System) [Wikipédia] = un service permettant de traduire un nom de domaine en informations de plusieurs types qui y sont associées, notamment en adresses IP de la machine portant ce nom.

Zone DNS [Wikipédia] = [Eng] any distinct, contiguous portion of the domain name space in the Domain Name System (DNS) for which administrative responsibility has been delegated to a single manager. DNS is comprised logically of domains but physically of zones.

НЛО прилетіло і опублікувало це тут. <― Хаха!
DNS Zones

DNS Zones

Types de zones DNS Edit

  • Primary (master)
    • read/write copy of the zone's data
    • only one primary zone (outside AD)
    • stored in a text file
  • Secondary (slave)
    • read-only copy of the zone's data
    • can be a copy of primary, secondary or AD zone
  • Active Directory integrated
    • stored on a domain controller
    • all domain controllers have read/write copy of the zone!
    • not in text file (harder to resore in case of an accident)
  • Stub (new)
    • only stores records for authority servers ― redirects requests!

An authority zone ― has a full copy of all the records for that zone (can be read-only copy).

DNS GlobalNames vs WINS Edit

DNS zone GlobalNames

  • n'a pas de mises à jour
  • implémente IPv6

WINS

  • il y a des mises à jour
  • n'a pas de IPv6

Si un hôte émet un requête pour trouver un domaine... DNS cherche dans les enregistrements de ressources (type SRV) le service LDAP. Réponse de DNS : client, port du service, adresse IP, etc.

Protocoles de communication Edit

Un protocole (en sens général) = définit un ensemble de conventions et de procédures à respecter dans un cadre donné. Deux ordinateurs qui échangent de l'information doivent eux aussi suivre un protocole ; tous les types de communication possibles entre deux hôtes sur un réseau informatique doivent être régis par des protocoles.

Un protocole de communication [Wikipédia] = une spécification de plusieurs règles pour un type de communication particulier.

Internet [Wikipédia] ― le réseau informatique mondial accessible au public ; c'est un réseau de réseaux, à commutation de paquets, sans centre névralgique, composé de millions de réseaux aussi bien publics que privés, universitaires, commerciaux et gouvernementaux, eux-mêmes regroupés en réseaux autonomes (il y en avait 47 000 en 2014) ; l'information est transmise par Internet grâce à un ensemble standardisé de protocoles de transfert de données, qui permet l'élaboration d'applications et de services variés comme le courrier électronique, la messagerie instantanée, le pair-à-pair et le World Wide Web.

ARPANET (1969) = le premier projet qui met en œuvre les travaux pour constituer un réseau qui découpe les communications en paquets (internet).

IMG 20180123 112938

Normes et standards Edit

ICANN = Internet Corporation for Assigned Names and Numbers [Wikipédia], organisme qui gère la gouvernance du DNS et des adresses IP publiques ; les membres sont nommés par diverses organisations commerciales et académiques.

IANA = Internet Assigned Numbers Authority [Wikipédia], division de ICANN qui s'occupe de l'attribution de blocs d'adresses IP publiques, de la gestion des serveurs racine DNS et des domaines supérieurs, et aussi des noms et des nombres associés aux protocoles utilisés sur Internet. Les blocs d'adresses publiques sont attribués à des organismes régionaux (ARIN, APNIC, AFRNIC, LACNIC et RIPENIC) qui les attribuent à leur tour aux fournisseurs d'accès.

IETF = Internet Engineering Task Force [Wikipédia], organisme qui gère le développement et la promotion de nouveaux protocoles sur inetnet, notamment par le biais de la publication des RFC (Request for Comments).

RFC = Request for Comments [Wikipédia] ; chaque RFC porte un numéro et a un statut:

  • Internet Draft ― état initial ; pas de conditions.
  • Proposed Standard ― Internet Draft pour lequel il n'y a plus de modifications.
  • Draft Standard ― Proposed Standard ayant été implémenté deux fois.
  • Internet Standard ― Draft Standard implémenté pratiquement partout et qui ne subit plus de modifications.

Modèles OSI et TCP/IP Edit

OSI TCP/IP
Utilisation de l'information 7. Application Application HTTP, FTP, SSL, SNMP, DNS, SMB, etc.
6. Présentation
5. Session
Transmission de l'information 4. Transport Transport TCP, UDP
3. Réseau Internet IPv4, IPv6, ICMP
2. Liaison Interface réseau PPP, Ethernet, IEEE 802.11, etc.
1. Physique

Le modèle OSI (Open Systems Interconnection) [Wikipédia] = un standard de communication, en réseau, de tous les systèmes informatiques. C'est un modèle de communications entre ordinateurs proposé par l'ISO (Organisation Internationale de Normalisation) qui décrit les fonctionnalités nécessaires à la communication et l'organisation de ces fonctions.

Rôles des couches de modèle OSI :

Couche Rôle
7. Application Utilisation de l'information
6. Présentation Encodage des caractères, chiffrement.
5. Session Gestion des sessions (e.g. cookies et procédures d'authentification)
4. Transport Gestion de la connexion, l'adressage, gestion de la qualité de la transmission
3. Réseau Adressage logique, routage, fragmentation / réassemblage des messages
2. Liaison Contrôle des accès au medium (collisions), gestion des erreurs dues à la qualité du signal, définition de l'adresse physique
1. Physique Encodage des données binaires en signal et transmission, et vice-versa

Le modèle TCP/IP [Wikipédia].

Encapsulation Edit

Service Data Unit (SDU) = les données qui doivent être transmises.

Protocol Data Unit (PDU) = le SDU plus l'entête spécifique au protocole du couche.

                                           Données          Message    | HTTP
                            [ Entête TCP | Données ]        Paquet     | TCP
                [ Entête IP | Entête TCP | Données ]        Datagramme | IP
Entête Ethernet | Entête IP | Entête TCP | Données | Pied ] Trame      | Ethernet

Exercice sur protocoles Edit

FTP Edit

Protocole FTP
Nom complet File Transfer Protocol [Wikipédia]
RFC de référence RFC 3659 : Extentions to FTP
Couche OSI Couche 7. Application (OSI)
But Partage de fichiers sur un réseau TCP/IP.
Champs de l'entête
Remarques Ports : 21 (écoute) ; 20 (données par défaut)

UDP Edit

Protocole UDP
Nom complet User Datagram Protocol [Wikipédia]
RFC de référence RFC 768 : User Datagram Protocol
Couche OSI Couche 4. Transport (OSI)
But Transmission de données (datagrammes) entre deux entités (IP / port) sans communication préalable.
Champs de l'entête Port source (16 bits), port destination (16 bits), longueur (16 bits), somme de contrôle (16 bits).
Remarques

ICMP Edit

Protocole ICMP
Nom complet Internet Control Message Protocol [Wikipédia]
RFC de référence RFC 792 : Internet Control Message Protocol
Couche OSI Couche 3. Réseau (OSI)
But Contrôle des erreurs de transmission.
Champs de l'entête Entête IP (160 bits), type de message ICMP (8 bits), code de l'erreur (8 bits), somme de contrôle (16 bits) de la partie sans entête IP, Bourrage ou données (32 bits).
Remarques

ARP Edit

Protocole ARP
Nom complet Address Resolution Protocol
RFC de référence RFC 826 : An Ethernet Address Resolution Protocol
Couche OSI Couche 3. Réseau (OSI)
But Traduction d'une adresse de protocole de couche réseau (typiquement une adresse IPv4) en une adresse de protocole de couche de liaison (typiquement une adresse MAC).
Champs de l'entête Type de matériel (16 bits), Type de protocole (16 bits), Longueur d'adresse physique (8 bits), Longueur d'adresse logique (8 bits), Opération (16 bits), Adresse physique source (32 bits), Adresse réseau (IP) source (32 bits), Adresse physique destination (32 bits), Adresse réseau (IP) destination (32 bits).
Remarques

La structure des communications sur un réseau Edit

Encapsulation Edit

Entêtes Edit

Utilisation de Wireshark Edit

Capture d&#039;écran de 2018-01-24 09-26-50

Wireshark = une application pour analyser le contenu des trames sur un réseau ; elle est capable à reconnaître un très grand nombre de protocoles et à les présenter de manière structurée à l'utilisateur. Wireshark permet :

  • observer le contenu de certains paquets spécifiques
  • observer les conversations entre deux hôtes sur le réseau
  • visualiser l'ensemble des messages pour un protocole spécifique
  • dresser des statistiques sur l'utilisation d'un réseau

Exercice Wireshark Edit

  1. Cpture d&#039;écran - VirtualBox CentOS 7 - 2018-01-24 1118
    Quelle est l'adresse du réseau local ?
    • Réponse : 10.30.245.0 (masque du réseau 255.255.255.0)
  2. Qulles sont les adresses IP et MAC de l'hôte sur lequel Wireshark roule ?
    • Réponse : MAC 08:00:27:c9:b0:b2, IP 10.30.245.48 (nom d'hôte CadmusCo)
  3. Capture d&#039;écran - VirtualBox CentOS 7 - 2018-01-24 1042
    Combien y a-t-il de paquets à destination de 206.167.78.22 ?
    • Réponse : 198 paquets.
  4. Capture d&#039;écran - VirtualBox CentOS 7 - 2018-01-24 1139
    Capture d&#039;écran - VirtualBox CentOS 7 - 2018-01-24 1141
    Dans tout le fichier, quelle quantité de données est reçue par l'hôte local ?
    • Réponse :
      • couche 2 et plus haut : 1'011'409 octets ;
      • couche 3 et plus haut : 1'011'769 octets.
  5. Quels hôtes envoient des messages à l'adresse de diffusion du réseau local ?
    • Réponse :
      • IntelCor_la:ab:60 (IP 10.30.245.79, MAC 74:e5:0b:1a:ab:60)
      • IntelCor_6a:a8:97 (IP 10.30.245.60, MAC b8:03:05:6a:a8:97)
      • CadmusCo_c9:b0:b2 (IP 10.30.245, MAC 08:00:27:c9:b0:b2)
  6. Quelle est l'adresse du serveur DHCP utilisé ?
    • Réponse : IP 10.80.4.40
  7. Capture d&#039;écran - VirtualBox CentOS 7 - 2018-01-24 1325 - DHCP renewal
    À quelle heure l'hôte local a-t-il renouvelé son bail DHCP ?
    • Réponse : "Mar 27, 2013 12:02:16.771941000 EDT"
  8. Capture d&#039;écran - VirtualBox CentOS 7 - 2018-01-24 1336 - Sites consultés
    Quels sites web ont été consultés (par l'hôte local) ?
    • Réponse : admtl.com, canadiantire.com
  9. Capture d&#039;écran - VirtualBox CentOS 7 - 2018-01-24 1350 - Protocole plus utilisé
    En données brutes, quel protocole des couches OSI 5, 6 et 7 est le plus utilisé ?
    • Réponse : HTTP
  10. Capture d&#039;écran - VirtualBox CentOS 7 - 2018-01-24 1432 - Session durée
    Combien de temps dure la connexion TCP qui commence au paquet 306 (en supposant qu'elle commence au paquet ACK et se termine au paquet FIN, ACK) ?
    • Réponse : a peu près 9,8 secondes.
  11. Capture d&#039;écran - VirtualBox CentOS 7 - 2018-01-24 1436 IP DNS
    Quel est l'adresse IP du serveur DNS interrogé par 10.30.245.48 ?
    • Réponse : 10.80.4.40
  12. Capture d&#039;écran - VirtualBox CentOS 7 - 2018-01-24 1439 - DNS qry type
    Combien de requêtes DNS directes (type « A ») émet l'hôte 10.30.245.48 ?
    • Réponse : 20
  13. Capture d&#039;écran - VirtualBox CentOS 7 - 2018-01-24 1444 - Chiffre
    Dans l'échange TLS qui commence au paquet 636, quel chiffre (cipher) est utilisé (lors d'un échange SSL/TLS, le client propose une suite de chiffres lors du « Client Hello » et le serveur en sélectionne un lors du « Server Hello ») ?
    • Réponse :TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)

Couche 2 : SLIP, PPP, Ehternet Edit

SLIP Edit

SLIP (Serial Line Internet Protocol) [Wikipédia] =

SLIP a été développé pour encapsuler les datagrammes IP entre deux hôtes reliés par une connexion sérielle.

[ Entête | Données | Pied ]

L'entête et le pied sont constitués du caractère hexadécimal C0 (1 octet).

PPP Edit

PPP (Point to Point Protocol) [Wikipédia] = une suite de protocoles...

Améliorations à SLIP Edit

  • Détection et correction des erreurs de transmission
  • Authentification (de machines)
  • Compression

Protocoles PAP ou CHAP ― pour authentification de machines entre eux.

Encapsulation PPP Edit

NCP (Network Control Protocols) [Wikipédia] = donne le format d'encapsulation. Dans le cas des réseaux IP, le protocole de contrôle est IPCP, qui permet de définir l'adresse IP de l'initiateur, des options comme la compression des entêtes IP, etc.

Contrôle du lien Edit

LCP (Link Control Protocol) [Wikipéaid] = ...

Phases de l'établissement de la connexion PPP Edit

Screenshot 20180130 094620
  1. Configuration LCP (couche 2)
    • LCP Configure-Request ―>
    • <― LCP Configure-Ack
  2. Authentification
    • <―>
  3. Configuration NCP (couche 3)
    • IPCP Configure-Request (sur IP) ―>
    • <― IPCP Configure-Ack
  4. Échange de données
    • <―>
  5. Fermeture de la connexion (couche 3)
    • IPCP Terminate-Request ―>
    • <― IPCP Terminate-Ack
  6. Fermeture de la connexion (couche 2)
    • LCP Terminate-Request ―>
    • <― LCP Terminate-Ack

Tunelling [Wikipédia] ― on utilise ça pour abstraire les routeurs.

Trame PPP Edit

Champ Taille (octets) Description
Flag 1 Délimite le début de la trame (0111 1110)
Adresse 1 Destination de la trame (1111 1111)
Contrôle 1 Inutilisé (0000 0011)
Protocole 2 Désignation du protocole encapsulé dans le champ Information (par exemple IPCP, CHAP, IP, etc.)
Information Variable Soit les messages encapsulés de la couche 3, ou des données relatives au contrôle PPP (authentification, compression, chiffrement, etc.)
Remplissage Variable Taille minimale ?
Checksum 2 Valeur pour contrôle d'erreurs
Flag 1 Délimite la fin de la trame (0111 1110 = 0x7E)

Ethernet Edit

Ethernet [Wikipédia] = un protocole de réseau local (couches 1 et 2) à commutation de paquets (une norme internationale : ISO/IEC 8802-3).

Paquet Ethernet (couche 1) Edit

Champ Taille (octets) Description
Préambule 7 7 octets « 1010 1010 »
Délimiteur 1 1 octet « 1010 1011 »
Trame Variable Trame Ethernet (couche 2)
Espace (12) Pause dont la durée correspond au temps de transmission de 12 octets

Trame Ethernet (couche 2) Edit

Champ Taille (octets) Description
Destination 6 Adresse MAC de destination
Origine 6 Adresse MAC de l'émetteur
Étiquette 4 (optionnel) Indications utiles aux VLAN ou à la QoS
Taille / type 2 Protocole de la couche 3 et taille de données
Données Variable Taille minimale 46 octets.

Gestion de collisions Edit

...

PPPoE Edit

PPPoE [Wikipédia] = une manière d'utiliser les mécanismes d'authentification, de correction d'erreurs et de compression de PPP en l'encapsulant dans une connexion Ethernet.

L'entête PPPoE Edit

Champ Taille (octets) Description

PPPoE ― deux étapes, plusieurs pas Edit

  1. IMG 20180206 085339
    IMG 20180206 091442
    IMG 20180206 093037
    PPPoE Discovery (plusieurs pas)
    • Hôte ―> RAS : PADI (PPPoE Active Discovery Initiation packet)
      • l'hôte envoie un paquet PADI en diffusion (broadcast, MAC = FF:FF:FF:FF:FF:FF:FF) ;
      • ID session = 0x0000 ;
      • pppoe.code == 0x09 ;
    • RAS ―> hôte : PADO (PPPoE Active Discovery Offer)
      • chaque RAS qui reçoit le paquet PADI et...
      • ...envoie en paquet PADO en monodiffusion (MAC = adresse d'hôte)
      • ID session = 0x0000 ;
      • pppoe.code == 0x07 ;
    • hôte ―> RAS : PADR (PPPoE Active Discovery Request)
      • l'hôte reçoit plusieurs PADO des RAS, en choisit un et...
      • ...y reponde avec un paquet PADR en monodiffusion (MAC = adresse d'hôte) ;
      • ID session = 0x0000 ;
      • pppoe.code == 0x019
    • RAS ―> hôte : PADS (PPPoE Active Discovery Session-confirmation)
      • le RAS reçoit le paquet PADR et...
      • ...génère un ID de session unique ;
      • ...répond avec un paquet PADS en monodiffusion (MAC = adresse d'hôte) ;
      • ID session = 0xNNNN ;
      • TAG indique le type de service choisi par le RAS ;
      • pppoe.code == 0x065
    • PADT (PPPoE Active Discovery Terminate)
      • peut être envoyé par l'hôte ou par le RAS également ;
      • la session doit être déjà établie pour qu'on puisse la terminer ;
      • pppoe.code == 0xA7
  1. PPP Session
    • Une fois la session PPPoE établie, les données PPP sont envoyeés :
      • le charge utile (payload) de PPPoE est la trame PPP ;
      • Ether-type = 0x8864
    • LCP
    • IMG 20180206 095105
      Authentication
      • PAP
        • filtre Wireshark : pap
        • couche 4
        • adressage : IP
        • Identification de session !
        • Authenticate-Request ―>
        • <― Authenticate-Ack
      • CHAP
        • filtre Wireshark : chap
        • couche 2
        • adressage : MAC
        • Identification de session !
        • Challenge ―>
        • <― Response
        • Success ―>
    • Screenshot 20180206 100219
      NCP / IPCP
      • Configuration-Request : peut-je prendre l'IP indiqué ?
      • Configuration-Ack : oui, prend-le !
      • RFC 1332, paragraphe 3.3 : Adresse IP. Cette option de configuration donne la façon de négocier l'adresse IP qui va être utilisée en local (par l'émetteur de la requête). Cela permet à l’expéditeur de la demande configuration d'indiquer l'adresse qu'il désire utiliser, ou demander au serveur de lui fournir une adresse (en envoyant 0.0.0.0)
      • Pour obtenir une adresse IP valide, l'hôte envoie une requête (Configure-Request) avec l'adresse 0.0.0.0. Le serveur répond Nack et propose à l'hôte une adresse IP valide (95.136.242.54 sur la capture).
      • L'hôte doit ré-demander l'adresse en spécifiant l'adresse qu'il avait reçu avec le Nack.

Exercice Wireshark sur PPP, PPPoE Edit

Voir le document du module 3 sur Omnivox (Lea).

On aura droit aux réponses une fois le travail sera noté =/

Filtrer les requets LCP dans la direction DCE ―> DTE Edit

Screenshot 20180131 100151
Sous-protocol de PPP 0xC021 (LCP) :
ppp.direction ==  0 and ppp.code == 1 and ppp.protocol == 0xc021

Filtrer les sessions PPPoE pour les conter Edit

Code 0x65 ― initiation d'une session :

pppoe.code == 0x65

Chercher les adresses IP attribuées à un hôte Edit

Screenshot 20180131 110115
eth.dst == e0:a1:d7:18:c2:73 and ppp.code == 2 and ipcp

Protocoles ARP et RARP Edit

La couche 2 ― les hôtes sont identifiés par une adresse physique (exemple : MAC).

Protocol ARP Edit

ARP (Adress Resolution Protocol) [Wikipédia] ― un protocole utilisé pour traduire une adresse de protocole de couche réseau (typiquement une adresse IPv4) en une adresse de protocole de couche de liaison (typiquement une adresse MAC) [RFC 826].

Structure des messages ARP Edit

Champ Taille Description
Hardware type 2 Protocole couche 2
Protocol type 2 Protocole couche 3
Hardware length 1 La taille de l'adresse matérielle (couche 2)
Protocol length 1 La taille de l'adresse logique (couche 3)
Opcode 2 Le type du message ARP courant
Sender hardware address var L'adresse matérielle de l'hôte qui envoie le message
Sender protocol address var L'adresse logique de l'hôte qui envoie le message
Target hardware address var L'adresse matérielle du destinataire
Target protocol address var L'adresse logique du destinataire

Cache ARP Edit

Pour vérifier le cache ARP sur Linux :

cat /proc/net/arp

On peut aussi utiliser des commandes spécifiques :

arp -n

Sur Debian et Arch Linux la commande arp fait partie du paquet net-tools. On peut aussi utiliser la commande ip :

ip -s neighbour

Deux types d'entrées ARP :

  • statique ― une entrée permanente, peut être ajoutée par le système d'exploitation ou des programmes.

Pour vérifier le temps de mise à jour d’entré ARP (remplacer default par le nom d'interface) :

cat /proc/sys/net/ipv4/neigh/default/gc_stale_time
Screenshot 20180222 090105

Note : un hôte ne met à jour sa table ARP, s'il reçoit une requête ARP en diffusion sur un IP qui ne lui appartient pas (voir l'illustration) !

Configuration de routage sur Linux Edit

nano /etc/sysctl.conf

Changer une lighe (de-commenter pour permettre le routage) :

# ip_forward = 1

Puis il faut rendre le changement permanent :

sysctl -p

Protocole RARP Edit

RARP (Reverse ARP) [Wikipédia] ― un protocole qui permet à partir d'une adresse matérielle (adresse MAC) de déterminer l'adresse IP d'une machine. En résumé, RARP (RFC 903) fait l'inverse de ARP (RFC 826).

...

NAT sur Windows

  • ICS (192.168.137.x/24, pas de sous-réseaux)
  • RRAS (tous les options)

Réseaux sans-fil et norme 802.11 Edit

Dans un réseau sans fil, les messages sont transmis par ondes radio. « Station » ― tout périphérique doté d'une interface résautique sans fil (radio).

Ondes radio [Wikipédia] ― une onde électromagnétique dont la fréquence est inférieure à 300 GHz, soit une longueur d'onde dans le vide supérieure à 1 millimètre.

Ondes électromagnétiques [Wikipédia] ― un modèle utilisé pour représenter les rayonnements électromagnétiques. Il convient de bien distinguer : le rayonnement électromagnétique, qui est le phénomène étudié, et l'onde électromagnétique, qui est une des représentations du phénomène. Une autre représentation prend en compte l'existence du photon.

Problèmes des réseaux sans fil

  • un hôte peut se trouver à proximité de plusieurs réseaux à la fois ;
  • la qualité du signal est variable en fonction de la distance, etc.

Facteurs importantes

  • détection d'un réseau ;
  • maintient d'une connexion ;
  • etc.

Norme IEEE 802.11 Edit

Norme IEEE 802.11 [Wikipédia] ― un ensemble de normes concernant les réseaux sans fil locaux (le Wi-Fi), définie en 1997 (la version original définissait les protocoles de communication sans-fil à la fréquence de 2.4 GHz avec des débits de 1 et 2 Mbps).

Différents ajouts et améliorations y ont été faits depuis (aux couches 1 et 2), et chaque nouvelle modification à cette norme est désignée par une lettre spécifique.

SSID (Service Set Identifier) [Wikipédia] ― un identifiant (nom) d'un réseau WLAN.

À tout instant, une station peut être à portée d'une ou plusieurs autres stations ; pourtant le protocole Ip empêche qu'un hôte (désigné par une adresse IP) fasse partie de plus d'un réseau simultanément. Donc, le protocole de la couche 2 sur lequel IP repose doit disposer de mécanismes pour isoler les stations des autres diffuseurs dès lors qu'elles ont rejoint un réseau Ip (voir association et dissociation).

Identifiant Année Remarques
802.11a 1999 Fréquence 5 GHz, débit de 6 Mbps à 54 Mbps.
802.11b 1999 Fréquence de 5.5 GHz, débit de 11 Mbps.
802.11c 1998 Définit les normes matérielles permettant le bridging (la possibilité d'avoir plusieurs points d'accès sur le même réseau).
802.11d 2001 Harmonisation des normes de communication sans fil avec les réglementations nationales relatives à la diffusion radiophonique.
802.11e 2005 Mécanismes de priorisation des trames pour faciliter la vidéo ou le VoIP
802.11f 2003 Interopérabilité entre fabricants de points d'accès
802.11g 2003 Débit maximum de 54 Mbps sur la fréquence 2.4 GHz ; la norme « WiFi » originale correspond à cette version.
802.11h 2003 Recommandations de standards de fabrication pour éviter les interférences entre différents types de réseaux sans fil.
802.11i 2004 Définit le standard de chiffrement WPA2
802.11j 2004 Définit des normes d'opération spécifiques au marché japonais.
802.11k 2008 Normes facilitant la transition entre points d'accès.
802.11n 2009 L'augmentation du débit par l'utilisation d'antennes multiples.
802.11p 2010 L'accès sans fil à partir de véhicules.
802.11r 2008 Le maintien de l,accès réseau lors des transitions entre points d'accès.
802.11s 2011 Réseaux « mesh », où chaque hôte peut jouer le rôle de routeur afin d'augmenter l'étendue du réseau.
802.11u 2011 Diverses améliorations, dont notamment des mécanismes d'aide à la découverte de réseaux.
802.11v 2011 Ajout de mécanismes permettant l'échange d'informations entre périphériques sur la topologie du réseau.
802.11w 2009 Augmentation de la sécurité des trames de gestion.
802.11ac 2013 Débit de 500 Mbps.
802.11ad 2012 L'opération dans des bandes de fréquence de TV.
802.11ah –––– Normes facilitant l'utilisation du WiFi à des fins d'utilité publique via la faible consommation d'énergie, la haute étendue et le grand nombre de clients simultanés.

Entête 802.11 Edit

Champ Taille

(octets)

Description
Frame Control 2 Type de trame (voir plus bas)
Duration/ID 2 Durée de la transmission, ou identifiant de tramsmetteur
Adr1 6 Adresse MAC
  • BSSID ― l'identifiant du réseau
  • DA ― l'adresse destination
  • SA ― l'adresse source
  • RA ― l'adresse du récepteur de la trame
  • TA ― l'adresse du transmetteur de la trame
Adr2 6 Adresse MAC (――"――)
Adr3 6 Adresse MAC (――"――)
Sequence Control 2 Ordonnancement de la trame, composé de 2 octets :
  • numéro de séquence
  • numéro de fragment (plusieurs fragments peuvent faire partie d'une même séquence)
Adr4 (option) 6 Adresse MAC (――"――)
QoS Contron (option) 2 Informations pour QoS
Data ... Données encapsulées
Frame Check Sequence 4 Vérification de l'intégrité du message (CRC)

Frame Control (type de trame) Edit

Nom Taille

(bits)

Définition
Protocol 2 Numéro de version
Type 2 Type de trame (3 valeurs possibles) :
  • Data (type 2) ;
  • Contol (type 1) ― aide à la transmission des données, il y a 3 sous-types :
    • Request-To-Send (sous-type 11)
    • Clear-To-Send (sous-type 12)
    • Acknowledgement (sous-type 13)
  • Management (type 0) ― permet aux stations d'accéder ou de quitter le réseau
    • Beacon (sous-type 8) ― messages périodiques de points d'accès pour annoncer les informations (optionnel).
    • Probe Request (sous-type 4)
    • Probe Response (sous-type 5) ― les stations s'envoient ces messages pour échanger des informations sur eux.
    • Association Request (sous-type 0)
    • Association Response (sous-type 1)
    • Reassociation Request (sous-type 2)
    • Reassociation Response (sous-type 3) ― messages de synchronisation (taux de transfert de données, fonctionnalités et configuration, etc) ; la station doit déjà être authentifiée.
    • Authentication (sous-type 11)
    • Deauthentication (sous-type 12) ― échange de messages d'authentication (pourtant, la plupart du temps l'authentification réelle se fait plutôt aux couches supérieures).
    • Dissociation (sous-type 10).
Subtype 4 Sous-type de trame
To DS 1 Informations sur la topologie du réseau
From DS 1 Informations sur la topologie du réseau
More Fragments 1 Indique si d'autres fragments suivent
Retry 1 Indique si la trame est une retransmission
Power Management 1 Indique le statut d'activité du client
More Data 1 Indique si d'autres données suivent (utile en mode de basse consommation d'énergie)
Protected 1 Indique si les données de la trame sont chiffrées
Order 1 Indique si l'ordre des trames doit être préservé

À lire : IPSec [Wikipédia].

Protocoles du couche 3 : IPv4 et IPv6 Edit

IPv4 Edit

Description du protocole Edit

Responsabilités du protocole IP

  • Encapsulation
  • routage
  • Adressage
  • Fragmentation / réassemblage

L'en-tête d'un datagramme IP

Champ Taille

(bits)

Description
Version 4 La version de IP utilisée.
IHL 4

Schémas d'adressage Edit

Exercice 1: 200.103.22.4, faire le plan d'adressage pour 3 sous-réseaux :

  • LAN1 : 7 postes
  • LAN2 : 15 postes
  • LAN3 : 2 postes

Procédure (approche par hôtes):

  1. Ranger les sous-réseaux dans l'ordre décroissant selon le nombre d'hôtes.
  2. Chercher le nombre d'adresses nécessaire pour le plus grand sous-réseau (hôtes + 2 adresses).
  3. Avec le masque réseau ― trouver les adresses réseau, diffusion et la plage d'adresses pour le sous-réseau.
  4. Dans la plage restante répéter l'étape 3 pour chaque sous-réseau.

LAN1 : 7 posts + 2 adresses (réseau et diffusion) = 9. 24 = 16 adresses ; masqué sur 4 bits.

  • Masque : 255.255.255.1111 0000 = 255.255.255.240
  • Réseau : 200.103.22.0010 0000 = 200.103.22.32/28
  • 1e adresse : 200.103.22.0010 0001 = 200.103.22.33
  • Diffusion : 200.103.22.0010 1111 = 200.103.22.47

LAN2 : 15 posts + 2 adresses = 17. 25 = 32 adresses ; masqué sur 5 bits.

  • Masque : 255.255.255.1110 0000 = 255.255.255.224
  • Réseau : 200.103.22.0000 0000 = 200.103.22.0/27
  • 1e adresse : 200.103.22.0000 0001 = 200.103.22.1
  • Diffusion : 200.103.22.0001 1111 = 200.103.22.31

LAN3 : 2 posts + 2 adresses = 4. 22 = 4 adresses ; masqué sur 2 bits.

  • Masque : 255.255.255.1111 1100 = 200.103.22.252
  • Réseau : 200.103.22.0011 0000 = 200.103.22.48/30
  • 1e adresse : 200.103.22.0011 0001 = 200.103.22.49
  • Diffusion : 200.103.22.0011 0011 = 200.103.22.51

Exercice 2 : 200.103.22.0, faire le plan d'adressage pour 4 sous-réseax :

  • LAN1 : 15 postes
  • LAN2 : 7 postes
  • LAN3 : 7 postes
  • LAN4 : 7 postes

Réseaux publics et privés Edit

Sous-réseaux Edit

Filtres IP Edit

ICMP Edit

NAT Edit

Exercice sur TurnKey (routage) Edit

TurnKey Core Edit

ICMP Edit

ICMP (Internet Control Message Protocol) [Wikipédia] ― ...

Découverte du chemin à meilleure MTU Edit

Commandes :

  • tracepath (Linux)
  • mturoute (Windows)

Question : La différence importante entre les deux commandes ― ? (chercher)

Service NAT Edit

Les adresses IPv4 sont une ressource limitée.

NAT (Windows) : Edit

  • Option ICS
    • Avantages :
      • Windows Client/Serveur,
      • facilité de configuration
    • Inconvénients :
      • un seul sous-réseau en natting (192.168.137.0/24)
  • Option RRAS
    • Avantages :
      • partage de connexion pour plusieurs sous-réseaux
      • configuration de protocoles de routage (RIP v1, v2, mais pas d'OSPF depuis 2003)
    • Inconvénients :
      • la configuration plus compliquée

Le mini-DHCP, créé par Windows pour ICS et RRAS, on ne peut pas implémenter un agent de relai DHCP.

Type de neud DHCP:

  • B-Node (recherche de résolution de noms en diffusion)
  • M-Node (multiples sources de résolution, B-Node ―> P-Node)
  • P-Node (WINS indiqué à l'hôte comme la source prioritaire de résolution de noms)
  • H-Node (multiples sources de résolution : P-Node ―> B-Node)

NAT (Linux) Edit

Étape 1 : activation du routage

a) provisoire

echo 1 > /proc/sys/net/ipv4/ip_forward

b) permanente

editer le fichier /etc/sysctl.conf et activer la ligne :

# net.ipv4.ip_forward = 1

Puis sysctl -p.

Étape 2 : activer natting via iptables

iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE

Ici : eth0 ― interface de sortie (vers internet).

iptables Edit

Le pare-feu de Linux ― Netfilter (intégré au noyau de Linux). Pour y accéder on utilise iptables.

iptables [Wikipédia] ― un logiciel libre de l'espace utilisateur Linux grâce auquel l'administrateur système peut configurer les chaînes et règles dans le pare-feu en espace noyau (et qui est composé par des modules Netfilter).

Netfilter Edit

Netfilter [Wikipédia] ― un cadriciel (framework) implémentant un pare-feu au sein du noyau Linux.

  • Netfilter ― stateless ;
  • Netfilter + conntrack = stateful firewall
    • États : NEW, ESTABLISHED, RELATED, INVALID

Il y a 3 tables de iptables :

  • filter ― (par défaut) pare-feu
  • nat ― ...
  • mangle ― permet de changer le contenue de paquets

Chaîne de filtres ― ...

Dans une chaîne de filtres, l'ordre des règles est important.

Screenshot 20180228 090633

Il y a 5 chaînes prédéfinies :

  • PREROUTING
  • INPUT
  • FORWARD
  • OUTPUT
  • POSTROUTING
Table Chaînes Usage
filter
  • INPUT
  • FORWARD
  • OUTPUT
Pare-feu
mangle
  • PREROUTING
  • INPUT
  • FORWARD
  • OUTPUT
  • POSTROUTING
Modification de certaines informations du paquet (TOS, MTU, etc.)
nat
  • PREROUTING
  • INPUT
  • OUTPUT
  • POSTROUTING
Traduction d'adresses IP
raw
  • PREROUTING
  • OUTPUT
Définir des exceptions dans le module conntrack (Netfilter dans Linux avant 2.4)

Exemple pour PREROUTING : un client sur internet sollicite un service sur le LAN... avec une adresse/port bien déterminés. PREROUTING permet le changement d'adresse destination pour attendre les services cachés derrière un routeur/NAT.

Syntaxe générale Edit

iptables -A CHAÎNE CRITÈRES -j ACTION

Commandes utiles Edit

Afficher la liste des règles (de la table filter) dans un format à peu près compréhensible :

iptables --list

Supprimer les règles (et non les stratègies) de la mémoire :

iptables --flush

Afficher les règles au format normal à l'écran ; généralement utilisé pour rediriger les règles dans un fichier :

iptables-save > ~/iptables.txt

Charger les règles en mémoire. Généralement utilisé conjointement avec un fichier de règles, exporté par iptables-save :

iptables-restore < ~/iptables.txt

Exemples Edit

Exemple 1. Interdire les connexions (au serveur web.test.local à l’intérieur de pare-feu) qui proviennent du réseau 10.11.12.0/24 :

iptables -t filter -A INPUT -i eth0 -s 10.11.12.0/24 -p tcp --dport 80 -j DROP

Exemple 2. Pour spécifier que tous les paquets qui ne sont pas affectés par une règle de la chaîne INPUT doivent être bloqués :

iptables -P INPUT DROP

Exemple 3. Pour rejeter tous les paquets provenant de 10.11.12.1 et adressés à 10.21.22.3 :

iptables -t filter -A INPUT -s 10.11.12.1 -d 20.21.22.3 -j DROP

Exemple 4. NAT 20.21.22:80/TCP ―> 10.11.12.1:8080/TCP

iptables -t nat -A PREROUTING -p tcp -d 20.21.22.1 --dport 80 -j DNAT --to-destination 10.11.12.1:8080

IPv6 Edit

Description du protocole Edit

IPv6 [Wikipédia] ― un protocole réseau sans connexion de la couche 3 du modèle OSI. Grâce à des adresses de 128 bits au lieu de 32 bits, IPv6 dispose d'un espace d'adressage bien plus important qu'IPv4. Cette quantité d'adresses considérable permet une plus grande flexibilité dans l'attribution des adresses et une meilleure agrégation des routes dans la table de routage d'Internet.

IPv6 est l'aboutissement des travaux menés au sein de l'IETF au cours des années 1990 pour succéder à IPv4 et ses spécifications ont été finalisées dans la RFC 2460 en décembre 1998. IPv6 a été standardisé dans la RFC 8200 en juillet 2017.

Adressage IPv6 Edit

Screenshot 20180425 103655

Les adresses IPv6 sont définis sur 16 octets (128 bits). On regroupe ces 32 valeurs hexadécimals en 8 groupes de 4 chiffres.

Screenshot 20180425 104238

Les premiers 64 bits définient le réseau/sous-réseau et les 64 autres bits identifient les hôtes.

Types d'adresses IPv6 Edit

  • Adresses globales
  • Adresses locales uniques
  • Adresses de liaison locale

Adresses globales

Les équivalents des adresses publiques en IPv4.

Adresses locales uniques

Équivalentes aux adresses privées. Commencent par fc: ou fd: (seules les fd: sont utilisées actuellement).

Adresses de liaison locale

Équivalentes aux adresses privées « APIPA ». Commencent par fe:80:0:0:0:.

Chaque interface conforme à IPv6 doit être associée à une adresse de liaison locale ; cette adresse est obligatoire pour le bon fonctionnement de NDP (auto-configuration) [Wikipédia].

Deux méthodes sont utilisées pour générer une adresse IPv6 de liaison locale :

L'adresse de liaison locale est générée comme suit :

  1. Ajouter ff:fe aprés le troisième octet de l'adresse MAC
  2. Inverser le 7e bit du premier octet
  3. Ajouter le préfixe de liaison locale

Exemple :

MAC = 5c:f9:dd:e7:35:28

  1. 5c:f9:dd:ff:fe:e7:35:28
  2. 5c16 = 9210 = 010111002 ―> 010111102 = 9410 = 5e16
  3. fe80::5ef9:ddff:fee7:3528

Remarque. Au contraire d'APIPA IPv4, la version IPv6 n'a pas besoin de serveur DHCP.

Structure d'un paquet IPv6 Edit

...

Configuration d'une interface sur Linux

auto eth0 inet6 static
    address d19d::2
    netmask 64
    gateway d19d::1

Structure des adresses IPv6 Edit

Exercices sur la structure d'adresses IPv6 Edit

1.

Réseaux publics et privés Edit

NDP Edit

En IPv6 il n'existe plus vraiment d'adresse de diffusion, mais plutôt un grand nombre de groupes de multidiffusion.

Windows :

netsh interface ipv6 show joins

Linux :

netstat -gn

Couche 4 - TCP et UDP Edit

Description Edit

Screenshot 20180329 084935

Ports TCP/UDP Edit

Un port est une association entre un processus et une adresse logique (un nombre) sur un hôte spécifique [Wikipédia].

Un socket ― [Wikipédia].

Trois catégories de ports

  • Ports connus (0 à 1023)
  • Ports enregistrés (1024 à 49151)
  • Ports dynamiques (49152 à 65535) : libres d'utilisation

Connexion TCP Edit

Screenshot 20180329 090530
Screenshot 20180329 093711

Un socket peut être dans différents états :

  • LISTEN ― attend de recevoir un SYN
  • SYN-SENT ― SYN envoyé, attend de recevoir un SYN de l'interlocuteur
  • ESTABLISHED ― Connexion établie, des données peuvent être écahngées
  • CLOSE-WAIT ― Reçu FIN de l'interlocuteur, attend la terminaison de l'appli locale
  • TIME-WAIT ― Connexion terminée, on attend un peu
  • CLOSED
  • etc.

Contrôle de flux TCP Edit

À lire : Retransmission Timeouts.

Cas d'usage Edit

...

Connexion UDP Edit

UDP ― (RFC 768) [Wikipédia].

Applications :

  • DNS
  • TFTP
  • DHCP
  • RIP
  • Flux vidéo
  • Bittorrent

Couche 7 Edit

Communication entre hôtes Edit

Telnet Edit

Telnet ― un protocole utilisé sur tout réseau TCP/IP, permettant de communiquer avec un serveur distant en échangeant des lignes de texte et en recevant des réponses également sous forme de texte (RFC 854) [Wikipédia].

FTP Edit

FTP ― ... (RFC 959) [Wikipédia].

Attribution d'adresses IP Edit

BOOTP Edit

DHCP Edit

Dynamic Host Configuration Protocol [Wikipédia] ― un protocole réseau dont le rôle est d’assurer la configuration automatique des paramètres IP d’une station ou d'une machine, notamment en lui attribuant automatiquement une adresse IP et un masque de sous-réseau. DHCP peut aussi configurer l’adresse de la passerelle par défaut, des serveurs de noms DNS et des serveurs de noms NBNS (connus sous le nom de serveurs WINS sur les réseaux de la société Microsoft) [RFC 2131].

IP adress management (IPAM) [Wikipédia] ― [En] software that can plan, track, and manage the IP addresses used in a computer network. Additional functionality, such as controlling reservations in DHCP and other data aggregation and reporting capabilities, is also common. Data tracked by an IPAM system may include information such as IP addresses in use, the devices an IP is assigned to at what time, as well as to which user an IP was assigned.

Historique

RARP [Wikipédia] ― ...

BOOTP [Wikipédia] ― ...

À lire plus tard : Kickstarter (Linux)

Phases du protocole DHCP

Screenshot 20180321 102917
  • Allocation
  • Réallocation
  • Renouvellement
  • Rebind
  • Libération (Release)

...

À lire plus tard : NAP (DHCP, IPSec)

Résolution de noms Edit

DNS Edit

Le DNS permet de traduire les noms de domaine internet (e.g. www.cmaisonneuve.qc.ca) en adresses IP.

L'objectif du DNS est d'avoir un système unique où :

  • l'information est décentralisée ;
  • la responsabilité est décentralisée.

Fully qualified domain name (FQDN) [Wikipédia] = le nom de domaine complet d'un ordinateur ou d'un hôte particulier sur Internet, qui révèle la position absolue d'un nœud dans l'arborescence DNS ; il se compose de deux parties: le nom d'hôte et le nom de domaine ; selon RFC 1035 « Domain names that end in a dot are called absolute, and are taken as complete. Domain names which do not end in a dot are called relative ».

La norme prévoit qu'un élément d'un nom de domaine (appelé label) ne peut dépasser 63 caractères, un FQDN ne pouvant dépasser 253 caractères.

DNS (Domain Name System) [Wikipédia] = un service permettant de traduire un nom de domaine en informations de plusieurs types qui y sont associées, notamment en adresses IP de la machine portant ce nom.

Zone DNS [Wikipédia] = [Eng] any distinct, contiguous portion of the domain name space in the Domain Name System (DNS) for which administrative responsibility has been delegated to a single manager. DNS is comprised logically of domains but physically of zones.

  • Zone de recherche directe (A ―> IPv4, AAAA ―> IPv6)
  • Zone de recherche inversé (IPv4 ―> PTR ; IPv6 ―> PTR)
  • GlobalNames (nom court <―> IP) ; ça ressemble un peu à WINS, mais avec IPv6 et mises à jour NON-assurées.

N.B. WINS : pas de IPv6, mais les mises à jour assurées.

Méthodes pour faire la redondance DNS :

  1. Round-robin (DNS)
  2. NLB (Widnows)
  3. Failover clustering (*)
Types de serveurs DNS
IMG 20180403 114411
  • primaire (maître) : les informations DNS sont stockées dans des fichiers, qui constituent la copie maître (le serveur a l'autorité sur la zone) ;
  • secondaire (esclave) : les informations DNS sont téléchargées d'un autre serveur (secondaire ou primaire) ; on appelle ce téléchargement le transfert de zone (l'esclave n'a pas de droits de modification, on dit qu'il n'a pas d'autorité sur la zone).

Remarque ! On ne peut pas installer un service Active Directory sur un serveur DNS secondaire (qui n'a pas d'autorité sur la zone).

Stockage des données DNS :

  1. DNS autonome
    • sur disque : par défaut : nom_de_la_zone.dns
  2. DNS intrgré à AD
    • a) sur disque : ?
    • b) (par défaut) à l'intérieur de la base de données AD : NTDS.DIT

Le cas 2.b) ― plus sécuritaire, car assure la réplication de données de zones à l’intérieur de la réplication d'AD.

N.B.

Pour vider le cache DNS :

  • client : ipconfig /flushdns
  • serveur : dnscmd /clearcache

Pour vider le cache NetBIOS :

  • netstat -R (pour afficher netstat -s)
Laboratoire 2 Edit
IMG 20180404 105559

Voire le photo pour l'énoncé du travail en plus du fichier Atelier sur Onmivox.

Diagnostique : SNMP Edit

Screenshot 20180411 085009 lomo

Simple Network Management Protocol (SNMP) ―

Structure of Management Information (SMI) ― ...

  • crée une collection d'objets nommés ;

Management Information Base (MIB) ― ...

  • ...

À regarder plus tard : Nagios, Cacti

Ports utilisé par SNMP Edit

  • Screenshot 20180411 091725 lomo
    UDP 161 ― port d'écoute de requêtes sur les agents (serveur)
  • UDP 162 ― port d'écoute d’alertes sur le gestionnaire (client).

Sécurité SNMP Edit

SNMPv3 est une amélioration de SNMPv1/SNMPv2 :

  • L'authentification de l'utilisateur
  • Chiffrement
  • Intégrité des messages