ToolActToolAct

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.

Adresse réseau192.168.1.0 Copier
Adresse de broadcast192.168.1.255 Copier
Masque de sous-réseau255.255.255.0 (/24) Copier
Masque générique0.0.0.255 Copier
Premier hôte192.168.1.1 Copier
Dernier hôte192.168.1.254 Copier
Hôtes utilisables254 Copier
Classe IPPrivéeClasse C Copier
Représentation binaireBits réseauBits hôte
11000000.10101000.00000001.01100100
Découper en sous-réseaux plus petits
Découper en/
192.168.1.0/26
192.168.1.64/26
192.168.1.128/26
192.168.1.192/26

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

  1. Choisissez IPv4 ou IPv6 avec le sélecteur en haut.
  2. Saisissez une adresse IP dans le champ — par exemple, 10.0.0.42 ou 2001:db8::1.
  3. Ajustez la longueur du préfixe via le champ numérique ou le curseur ; les résultats se mettent à jour instantanément.
  4. Cliquez sur n'importe quelle case de résultat pour copier sa valeur dans le presse-papiers.
  5. 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

Planifier des allocations VLSM entre servicesAvec un /20 d'entreprise comme 10.10.0.0/20 (4 094 hôtes utilisables), vous devez tailler des sous-réseaux qui correspondent à l'effectif réel de chaque service : un bureau de 500 places réclame un /23 (510 hôtes), une équipe de 50 personnes prend un /26 (62 hôtes), et un segment de transit à quatre routeurs utilise un /29 (6 hôtes). Saisissez chaque préfixe candidat dans le calculateur et les bornes réseau/broadcast vous indiquent exactement où le sous-réseau suivant peut commencer sans chevauchement. Faire ce travail sur papier produit immanquablement des erreurs de décalage d'une unité aux frontières entre /26 et /27 adjacents ; la visualisation binaire ici rend la frontière des bits réseau visible d'un seul coup d'œil.
Écrire des ACL Cisco/Juniper qui exigent un masque génériqueLa syntaxe access-list de Cisco prend un masque générique, pas un masque de sous-réseau. "permit ip 10.50.0.0 0.0.255.255" correspond à 10.50.0.0/16, mais saisir le wildcard de travers fait correspondre la mauvaise moitié de votre réseau et laisse une faille de sécurité. Le calculateur affiche le wildcard à côté du masque de sous-réseau pour tout préfixe que vous saisissez, vous pouvez donc copier la valeur directement dans la règle ACL. Le même wildcard est utilisé par les instructions network d'EIGRP et OSPF, où le mode de défaillance d'un masque inversé est silencieux — le protocole forme tout simplement aucune adjacence.
Diagnostiquer les tickets "ces deux hôtes ne se voient pas"Quand un utilisateur signale que 192.168.0.10 et 192.168.1.20 ne se joignent pas de manière fiable sur le même Ethernet, la première chose à vérifier est si leurs masques concordent. Si l'hôte A est en 192.168.0.10/24 et l'hôte B en 192.168.1.20/23, ils n'ont pas la même opinion sur ce qui est sur le réseau : le réseau de A est 192.168.0.0/24 (seul le 0.x est local), donc A envoie ses trames à B via la passerelle par défaut, tandis que le réseau de B est 192.168.0.0/23 (couvrant à la fois 0.x et 1.x), donc B fait directement un ARP vers A sur le câble. Le trafic circule de manière asymétrique — B → A réussit alors que A → B fait un détour par le routeur et peut être silencieusement abandonné ou redirigé — et le calculateur affiche les deux identifiants réseau distincts côte à côte, rendant la mauvaise configuration évidente en quelques secondes.
Migrer d'IPv4 vers IPv6 en double pileChoisir des tailles de préfixe IPv6 est d'abord contre-intuitif : un /64 contient 18 446 744 073 709 551 616 adresses, soit exactement le carré de tout l'espace d'adresses IPv4 (2^64 = (2^32)²). La convention veut qu'on assigne un /64 à chaque réseau feuille (pour que SLAAC fonctionne), un /56 ou /48 par site, et un /32 par ISP. Le mode IPv6 du calculateur confirme la frontière entre bits réseau et bits hôte ainsi que le nombre vertigineux d'hôtes, ce qui aide les ingénieurs juniors à intérioriser le fait que le sous-réseautage IPv6 privilégie l'agrégation de routage, pas la conservation d'adresses.
Configurer des règles VPC et de groupes de sécurité dans le cloudAWS VPC, Google Cloud VPC et Azure VNet exigent tous des blocs CIDR pour les sous-réseaux, les tables de routage et les règles de groupes de sécurité. Un CIDR mal configuré — saisir 10.0.0.0/16 alors que vous vouliez 10.0.0.0/24 — ouvre 256 fois plus d'espace IP que prévu, souvent vers l'internet public. Le calculateur vous donne la plage d'hôtes exacte et le total avant que vous le colliez dans Terraform ou la console, et la vue binaire rend évident si votre /20 est réellement aligné sur une frontière /20 (une erreur fréquente lors du copier-coller depuis des réseaux existants).

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.