Les liaisons dangereuses

Après avoir étudié des mécanismes qui permettent la communication sur, potentiellement, de longues distances, il est temps de se demander comment communiquer avec son proche environnement. Le rôle de la couche 2 est de définir la manière de transmettre des informations à ses voisins. Une petite révision sur le matériel et les médias d’accès peut être utile avant de poursuivre. ;)

Données, données, do-o-nnées...

Au début de ce cours, nous avons vu différents supports de communication, comme l’air ou le câble de cuivre. Si nous envoyions des paquets IP dans l’air, en Wi-Fi par exemple, nous aurions un problème : parmi tous les appareils du coin, aucun ne saurait lesquels il doit traiter ! Certes, il y a les adresses IP qui permettent de savoir à qui ils sont adressés, mais bon nombre de réseaux utilisent les mêmes adresses privées. Concrètement, la plupart des box Wi-Fi autour de nous ont pour adresse 192.168.1.1 ou 192.168.0.254. :D Il faut une couche intermédiaire pour réguler les communications entre voisins : dans le modèle OSI, elle s’appelle liaison de données.

La notion de voisin a déjà été évoquée précédemment. Elle désigne un hôte directement connecté, ou du moins, perçu comme tel.

La couche 2 a pour rôle principal d’acheminer des trames à bon port dans un environnement physique défini. Pour cela, elle a recours à des identificateurs pour reconnaitre les équipements ou pour savoir vers où orienter les trames. Un de ces identificateurs est l’adresse MAC, dite aussi adresse physique. On la retrouve notamment dans les réseaux Ethernet, Wi-Fi ou encore Bluetooth.

Cette notion d’adresse MAC a déjà été abordée plus tôt dans ce cours. Pour rappel, elle correspond à un identifiant unique, inscrit en dur dans une carte réseau.

On peut distinguer deux cas de figure avec la couche 2. Soit on a besoin de différencier les différents hôtes pour savoir qui s’adresse à qui, c’est le cas entre autres du Wi-Fi. Soit il n’y a pas de confusion possible, car le support ne permet que la liaison directe entre deux équipements, c’est le cas pour l’ADSL. Par la suite, nous étudierons en détail au moins un protocole de chaque catégorie.

Les interfaces

Il est courant qu’une machine dispose de plusieurs cartes réseaux, qui sont autant d'interfaces physiques. Une interface, globalement, est un point d’entrée ou de sortie d’une communication. Par exemple, sur une carte réseau Ethernet, le trou dans lequel on branche un câble, c’est une interface.

Votre ordinateur, ou plus exactement les programmes que vous utilisez, n’ont pas conscience de l’aspect matériel du réseau. Le système d’exploitation fournit des interfaces logiques qui permettent d’émettre des trames. Après, que ce soit émis sur des fils de cuivre, une fibre optique ou autre, peu importe ! :)

On peut visualiser les interfaces logiques depuis la console avec la commande ipconfig /all sous Windows ou ifconfig -a sous Linux1. Vous obtiendrez un résultat similaire au suivant :

Configuration IP de Windows

   Nom de l’hôte . . . . . . . . . . : XXX
   Suffixe DNS principal . . . . . . :
   Type de noeud. . . . . . . . . .  : Hybride
   Routage IP activé . . . . . . . . : Non
   Proxy WINS activé . . . . . . . . : Non
   Liste de recherche du suffixe DNS.: home

Carte Ethernet :

   Statut du média. . . . . . . . . . . . : Média déconnecté
   Suffixe DNS propre à la connexion. . . :
   Description. . . . . . . . . . . . . . : Realtek PCIe GBE Family Controller
   Adresse physique . . . . . . . . . . . : 01-23-45-56-78-9A
   DHCP activé. . . . . . . . . . . . . . : Oui
   Configuration automatique activée. . . : Oui

Carte Ethernet Npcap Loopback Adapter :

   Suffixe DNS propre à la connexion. . . :
   Description. . . . . . . . . . . . . . : Npcap Loopback Adapter
   Adresse physique . . . . . . . . . . . : 02-03-04-05-06-07
   DHCP activé. . . . . . . . . . . . . . : Oui
   Configuration automatique activée. . . : Oui
   Adresse IPv6 de liaison locale. . . . .: fe80::1234:5678:90ab:cdef%19(préféré)
   Adresse d’autoconfiguration IPv4 . . . : 169.254.42.42(préféré)
   Masque de sous-réseau. . . . . . . . . : 255.255.0.0
   Passerelle par défaut. . . . . . . . . :
   IAID DHCPv6 . . . . . . . . . . . : 218234272
   DUID de client DHCPv6. . . . . . . . : 00-01-00-01-12-34-56-78-90-AB-CD-EF-00-00
   Serveurs DNS. . .  . . . . . . . . . . : fec0:0:0:ffff::1%1
                                       fec0:0:0:ffff::2%1
                                       fec0:0:0:ffff::3%1
   NetBIOS sur Tcpip. . . . . . . . . . . : Activé

Carte réseau sans fil Connexion au réseau local* 1 :

   Statut du média. . . . . . . . . . . . : Média déconnecté
   Suffixe DNS propre à la connexion. . . :
   Description. . . . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter
   Adresse physique . . . . . . . . . . . : 32-10-98-76-54-32
   DHCP activé. . . . . . . . . . . . . . : Oui
   Configuration automatique activée. . . : Oui

Carte réseau sans fil Connexion au réseau local* 2 :

   Statut du média. . . . . . . . . . . . : Média déconnecté
   Suffixe DNS propre à la connexion. . . :
   Description. . . . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter #2
   Adresse physique . . . . . . . . . . . : 32-10-98-76-54-31
   DHCP activé. . . . . . . . . . . . . . : Oui
   Configuration automatique activée. . . : Oui

