Vérificateur IP/Sous-réseau

Vérifier si une IP appartient à un sous-réseau

Liste d'adresses IP
Blocs réseau (CIDR)
query_stats

Les résultats de l'analyse apparaîtront ici.

Entrez des adresses IP et des blocs CIDR, puis cliquez sur « Analyser ».

Comprendre Appartenance a un sous-reseau
TL;DR

La verification de sous-reseau determine si une adresse IP appartient a un bloc CIDR donne -- une operation fondamentale pour les pare-feu, les VPN et les listes de controle d'acces.

Qu’est-ce que la verification de sous-reseau ?

La verification de sous-reseau (egalement appelee test d’appartenance au sous-reseau ou verification IP-dans-CIDR) repond a une question simple mais essentielle : une adresse IP donnee appartient-elle a un bloc CIDR specifique ? Cette operation est l’une des briques fondamentales les plus importantes en reseau, utilisee des milliards de fois par seconde a travers Internet par chaque pare-feu, routeur et repartiteur de charge qui traite du trafic.

Lorsqu’un paquet arrive a un pare-feu, l’equipement doit decider si l’adresse IP source ou destination correspond a l’une de ses regles. Chaque regle specifie generalement un bloc CIDR (par exemple, « autoriser le trafic provenant de 10.0.0.0/8 »). Le pare-feu effectue une verification d’appartenance au sous-reseau pour chaque paquet par rapport a chaque regle pertinente afin de determiner s’il faut autoriser, refuser ou acheminer le trafic.

L’operation est trivialement simple sur le plan calculatoire — elle ne necessite qu’un seul ET logique (AND) — mais son importance pour la securite reseau et le routage ne saurait etre surestimee.

Masquage par ET binaire

L’operation mathematique derriere la verification de sous-reseau est un ET logique bit a bit (AND) entre l’adresse IP et le masque de sous-reseau. Si le resultat est egal a l’adresse reseau du bloc CIDR, l’IP appartient a ce sous-reseau.

Voici le processus etape par etape pour verifier si 192.168.1.50 appartient a 192.168.1.0/24 :

  1. Convertir l’IP en binaire :

    • 192.168.1.50 = 11000000.10101000.00000001.00110010
  2. Determiner le masque de sous-reseau a partir de la longueur du prefixe :

    • /24 = 11111111.11111111.11111111.00000000 (255.255.255.0)
  3. Effectuer le ET logique :

    • 11000000.10101000.00000001.00110010 (IP)
    • 11111111.11111111.11111111.00000000 (masque)
    • = 11000000.10101000.00000001.00000000 = 192.168.1.0
  4. Comparer avec l’adresse reseau :

    • Le resultat (192.168.1.0) est egal a l’adresse reseau (192.168.1.0)
    • L’IP appartient au sous-reseau.

Verifions maintenant 10.0.0.1 par rapport a 192.168.0.0/16 :

  1. Convertir : 10.0.0.1 = 00001010.00000000.00000000.00000001
  2. Masque : /16 = 11111111.11111111.00000000.00000000
  3. AND : = 00001010.00000000.00000000.00000000 = 10.0.0.0
  4. Comparer : 10.0.0.0 n’est pas egal a 192.168.0.0 — l’IP N’appartient PAS au sous-reseau.

Cette operation s’execute en temps constant O(1) quelle que soit la taille du bloc CIDR, c’est pourquoi elle passe a l’echelle a des milliards de verifications par seconde sur le materiel moderne.

En code

La plupart des langages de programmation fournissent des bibliotheques pour la verification de sous-reseau, mais la logique de base est simple :

function isInSubnet(ip, cidr):
    networkAddress = cidr.baseAddress
    prefixLength = cidr.prefix
    mask = (0xFFFFFFFF << (32 - prefixLength)) & 0xFFFFFFFF
    return (ip & mask) == (networkAddress & mask)

En JavaScript, Python, Go et la plupart des autres langages, c’est une seule ligne une fois les adresses converties en entiers 32 bits.

Cas d’utilisation courants

  • Regles de pare-feu : chaque regle entrante et sortante d’un pare-feu effectue des verifications d’appartenance au sous-reseau pour determiner si le trafic doit etre autorise, refuse ou journalise
  • Tunnelisation fractionnee VPN : les clients VPN verifient les adresses IP de destination par rapport a une liste de blocs CIDR pour decider si le trafic doit passer par le tunnel ou aller directement vers Internet
  • Listes de controle d’acces (ACL) : les routeurs et les commutateurs utilisent des ACL avec des regles basees sur le CIDR pour filtrer le trafic en peripherie de reseau et entre les VLAN
  • Groupes de securite cloud : les groupes de securite AWS, Azure et GCP evaluent les regles CIDR pour controler le trafic entrant et sortant des machines virtuelles et des conteneurs
  • Limitation de debit : les passerelles API appliquent souvent des limites de debit differentes selon que l’adresse IP du client appartient a un bloc CIDR de confiance (interne) ou a une plage externe
  • Restriction geographique : les reseaux de diffusion de contenu (CDN) verifient les adresses IP des clients par rapport aux blocs CIDR nationaux publies par les registres Internet regionaux pour appliquer les politiques de contenu geographique
  • Depannage reseau : lorsqu’un equipement ne peut pas atteindre une destination, verifier si l’adresse IP cible se situe dans le sous-reseau local permet de determiner si le probleme est un probleme de routage ou une mauvaise configuration locale

Essayez ces exemples

IP a l'interieur du sous-reseau Valide

L'adresse 192.168.1.50 se situe dans la plage 192.168.1.0-192.168.1.255 definie par le bloc /24. L'application du masque de sous-reseau 255.255.255.0 aux deux adresses produit la meme adresse reseau : 192.168.1.0.

192.168.1.50 in 192.168.1.0/24
IP en dehors du sous-reseau Valide

L'adresse 10.0.0.1 n'appartient pas au bloc 192.168.0.0/16 (192.168.0.0-192.168.255.255). Les premiers octets different completement -- 10 contre 192 -- de sorte que le test par ET logique echoue immediatement.

10.0.0.1 in 192.168.0.0/16