Adresse IP et les Masques de sous réseaux

Adresse IP version 4

C’est une adresse unique attribué à une machine sur un réseau, c’est la première version de l’Internet Protocole à avoir été déployé à la création de l’internet .

Nous allons faire un tout petit peu de maths;  si vous savez faire les multiplications par 2 et des additions vous savez compter en binaire, pour un réseau simple il n’est pas forcément nécessaire de comprendre les binaires et l’adressage, toutefois par curiosité voici comment on fabrique une adresse IP version4.

Système décimale

Dans la vie de tout les jours nous évoluons dans un système de base 10, et l’on compte d’ordinaire de 0 à 9 pour les unités puis on passe aux dizaines puis les centaines, et ainsi de suite. C’est le système décimale, vous faites l’exercice tout les jours sans vous en rendre compte.

  • Par exemple: 1984
  • 1x mille= 1000
  • 9x cent= 900
  • 8x dix= 80
  • 4x un=4

Système binaire

En informatique on évolue en base 2 , les binaires, pour compter en binaire il suffit de savoir multiplier par 2 ( en gros) et faire des additions.

Prenez un crayon et du papier, préparez un tableau comme plus bas, puis faites:

  • 1/0 c'est le premier bit (lsb: less significant bit)
  • 1x2=2
  • 2x2=4
  • 4x2=8
  • 8x2=16
  • 16x2=32
  • 32x2=64
  • 64x2=128

Puis ordonnez vos résultats

binaire

27

26

25

24

23

22

21

20

 Valeur

128

64

32

16

8

4

2

1/0

état

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

résultat

0

Nous avons nos valeurs, lorsqu’un bit est activé , sa valeur est activée, que l’on additionne. Quand ils sont tous activé cela fait 255, additionnez toute les valeurs vous verrez.

Ah..; c’est tout ? Euh oui pour faire simple oui.Le base 2 s’écrit comme suit:

  • Si l’on prend  25
  • Cela donne: 2x2x2x2x2=32 (nous avons bien posé 5 fois notre 2)

2×2=4×2=8×2=16×2=32

Comme expliqué précédemment une IP version4 et une « phrase » de 4 mots (ou 4 octets) de 8 bits chacun ce qui nous donne 32bits, théoriquement nous aurions 232 adresses IP au maximum, soit 4 294 967 296 adresses IP au total.

Cela peut sembler beaucoup en fait pas du tout, le volume d'adresses est bientôt épuisé, une technique ( le NAT pour Network Adress Translating) a permis de contourner la limite, toutefois elle aussi arrive dans ses derniers retranchement, il nous faudra passer alors à l'IPv6 mais là encore c'est une histoire d'argent...

Le bit 1/0

Le bit est un état: elle est là ou elle est pas là, pas compliqué 1 ou 0,  c’est ce qui transite sur la paire de cuivre, la couche 1 du modèle OSI, et TCP/IP. La couche physique.

Le bit est représenté par 1 ou 0, ce sont des états, présent ou absent, activé ou désactivé, allumé ou éteint mais ce ne sont pas des nombres ayant une valeur mathématiques.

C’est ici une subtilité utile à saisir. Cela vient du fait qu’en électricité il est lus facile de distinguer 2 signaux que 3 ou plus. C’est signaux sont des écart électrique de 5volt, et c’est même plus subtile, 5V permet de gérer un certain « bruit ».

Comptons maintenant

Par exemple: 192.168.3.1

Voici un petit tableau pour « coder » un octet ( donc 8bits) nous allons fabriquer le quatrième octet 192.168.3.1, bien que sa valeur soit petite il est bien composé de 8 bits (ils ne sont pas tous activés), pour faire 1 : seul le premier bit est activé.

Base 2

27

26

25

24

23

22

21

20

Valeur

128

64

32

16

8

4

2

1

état

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

1

résultat

1

Passons à l’octet suivant dans l’adresse c’est à dire 192.168.3.1, ici 2 bits seront activés, il suffit d’additionner les valeurs.

