9 Trucs et astuces avec les masques
9.1 Comment déterminer qu'une machine appartient à mon réseau ?
C'est très simple. pour cela, il va falloir déterminer si l'adresse de la machine appartient à la plage d'adresses définie par mon adresse et mon masque.
Pour cela, je fais un ET logique entre mon adresse et mon masque réseau, j'en déduis donc l'adresse de mon réseau (pour une explication du ET logique, regarder le paragraphe 10.4)
Je fais pareil avec l'adresse de l'autre machine et MON masque réseau, et j'obtiens une adresse de réseau. Si les deux adresses de réseau sont les mêmes, ça veut dire que la machine appartient bien au même réseau.
Disons par exemple que ma machine ait pour adresse 192.168.0.140/255.255.255.128 et je veux savoir si les machines A et B ayant pour adresses 192.168.0.20(A) et 192.168.0.185(B) sont sur le même réseau ? Je fais
192.168.0.140
ET 255.255.255.128
-------------------
= 192.168.0.128
de même avec les deux autres adresses
· Pour A:
192.168.0.20
ET 255.255.255.128
-------------------
= 192.168.0.0
· et pour B:
192.168.0.185
ET 255.255.255.128
--------------------
= 192.168.0.128
On voit ainsi que les nombres obtenus sont les mêmes pour ma machine et B. On en déduit donc que B est sur le même réseau, et que A est sur un réseau différent.
9.2 Des machines sur un même réseau peuvent elles avoir des masques différents ?
A priori, la réponse est non. Cependant, il peut y avoir des cas dans lesquels une telle configuration peut être utile.
Pour comprendre cela, il faut comprendre ce qui se passe au niveau de la communication entre machines, et notamment sur le fonctionnement du modèle TCP/IP. Celui-ci ne faisant pas partie de l'objet du cours, nous ne ferons que survoler le sujet.
En fait, ce ne sont pas les mêmes mécanismes qui gèrent une communication entre deux machines sur un même réseau, et deux machines sur deux réseaux distincts. Une communication a lieu dans les deux sens, c'est à dire que pour communiquer ensemble, une machine A doit voir une machine B ET la machine B doit voir la machine A.
Prenons l'exemple de trois machines A, B et C et de la plage d'adresses 192.168.0.0/24. A doit pouvoir communiquer avec B et C, mais B ne doit pas pouvoir communiquer avec C. Pour cela, on peut jouer sur les masques des machines et les plages d'adresses réseau auxquelles elles appartiennent.
Grâce aux masques, on peut découper cette plage en deux, et on obtient ainsi, non plus une plage d'adresses... mais trois !
1. 192.168.0.0/255.255.255.0
soit de 192.168.0.0 à 192.168.0.255
2. 192.168.0.0/255.255.255.128
soit de 192.168.0.0 à 192.168.0.127
3. 192.168.0.128/255.255.255.128
soit de 192.168.0.128 à 192.168.0.255
En fait, la première plage englobe les deux autres, ainsi, une machine de la première plage pourra voir toutes les autres machines des autres plages, mais une machine de la seconde plage ne pourra pas voir toutes les machines de la première plage (seulement la moitié des adresses...)
Ce n'est pas clair ? regardons alors un exemple:
On donne les adresses suivantes aux machines A, B et C.
· A: 192.168.0.129/255.255.255.0
· B: 192.168.0.130/255.255.255.128
· C: 192.168.0.1/255.255.255.0
D'après ce que l'on a vu précédemment, A et C considèrent que la machine B est sur leur réseau. Par contre, B considère que C n'est pas sur son réseau. Ainsi, C peut envoyer un paquet à B, mais B ne pourra pas lui répondre. Cette configuration correspond donc bien à ce que l'on cherchait à faire. Cependant, une telle configuration n'est pas conseillée et ne doit être utilisée que s'il n'y a pas d'autres solutions. En dehors de cas exotiques comme celui exposé, on ne doit jamais avoir deux machines appartenant à un même réseau ayant des masques différents !