Wildcard Masks (inverse masks)

Pour utiliser certains protocoles ou fonctionnalités des routeurs, on fait parfois appel aux « wildcard masks », aussi appelés « inverse masks » (masques inverses) afin d’identifier un sous-réseau ou un range d’adresses IP. C’est d’ailleurs le cas pour OSPF (protocole de routage) ou encore pour les ACLs (access lists) et donc aussi pour le NAT. Voici de quoi il s’agit…

Wildcard Masks

Ces masques servent donc à identifier les adresses qui correspondent ou non à certains critères (un range d’adresse IP généralement). Leur particularité réside dans la manière dont ils sont appliqués. Pour comprendre leur fonctionnement, il faut garder en tête qu’une adresse IPv4 est un ensemble de 32 bits. Par exemple, 193.62.31.125 s’écrit 11000001.00111110.00011111.01111101 en binaire. Un wildcard mask est également composé de 32bits. Par exemple 0.0.0.255 s’écrit 0000000.0000000.0000000.11111111 en binaire.

Lors de l’application d’un wildcard mask il faut savoir que:

  • Un bit avec une valeur de 0 vérifie la correspondance de l’adresse.
  • Un bit avec une valeur de 1 ignore la valeur correspondante de l’adresse.

Prenons un exemple:

Un réseau 193.62.31.64 avec un wildcard mask 0.0.0.63 (ce qui correspond à un /26). Celà donne en binaire:

11000001.00111110.00011110.01000000  (pour l'adresse réseau)
00000000.00000000.00000000.00111111 (pour le wildcard mask)

Chaque bit de l’adresse qui correspond à un bit à 0 dans le masque devra être identique pour correspondre au réseau. Dans le cas présent, seuls les 6 derniers bits de l’adresse peuvent varier. Toutes les adresses qui commenceront par 11000001.00111110.00011110.01…… feront donc partie du range.

Il y a bien sur moyen de calculer plus rapidement ces wildcard masks, surtout parce qu’on utilise que très rarement des masques comme 0.0.124.93 (00000000.00000000.01111100.01011101), en théorie on pourrait, mais les résultats seraient assez tordus. Généralement on utilise les wildcard masks qui correspondent à des sous-réseaux:

  • 0.0.0.0 correspond à un masque « normal » /32 ou  255.255.255.255, une adresse de machine.
  • 0.0.0.255 correspond à un masque normal en /24 ou 255.255.255.0
  • 0.0.255.255 correspond à un masque normal en /16 ou 255.255.0.0
  • etc

Pour calculer rapidement le wildcard mask d’un sous réseau le plus simple est de faire une simple soustraction comme suit:

  255.255.255.255
- 255.255.255.192 ( pour un masque en /26 )
-----------------
=  0 . 0 . 0 . 63

Autre exemple pour un masque en /19

  255.255.255.255
- 255.255.224. 0
-----------------
=  0 . 0 . 31. 255

Voilà, il n’y a pas grand chose d’autre à dire à ce sujet.

2 Comments on “Wildcard Masks (inverse masks)

  1. une erreur de frappe a été commise dans l’exemple du masque en /19, le wildcard mask résultant devrait être 0.0.31.255