Carte réseau sans fil Wi-Fi :

   Suffixe DNS propre à la connexion. . . : blah
   Description. . . . . . . . . . . . . . : Intel(R) Wireless-AC XXXX
   Adresse physique . . . . . . . . . . . : 76-54-32-32-10-98
   DHCP activé. . . . . . . . . . . . . . : Oui
   Configuration automatique activée. . . : Oui
   Adresse IPv6. . . . . . . . . . . . . .: 2a01:0123:456:ff00:1234:5678:90ab:cdef(préféré)
   Adresse IPv6 temporaire . . . . . . . .: 2a01:0123:456:ff00:90ab:cdef:1234:5678(préféré)
   Adresse IPv6 de liaison locale. . . . .: fe80::0123:456:0123:456%15(préféré)
   Adresse IPv4. . . . . . . . . . . . . .: 192.168.1.10(préféré)
   Masque de sous-réseau. . . . . . . . . : 255.255.255.0
   Bail obtenu. . . . . . . . . . . . . . : jeudi 7 février 2019 12:00:00
   Bail expirant. . . . . . . . . . . . . : mercredi 13 février 2019 18:00:00
   Passerelle par défaut. . . . . . . . . : fe80::456:0123:456:0123%15
                                       192.168.1.1
   Serveur DHCP . . . . . . . . . . . . . : 192.168.1.1
   IAID DHCPv6 . . . . . . . . . . . : 112233777
   DUID de client DHCPv6. . . . . . . . : 00-01-00-01-23-45-67-89-0A-BC-DE-F0-00-00
   Serveurs DNS. . .  . . . . . . . . . . : fe80::b2b2:8fff:fe73:c05a%15
                                       192.168.1.1
                                       fe80::456:0123:456:0123%15
   NetBIOS sur Tcpip. . . . . . . . . . . : Activé
   Liste de recherche de suffixes DNS propres à la connexion :
                                       home
                                       home

Carte Ethernet Connexion réseau Bluetooth :

   Statut du média. . . . . . . . . . . . : Média déconnecté
   Suffixe DNS propre à la connexion. . . :
   Description. . . . . . . . . . . . . . : Bluetooth Device (Personal Area Network)
   Adresse physique . . . . . . . . . . . : 88-88-88-88-88-88
   DHCP activé. . . . . . . . . . . . . . : Oui
   Configuration automatique activée. . . : Oui

Ne vous formalisez pas trop sur les noms des interfaces, c’est les bizarreries de Windows… :-° Sous Linux, c’est plus sobre :

eth0      Link encap:Ethernet  HWaddr 09:00:12:90:e3:e5  
          inet addr:192.168.1.29 Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe70:e3f5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:54071 errors:1 dropped:0 overruns:0 frame:0
          TX packets:48515 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:22009423 (20.9 MiB)  TX bytes:25690847 (24.5 MiB)
          Interrupt:10 Base address:0xd020 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:83 errors:0 dropped:0 overruns:0 frame:0
          TX packets:83 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:7766 (7.5 KiB)  TX bytes:7766 (7.5 KiB)

wlan0     Link encap:Ethernet  HWaddr 58:a2:c2:93:27:36  
          inet addr:192.168.1.64  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::6aa3:c4ff:fe93:4746/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:436968 errors:0 dropped:0 overruns:0 frame:0
          TX packets:364103 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:115886055 (110.5 MiB)  TX bytes:83286188 (79.4 MiB)

Ce dernier extrait est issu de cette page de Computer Hope.

Certains termes doivent vous être familiers ! ^^ On peut faire le lien suivant entre interfaces logiques et physiques :

Interface logique Interface physique
Carte réseau sans fil Wi-Fi / wlan0 Une carte Wi-Fi (GNU GPL)
Carte Ethernet / eth0 Une carte Ethenet
Carte Ethernet Connexion réseau Bluetooth Une carte Bluetooth (CC BY SA)

Crédits images :

  • carte Wi-Fi dérivée de ce travail d’AndreR sous licence GNU GPL 2, image redistribuée sous licence GNU GPL 2 ;
  • carte Ethernet dérivée de cette photo par Sub dans le domaine public, redistribuée sous licence CC BY-NC-ND 2.0 ;
  • carte Bluetooth dérivée de cette photo par Omegatron sous licence CC BY SA, redistribuée sous licence CC BY SA 3.0.

Mais ce n’est pas tout ! Plusieurs interfaces logiques peuvent en réalité correspondre à une seule interface physique. Mieux encore : une interface logique peut ne correspondre à aucune réalité physique.

Quoi ? Mais pourquoi on aurait une interface qui ne sert pas à communiquer ? o_O

Vous vous souvenez des adresses IP comme 127.0.0.1 ou ::1 ? Eh bien, elles sont attribuées à une interface nommée boucle locale ou loopback. C’est l’interface lo dans l’extrait de configuration Linux précédent. Elle sert à s’envoyer des paquets à soi-même, donc pas besoin d’interface physique, puisque ça reste au sein du même système. ;)


  1. Cette commande n’est plus présente par défaut sous certaines distributions Linux, qui lui préfèrent la commande ip addr. Toutefois, nous trouvons que ifconfig affiche des informations plus intéressantes et mieux présentées. Vous pouvez l’installer avec le paquet net-tools.

Voilà pour une présentation assez générale et succincte de la couche 2. Elle permet la communication entre voisins au travers d’interfaces. Les possibilités sont assez vastes et souvent liées à un protocole donné. Aussi, nous étudierons des services de la couche liaison de données avec un protocole associé.