Prends un cas tres simple, un /32:
Code:
$ ipcalc 192.168.97.3/32
Address: 192.168.97.3 11000000.10101000.01100001.00000011
Netmask: 255.255.255.255 = 32 11111111.11111111.11111111.11111111
Wildcard: 0.0.0.0 00000000.00000000.00000000.00000000
=>
Hostroute: 192.168.97.3 11000000.10101000.01100001.00000011
Hosts/Net: 1 Class C, Private Internet
Tous les bits du netmask sont '1', n'est-ce pas? Tu as donc une route qui designe un host.
Okay, maintenant un /31:
Code:
$ ipcalc 192.168.97.3/31
Address: 192.168.97.3 11000000.10101000.01100001.0000001 1
Netmask: 255.255.255.254 = 31 11111111.11111111.11111111.1111111 0
Wildcard: 0.0.0.1 00000000.00000000.00000000.0000000 1
=>
Network: 192.168.97.2/31 11000000.10101000.01100001.0000001 0
HostMin: 192.168.97.2 11000000.10101000.01100001.0000001 0
HostMax: 192.168.97.3 11000000.10101000.01100001.0000001 1
Hosts/Net: 2 Class C, Private Internet, PtP Link RFC 3021
Regardes maintenant de tres pret! C'est quoi le netmask? C'est 11111111.11111111.11111111.11111110
Ca veut dire que tu peux parquer 2 hosts dans ce subnet. Lesquels?
La, il faut faire de l'arithmetique binaire. Tu prends d'abord le complement du netmask, le wildcard: 00000000.00000000.00000000.00000001. Mais oublies ce wildcard pour l'instant...
Maintenant tu prends l'adresse du depart: 192.168.97.3, en binaire: 11000000.10101000.01100001.00000011
Cette adresse, tu la fais passer par le netmask (via AND) pour obtenir le network en binaire. Donc partout ou il y avait un '1' dans le netmask, le bit correspondant de l'adresse de depart reste inchangee. La ou il y a un 0 dans le netmask, on a un zero. Donc le network devient: 11000000.10101000.01100001.0000001
0. Notes bien que c'est la meme chose que l'adresse de depart, a part le dernier bit qui est maintenant 0.
Okay. Mais c'est quoi ce nombre binaire? C'est 192.168.97.
2 (et pas 192.168.97.3). Ou, comme ipcalc dit 192.168.97.2/31
Et comme dans ce subnet, on peut parquer 2 adresses (tu te souviens?), ipcalc dit donc correctement:
Code:
HostMin: 192.168.97.2 11000000.10101000.01100001.0000001 0
HostMax: 192.168.97.3 11000000.10101000.01100001.0000001 1
.
Tu vois?
Pourquoi on peut parquer 2 hosts dans ce /31 subnet? Parce que 1 bit du netmask est 0. Et 1 bit peut prendre les valeurs 0 et 1; c.a.d. 2 valeurs possibles.
Si on avait un /30 subnet, on pourrait parquer combien de hosts la dedans? 4! Parce que on aurait 2 bits du subnet avec la valeur 0. Et la, tu as les combinaisons 00, 01, 10, 11 que tu peux faire passer via ce masque. Avec un /29 subnet, tu peut parquer 8 hosts. et ainsi de suite.
Maintenant, essayes avec /30. Ca donnera quoi? Essayes de calculer manuellement, sans utiliser ipcalc...