Pour une valeur impair le premier bit est toujours activé.

Base 2

27

26

25

24

23

22

21

20

Valeur

128

64

32

16

8

4

2

1

état

0

0

0

0

0

0

1

1

0

0

0

0

0

0

2 plus

1

résultat

3

Maintenant le deuxième octets 192.168.3.1

Base 2

27

26

25

24

23

22

21

20

Valeur

128

64

32

16

8

4

2

1

état

1

0

1

0

1

0

0

0

128 plus

0

32 plus

0

8 plus

0

0

0

résultat

168

On s’aperçoit que nous avons seulement 3 bits d’activés pour une valeur de 168, c’est formidable, vous allez voir avec 192 c’est encore plus étonnant.

Maintenant le premier octet 192.168.3.1

Base 2

27

26

25

24

23

22

21

20

Valeur

128

64

32

16

8

4

2

1

état

1

1

0

0

0

0

0

0

128 plus

64 plus

0

0

0

0

0

0

résultat

192

Là c’est incroyable avec un bit de moins nous avons une valeur plus grande que la précédente: pour 168 nous avons 3 bits, pour 192 seulement 2, vous comprenez l’économie.

Avec moins nous avons plus…..à méditer.

Maintenant notre adresse IPv4 en binaire.

192            168            3                  1

11000000.10101000.00000011.00000001

192

1

1

0

0

0

0

0

0

168

1

0

1

0

1

0

0

0

3

0

0

0

0

0

0

1

1

1

0

0

0

0

0

0

0

1

 

C’est impressionnant comme ça mais ce n’est pas grand chose, et je le rappel il n’est pas nécessaire de bien comprendre une IP pour se connecter, vous n’aviez jamais su mais ça ne vous a jamais empêcher d’aller sur le net.

Notation CIDR et masque de sous réseau

Une adresse IP, c’est bien sympa, mais toute seul elle n’a pas de sens, nous devons pouvoir l’écrire sous une forme qui indique sans ambiguïté le réseau et la machine.

  • 192.168.3.1/24
  • ou 192.168.3.1 net-mask 255.255.255.0

Oui le 3° octet est le réseau

  • 192.168.3.1/16
  • ou 168.168.3.1 net-mask 255.255.0.0

Non le 3° octet n’est pas le réseau

Apparu en 1990 le CIDR pour Classless Inter-Domain Routing afin de remplacer les classes d’adresses (à apprendre par coeur..), cette notation permet plus de souplesse et est à mon sens logique. Il suffit de se repporter sur les RFC.

Voici un tableau  regroupant toute les notation CIDR, recherchez le /24 qui correspond généralement à une configuration par défaut pour un petit réseau, si nous prenons un /23 soit un bit de moins pour fournir des adresses et bien nous n’avons plus que 126 adresses (en gros la moitié des adresses)

CIDR

bits disponibles

Masque de sous-réseau en binaire

Masque de sous-réseau

Nombre d’hôtes par sous-réseau

/1

31

10000000.00000000.00000000.00000000

128.0.0.0

231-2 = 2147483646

/2

30

11000000.00000000.00000000.00000000

192.0.0.0

230-2 = 1073741822

/3

29

11100000.00000000.00000000.00000000

224.0.0.0

229-2 = 536870910

/4

28

11110000.00000000.00000000.00000000

240.0.0.0

228-2 = 268435454

/5

27

11111000.00000000.00000000.00000000

248.0.0.0

227-2 = 134217726

/6

26

11111100.00000000.00000000.00000000

252.0.0.0

226-2 = 67108862

/7

25

11111110.00000000.00000000.00000000

254.0.0.0

225-2 = 33554430

/8

24

11111111.00000000.00000000.00000000

255.0.0.0

224-2 = 16777214

/9

23

11111111.10000000.00000000.00000000

255.128.0.0

223-2 = 8388606

