Calculateur de sous-réseau
Calculez l'adresse réseau, le broadcast, le masque, la plage d'hôtes et le CIDR pour IPv4/IPv6 — entièrement dans votre navigateur.
Qu'est-ce qu'un calculateur de sous-réseau ?
Un calculateur de sous-réseau est un outil qui prend une adresse IP associée à un préfixe CIDR ou à un masque de sous-réseau et en déduit les propriétés structurelles du réseau : adresse réseau, adresse de broadcast, plage d'hôtes utilisables, nombre total d'hôtes, et la frontière binaire entre les bits réseau et les bits hôte. Les ingénieurs réseau, les administrateurs système et les développeurs y ont recours dès qu'il faut planifier des allocations VLSM, écrire des règles de pare-feu, diagnostiquer un "pourquoi ces hôtes ne se parlent-ils pas", ou configurer des tables de routage. Le calcul repose sur des opérations bit à bit AND/OR avec le masque — trivial sur le papier, propice aux erreurs en pratique, surtout entre IPv4 et IPv6 dont les adresses font respectivement 32 et 128 bits. Ce calculateur s'exécute entièrement dans votre navigateur en utilisant l'arithmétique BigInt, il gère donc l'IPv6 complet (/0 à /128) sans perte de précision, et n'envoie jamais l'adresse que vous collez à un quelconque serveur.
Mode d'emploi
Étapes
- Choisissez IPv4 ou IPv6 avec le sélecteur en haut.
- Saisissez une adresse IP dans le champ — par exemple, 10.0.0.42 ou 2001:db8::1.
- Ajustez la longueur du préfixe via le champ numérique ou le curseur ; les résultats se mettent à jour instantanément.
- Cliquez sur n'importe quelle case de résultat pour copier sa valeur dans le presse-papiers.
- Pour IPv4, vous pouvez optionnellement découper le réseau en sous-réseaux plus petits en définissant un préfixe cible plus long.
Pièges courants
- Les réseaux /31 ne sont pas cassés — la RFC 3021 les autorise explicitement sur les liens point à point, où les deux adresses sont utilisables.
- Un /32 représente un hôte unique (une route d'hôte), pas un réseau vide. De même pour IPv6 /128.
- Le concept d'"adresse de broadcast" n'existe pas en IPv6 ; le champ affiche à la place la dernière adresse du préfixe, qui joue le même rôle pour les vérifications de plage.
- Les masques génériques (utilisés dans les ACL Cisco) sont simplement le NOT bit à bit du masque de sous-réseau — 0.0.0.255 est le wildcard de 255.255.255.0.
Cas d'usage
Principe technique
Une adresse IPv4 fait 32 bits, une IPv6 fait 128 bits. La notation CIDR (RFC 4632, août 2006) attache une longueur de préfixe /n à l'adresse, déclarant que les n bits les plus à gauche sont l'identifiant réseau et les bits restants l'identifiant hôte. Le masque de sous-réseau est un motif binaire avec n 1 consécutifs suivis de 32−n (ou 128−n) zéros — pour /24 cela donne 11111111.11111111.11111111.00000000, soit 255.255.255.0 en décimal pointé. CIDR a remplacé l'adressage par classe plus ancien de la RFC 791 (où 0.0.0.0–127.255.255.255 était la Classe A avec un /8 implicite, avec 0.0.0.0/8 réservé pour 'ce réseau' et 127.0.0.0/8 réservé pour loopback ; 128.0.0.0–191.255.255.255 était la Classe B (/16) ; 192.0.0.0–223.255.255.255 était la Classe C (/24)), qui gaspillait les adresses de manière catastrophique : une entreprise de 1 000 employés à qui on attribuait une Classe B se retrouvait avec 65 534 hôtes alors qu'elle en avait besoin de 1 000, fragmentant l'espace IPv4. CIDR autorise n'importe quelle longueur de préfixe, permettant le VLSM (Variable-Length Subnet Mask, initialement formalisé dans la RFC 950 (1985)) et l'agrégation de routes ("supernetting"). Les opérations centrales sont bit à bit : réseau = adresse AND masque ; broadcast = réseau OR (NOT masque) = réseau OR wildcard. Pour 192.168.1.100/24, l'adresse 0xC0A80164 ANDée avec 0xFFFFFF00 donne 0xC0A80100 (192.168.1.0), et ORée avec 0x000000FF donne 0xC0A801FF (192.168.1.255). Les hôtes utilisables sont 2^(32−n) − 2 pour IPv4 (en soustrayant le réseau et le broadcast) ; le −2 disparaît en /31 (la RFC 3021 l'a récupéré pour les liens point à point, les deux extrémités étant utilisables) et en /32 (une route d'hôte unique). IPv6 n'a pas d'adresse de broadcast — le multicast et l'anycast l'ont remplacée — donc la "dernière adresse" est simplement la borne supérieure de la plage du préfixe. Les opérateurs bit à bit natifs de JavaScript sont signés sur 32 bits, ce qui déborde pour le 0xFFFFFFFF d'IPv4 (devient −1) et ne peut pas représenter IPv6 du tout ; ce calculateur utilise BigInt pour les deux, garantissant une exactitude identique d'une version à l'autre. L'espace d'adresses privées est défini par la RFC 1918 pour IPv4 : 10.0.0.0/8, 172.16.0.0/12, et 192.168.0.0/16. IPv6 utilise les Unique Local Addresses (RFC 4193) en fc00::/7, plus les link-local fe80::/10 pour SLAAC et la communication on-link. Le calculateur signale ces plages pour que vous ne publiiez pas accidentellement une plage privée vers le BGP public. Erreurs courantes que cet outil prévient : (1) saisir 192.168.1.100/255.255.255.0 versus /24 — le calculateur accepte la forme préfixe et affiche le masque pointé ; (2) mal compter la capacité d'hôtes pour /30 versus /29 (2 vs 6 hôtes) ; (3) découper un /24 en huit /27 et se tromper sur le démarrage du quatrième sous-réseau (c'est 192.168.1.96, pas 192.168.1.97) ; (4) confondre le wildcard 0.0.0.255 avec le masque 255.255.255.0 dans la syntaxe ACL Cisco. La visualisation binaire, avec les bits réseau mis en évidence, est le moyen le plus rapide d'intérioriser la frontière qui fait disparaître toutes ces erreurs.
- La RFC 4632 (août 2006) définit CIDR — Classless Inter-Domain Routing — qui remplace le schéma par classe A/B/C de la RFC 791. La notation /n déclare la longueur du préfixe réseau ; les bits restants sont la portion hôte. CIDR rend possible le VLSM (initialement formalisé dans la RFC 950 (1985)) et l'agrégation de routes, tous deux essentiels à la conservation d'IPv4 et à la table BGP moderne.
- Adresse réseau = IP AND masque ; broadcast = réseau OR wildcard (où wildcard = NOT masque). Pour /24 : masque 0xFFFFFF00, wildcard 0x000000FF. Hôtes utilisables = 2^(32−n) − 2, sauf /31 (RFC 3021, deux adresses utilisables sur les liens point à point) et /32 (route d'hôte unique).
- IPv6 (128 bits) n'a pas de broadcast — le multicast (ff00::/8) et l'anycast l'ont remplacé. Le préfixe minimum conventionnel est /64 (pour SLAAC, 18 quintillions d'adresses par sous-réseau) ; /56 ou /48 par site ; /32 par ISP. L'espace d'adresses IPv6 privilégie l'agrégation de routage plutôt que la conservation.
- Plages réservées au-delà de la RFC 1918 : 127.0.0.0/8 est le loopback, 169.254.0.0/16 est le link-local IPv4 (auto-IP / APIPA), 224.0.0.0/4 est le multicast, 240.0.0.0/4 est réservé à un usage expérimental. IPv6 réserve aussi fe80::/10 pour le SLAAC link-local, ff00::/8 pour le multicast, et ::1/128 pour le loopback. Le calculateur distingue les plages privées des publiques afin que vous puissiez voir d'un coup d'œil si l'adresse saisie est routable sur l'internet public.
- Les opérateurs bit à bit de JavaScript sont signés sur 32 bits : (0xFFFFFFFF & 0xFFFFFF00) renvoie −256, pas 0xFFFFFF00. Ce calculateur utilise BigInt partout pour gérer la plage IPv4 complète et les 128 bits d'IPv6 sans perte de précision. Le même chemin de code calcule les deux versions ; seule la largeur du masque diffère.
- Piège classique Cisco/Juniper : la syntaxe ACL prend un masque générique (0.0.0.255), pas un masque de sous-réseau (255.255.255.0). Les instructions "network" d'EIGRP et OSPF utilisent aussi des wildcards. Un masque inversé fait correspondre le complément du réseau visé — silencieusement dans les protocoles de routage (aucune adjacence ne se forme), de manière exploitable dans les ACL (du mauvais trafic est autorisé).
- Exemple VLSM : un /24 découpé en 4 sous-réseaux égaux devient 4 × /26 (64 adresses chacun), soit 62 hôtes utilisables par sous-réseau. Les /26 adjacents commencent aux décalages 0, 64, 128, 192 — PAS 0, 63, 127, 191. L'outil de découpage du calculateur génère ces frontières pour que vous n'ayez pas à les traduire mentalement.
Exemples
/24 standard (LAN le plus courant)
Entrée: 192.168.1.100/24
Réseau: 192.168.1.0
Broadcast: 192.168.1.255
Masque: 255.255.255.0
Wildcard: 0.0.0.255
Hôtes: 192.168.1.1 - 192.168.1.254 (254 utilisables)
Classe: C, Privée (RFC 1918)
Binaire: 11000000.10101000.00000001.01100100
(bits réseau = 24 à gauche ; bits hôte = 8 à droite)Point à point /31 (RFC 3021)
Entrée: 10.0.0.1/31
Réseau: 10.0.0.0
Broadcast: 10.0.0.1
Masque: 255.255.255.254
Hôtes: 10.0.0.0 - 10.0.0.1 (2 utilisables, les deux extrémités du lien)
Avant la RFC 3021, /31 était "inutilisable" car 2 - 2 = 0. Les
routeurs modernes autorisent les deux adresses sur les liens
point à point, ce qui économise la moitié de l'espace d'adresses
sur les segments de transit.Découpage VLSM : /24 en quatre /26
Entrée: 192.168.1.0/24, découpé en /26
Sous-réseau 1: 192.168.1.0/26 hôtes .1 - .62
Sous-réseau 2: 192.168.1.64/26 hôtes .65 - .126
Sous-réseau 3: 192.168.1.128/26 hôtes .129 - .190
Sous-réseau 4: 192.168.1.192/26 hôtes .193 - .254
Notez les frontières : 0, 64, 128, 192 — chaque /26 contient
64 adresses (62 utilisables). Une erreur courante est de
commencer le sous-réseau 2 à .63 (le broadcast du sous-réseau 1,
+1) — mais .63 est le broadcast lui-même ; le sous-réseau
suivant commence à .64.IPv6 /64 (réseau feuille standard)
Entrée: 2001:db8:1234:5678::1/64
Réseau: 2001:db8:1234:5678::
Dernière: 2001:db8:1234:5678:ffff:ffff:ffff:ffff
Masque: ffff:ffff:ffff:ffff::
Hôtes: 18 446 744 073 709 551 616 (2^64)
Un seul /64 contient plus d'adresses qu'IPv4 au carré.
SLAAC exige /64 car les 64 bits inférieurs encodent
l'identifiant d'interface (EUI-64 ou aléatoire selon RFC 7217).FAQ
Pourquoi un /24 donne-t-il 254 hôtes utilisables au lieu de 256 ?
Un sous-réseau /24 contient 2^8 = 256 adresses, mais deux d'entre elles sont réservées : l'adresse réseau (192.168.1.0) identifie le sous-réseau lui-même dans les tables de routage, et l'adresse de broadcast (192.168.1.255) sert aux messages destinés à tous les hôtes du sous-réseau. Les deux sont inutilisables comme IP d'hôte, ce qui laisse 254 adresses assignables. La même règle du −2 s'applique à tous les préfixes IPv4 de /1 à /30. Exceptions : /31 a 2 adresses utilisables (RFC 3021, point à point), /32 en a 1 (route d'hôte unique).
Quelle est la différence entre un masque de sous-réseau et un masque générique ?
Un masque de sous-réseau a des 1 dans la portion réseau et des 0 dans la portion hôte — pour /24, c'est 255.255.255.0. Un masque générique en est le NOT bit à bit — pour /24, c'est 0.0.0.255. Les access-lists Cisco IOS, EIGRP et OSPF utilisent des wildcards parce que l'implémentation ACL d'origine reposait sur un modèle "don't care" (les bits à 1 dans le wildcard signifient "ce bit n'a pas besoin de correspondre"). Les autres fabricants et la plupart des syntaxes Cisco modernes acceptent aussi la forme masque de sous-réseau, mais les configurations héritées que vous récupérerez utiliseront des wildcards.
IPv6 a-t-il une adresse de broadcast ?
Non. IPv6 a délibérément supprimé le broadcast et l'a remplacé par le multicast (ff00::/8) et l'anycast. La portée "all-nodes" est ff02::1, qui se comporte comme le broadcast link-local d'IPv4 mais n'atteint que les nœuds qui ont rejoint le groupe multicast. Pour IPv6, le calculateur étiquette donc cette valeur « Dernière adresse » plutôt que « Broadcast » ; vous ne pouvez pas lui envoyer de paquets comme à 255.255.255.255 en IPv4 — il n'existe aucun concept au niveau du protocole qui les distribue à chaque hôte.
Pourquoi /31 est-il utile s'il n'a "aucun hôte utilisable" selon l'ancienne formule ?
Les manuels d'avant 2000 disaient qu'un /31 a 2^1 − 2 = 0 hôtes utilisables et était donc invalide. La RFC 3021 (décembre 2000) a re-spécifié /31 pour les liens point à point, où il y a exactement deux extrémités et aucun besoin de broadcast séparé — le lien lui-même définit la portée du broadcast. Les routeurs modernes (IOS 12.2+, Junos, FRR, Linux) prennent tous /31 en charge. Utiliser /31 au lieu de /30 sur les liens de transit divise par deux l'espace d'adresses consommé par l'infrastructure réseau de cœur, ce qui s'accumule sur des milliers de liens dans un grand réseau.
Pourquoi tous mes sous-réseaux IPv6 semblent-ils être en /64 ?
Par convention, la plus petite unité IPv6 attribuée à un réseau feuille est /64. Les 64 bits inférieurs sont réservés à l'identifiant d'interface — SLAAC (RFC 4862) les génère depuis l'adresse MAC (EUI-64), ou via un hachage stable du préfixe réseau et d'un secret par hôte (RFC 7217), ou encore via des valeurs aléatoires de courte durée (extensions de confidentialité RFC 4941). Utiliser un /126 ou /127 sur un lien point à point fonctionne techniquement pour une configuration statique, mais casse SLAAC et de nombreuses fonctionnalités automatiques. /64 est recommandé pour tout sous-réseau qui héberge des stations terminales ; /127 n'est utilisé que sur les liens routeur à routeur où vous avez le contrôle total.
Cet outil envoie-t-il mon adresse IP à un serveur ?
Non. Tous les calculs sont effectués côté client dans votre navigateur en utilisant l'arithmétique BigInt de JavaScript. Aucune adresse, aucun préfixe ni résultat calculé n'est transmis à un quelconque backend. Vous pouvez le vérifier en ouvrant l'onglet réseau des DevTools du navigateur — il n'y a aucune requête sortante pendant le calcul. Cela correspond à l'attente de confidentialité de tous les utilitaires ToolAct fonctionnant dans le navigateur.
Quelle est la différence entre /24 et 255.255.255.0 ?
Aucune sur le plan fonctionnel — ce sont deux notations pour le même masque. /24 (notation CIDR, RFC 4632) compte le nombre de bits 1 de tête ; 255.255.255.0 (masque en décimal pointé) écrit ces bits sous forme de nombre à quatre octets. La plupart des OS et des configurations de routeurs modernes acceptent l'une ou l'autre forme. Le calculateur affiche les deux pour tout préfixe que vous saisissez, vous pouvez donc copier-coller celle qu'exige votre système cible.
Pourquoi ce calculateur rejette-t-il des entrées comme 010.0.0.1 ?
Les zéros de tête (010, 04, 0001) sont rejetés parce que la même chaîne signifie des choses différentes selon les analyseurs IP — l'inet_aton de la glibc a historiquement interprété les octets à zéro de tête comme de l'octal (010 = 8), tandis que Python moderne (3.9.5+) et le runtime JavaScript les traitent comme du décimal (010 = 10). Ce désaccord entre piles a provoqué de véritables vulnérabilités de contournement SSRF (CVE-2021-29921 et apparentées) où un service traite 010.0.0.1 comme 8.0.0.1 dans sa vérification de liste blanche, alors qu'une bibliothèque en aval se connecte à 10.0.0.1. Pour ne pas suggérer une interprétation particulière, ce calculateur rejette tout octet comportant des zéros de tête — supprimez le zéro (010 → 10) avant de coller.