/10

22

11111111.11000000.00000000.00000000

255.192.0.0

222-2 = 4194302

/11

21

11111111.11100000.00000000.00000000

255.224.0.0

221-2 = 2097150

/12

20

11111111.11110000.00000000.00000000

255.240.0.0

220-2 = 1048574

/13

19

11111111.11111000.00000000.00000000

255.248.0.0

219-2 = 524286

/14

18

11111111.11111100.00000000.00000000

255.252.0.0

218-2 = 262142

/15

17

11111111.11111110.00000000.00000000

255.254.0.0

217-2 = 131070

/16

16

11111111.11111111.00000000.00000000

255.255.0.0

216-2 = 65534

/17

15

11111111.11111111.10000000.00000000

255.255.128.0

215-2 = 32766

/18

14

11111111.11111111.11000000.00000000

255.255.192.0

214-2 = 16382

/19

13

11111111.11111111.11100000.00000000

255.255.224.0

213-2 = 8190

/20

12

11111111.11111111.11110000.00000000

255.255.240.0

212-2 = 4094

/21

11

11111111.11111111.11111000.00000000

255.255.248.0

211-2 = 2046

/22

10

11111111.11111111.11111100.00000000

255.255.252.0

210-2 = 1022

/23

9

11111111.11111111.11111110.00000000

255.255.254.0

29-2 = 510

/24

8

11111111.11111111.11111111.00000000

255.255.255.0

28-2 = 254

/25

7

11111111.11111111.11111111.10000000

255.255.255.128

27-2 = 126

/26

6

11111111.11111111.11111111.11000000

255.255.255.192

26-2 = 62

/27

5

11111111.11111111.11111111.11100000

255.255.255.224

25-2 = 30

/28

4

11111111.11111111.11111111.11110000

255.255.255.240

24-2 = 14

/29

3

11111111.11111111.11111111.11111000

255.255.255.248

23-2 = 6

/30

2

11111111.11111111.11111111.11111100

255.255.255.252

22-2 = 2

/31

1

11111111.11111111.11111111.11111110

255.255.255.254

21

/32

0

11111111.11111111.11111111.11111111

255.255.255.255

20

Revenons au 4° octet celui qui désigne l’adresse d’une machine dans un réseau, la formule permettant de connaitre le nombre d’IP de disponible est 2n-2

2n-2 présenté comme ça c’est un peu abstrait, il faut comprendre ici, que vous avez toujours 2 adresses de non disponibles. Donc pour une plage sur 8 bit nous aurons 256 moins 2 ce qui nous donne 254 adresses de disponible.

La première étant occupé par le réseau: 192.168.3.0 et la suivante pour le broadcast: 192.168.3.255 , le broadcast est une adresse de multidiffusion cela permet aux machines d’envoyer un message à tous les autres appareils du réseau, qui eux « écoutent » sur cette adresse, c’est sur cette adresse que sont envoyées les requêtes et les réponses DHCP par exemple.

Je n’entre pas plus en détail, mais les p’tits malins ont compris que l’on pourrait réduire aisément la plage d’adresses disponible.

Par exemple 192.168.3.1/27 = 30 adresses de disponible pourquoi?

Voici: 32bits – 27bits = 5bits de disponible puis on applique la formule 2n 2 au résultat , 25 2=30 ou reportez vous au tableau.

En fait c’est là que ça devient intéressant, nous pourrions segmenter le réseau en sous réseaux, mais nécessite un peu plus de matériels, répondant à certaines normes suivant la complexité de l’infrastructure, la nature de son activité, le nombre de postes, la dimension du réseau .

Mais cela dépasse le cadre de l’article, d’autant plus que les évolutions techniques logiciel et système permettent des choses absolument incroyable, notamment grâce à la virtualisation et les toutes récente évolution comme les docker et système de fichiers LXC, ou plus classiquement les KVM,  Citrix, VMWare ou Azure

 

 

 

 

Sidebar