IP-subnätskalkylator: CIDR, nätmask och värdintervall
Beräkna information om ett IPv4-subnät utifrån en adress och ett CIDR-prefix: nätverks- och broadcastadress, intervall för användbara värdadresser, nätmask och wildcardmask.
IP Subnet Calculator
Results
Subnet Mask in Binary
Results follow RFC 791 (IPv4 addressing), RFC 4632 (CIDR notation), RFC 950 with RFC 919 and RFC 922 (network and broadcast reservation), and RFC 3021 (/31 point-to-point links).
Dokumentation
IP-subnätskalkylator
En IP-subnätskalkylator räknar ut nätverksinformationen bakom en IPv4-adress och en prefixlängd. Utifrån dessa två indata hittar den nätverksadressen, broadcastadressen, intervallet med användbara värdadresser, subnätmasken och jokerteckenmasken.
Vad kalkylatorn gör
Verktyget tar en IPv4-adress skriven som fyra tal separerade med punkter, till exempel 192.168.1.10, och en prefixlängd från 0 till 32. Det fungerar också att skriva de två tillsammans i CIDR-form, till exempel 192.168.1.10/24: delen /24 flyttas automatiskt till prefixfältet.
Kalkylatorn returnerar:
- CIDR-notation: nätverket i adress/prefix-form, till exempel 192.168.1.0/24.
- Nätverksadress: den första adressen i blocket. Den anger själva nätverket.
- Broadcastadress: den sista adressen i blocket. Ett meddelande som skickas till den når varje värd i subnätet.
- Intervall med användbara värdadresser: den första och sista adressen som en enhet faktiskt kan använda.
- Användbara värdar och totalt antal adresser: hur många adresser blocket innehåller och hur många som är tillgängliga för enheter.
- Nätmask och wildcardmask: masken i punktnotation, till exempel 255.255.255.0, och dess invers, 0.0.0.255.
- Subnätmasken utskriven bit för bit, med åtta bitar per oktett.
Resultaten följer RFC 791 (adressering med IPv4), RFC 4632 (CIDR-notation), RFC 950 med RFC 919 och RFC 922 (reservationerna för nätverk och broadcast) samt RFC 3021 (/31 punkt-till-punkt-länkar).
Så fungerar subnätindelning
En IPv4-adress är ett 32-bitars tal. Den skrivs som fyra oktetter, där varje oktett består av 8 bitar och innehåller ett värde från 0 till 255. Prefixlängden delar dessa 32 bitar i två delar. De första bitarna, så många som prefixet anger, identifierar nätverket. De återstående bitarna identifierar en värd i nätverket.
Ett /24-nät behåller 24 bitar för nätverksdelen och lämnar 8 bitar för värdar. Åtta värdbitar ger 2⁸ = 256 adresser. Ett /26-nät lämnar bara 6 värdbitar och innehåller därför 2⁶ = 64 adresser.
Nätmasken skriver samma uppdelning som en adress: en 1-bit för varje nätverksbit och en 0-bit för varje värdbit. För /24 blir det 255.255.255.0. Wildcardmasken inverterar varje bit i nätmasken. Åtkomstlistor i routrar, särskilt i Cisco-utrustning, matchar adresser mot wildcardmasker, vilket är anledningen till att verktyget visar båda.
Subnätsformeln
För en prefixlängd p mellan 0 och 30 tillämpar kalkylatorn dessa regler, som definieras av RFC 950 och RFC 4632:
- Subnätmask = de översta p bitarna i det 32-bitars ordet satta till 1.
- Nätverksadress = IP-adress OCH subnätmask (ett bitvis OCH behåller en bit endast där båda indata har 1).
- Broadcastadress = nätverksadress ELLER jokerteckenmask (varje värdbit satt till 1).
- Totalt antal adresser = 2⁽³²⁻ᵖ⁾.
- Användbara värdar = 2⁽³²⁻ᵖ⁾ − 2. Subtraktionen tar bort nätadressen och broadcastadressen, som RFC 950 och RFC 919 reserverar.
- Första användbara värd = nätverksadress + 1. Sista användbara värd = broadcastadress − 1.
Två prefixlängder följer andra regler. Ett /31 innehåller exakt 2 adresser, och RFC 3021 gör båda till användbara värdar på en punkt-till-punkt-länk, utan någon broadcastadress. Ett /32 identifierar en enda adress: 1 totalt, 1 användbar, ingen broadcast. I dessa två fall betecknar verktyget den första adressen som ”prefixbas” i stället för ”nätadress”, eftersom inget av blocken reserverar en adress för att identifiera nätverket.
Varje resultat kommer från aritmetik på ett enda 32-bitars tal. Verktyget listar aldrig adresserna en och en, så ett /0 som täcker alla 4 294 967 296 IPv4-adresser beräknas lika snabbt som ett /32.
Löst exempel
För adressen 10.128.7.33 med prefixlängden /26:
- Subnätmask: 26 ettbitar följda av 6 nollbitar är 11111111,11111111.11111111,11000000, vilket skrivs som 255.255.255.192.
- Nätverksadress: utför OCH på adressen och masken. De tre första oktetterna passerar oförändrade. I den sista oktetten är 33 00100001 binärt; OCH med 11000000 ger 00000000, vilket är 0. Nätverksadressen är 10.128.7.0, så CIDR-notationen är 10.128.7.0/26.
- Broadcastadress: sätt alla 6 värdbitar till 1. Den sista oktetten blir 00111111, vilket är 63. Broadcastadressen är 10.128.7.63.
- Antal: 2⁶ = 64 adresser totalt, och 64 − 2 = 62 användbara värdar.
- Värdintervall: 10.128.7.1 till 10.128.7.62.
- Jokerteckenmask: inversen av subnätmasken, 0.0.0.63.
Ett andra exempel med verktygets standardinmatning, 192.168.1.10/24: nätverk 192.168.1.0, broadcast 192.168.1.255, värdar 192.168.1.1 till 192.168.1.254, 254 användbara värdar av 256 totalt, subnätmask 255.255.255.0, jokerteckenmask 0.0.0.255.
Konventioner som verktyget följer
Nollutfyllda oktetter avvisas. Verktyget avvisar 010.1.1.1 i stället för att läsa den som 10.1.1.1. Detta är avsiktligt. POSIX-funktionen inet_aton, som används av ping, curl och de flesta operativsystemens namnuppslagning, tolkar en oktett med inledande nolla som oktal, så 010.1.1.1 betyder 8.1.1.1 för dessa program. Ingen tolkning som decimal eller oktal kan stämma med alla läsare, så verktyget accepterar ingen av dem. Ett prefix skrivet som /08 avvisas av samma anledning.
Värdantalet subtraherar två. Vissa kalkylatorer anger blockets råa storlek som värdantal. Detta verktyg följer RFC 950: i alla block från /0 till /30 identifierar den värddel som bara består av nollor nätverket, medan den som bara består av ettor är broadcastadressen. Båda utesluts, så ett /24 har 254 användbara värdar, inte 256.
Ett /31 har två användbara värdar. Äldre texter, skrivna innan RFC 3021 (publicerad 2000), kallar ett /31 oanvändbart eftersom subtraktionen av de två reserverade adresserna lämnar noll. RFC 3021 tog bort båda reservationerna för punkt-till-punkt-länkar, och routrar har haft stöd för detta i årtionden. Därför rapporterar verktyget 2 användbara värdar och ingen broadcastadress.
Alla prefix från /0 till /32 accepteras. Ett /0 är ett giltigt block som täcker hela IPv4-adressrymden, i enlighet med att 0.0.0.0/0 förekommer i routningstabeller som standardväg.
Endast IPv4. IPv6 (RFC 4291) använder 128-bitars adresser och en annan notation och ingår inte i detta verktyg. Verktyget markerar inte heller intervall för särskilda ändamål, såsom privata adresser eller loopbackadresser (RFC 6890); det rapporterar endast adressaritmetiken.
Vanliga frågor och svar
Hur många användbara värdar har ett /24? 254. Ett /24 lämnar 8 värdbitar, vilket ger 2⁸ = 256 adresser. Två är reserverade: nätverksadressen och broadcastadressen. Det lämnar 254 för enheter.
Vad är en jokerteckenmask? Inversen av subnätmasken bit för bit. Där subnätmasken har en 1 har jokerteckenmasken en 0, och tvärtom. För masken 255.255.255.0 är jokerteckenmasken 0.0.0.255. Åtkomstlistor på många routrar använder jokerteckenmasker för att beskriva vilka adresser en regel matchar.
Varför visar ett /31 ingen broadcastadress? Ett /31 innehåller endast två adresser. Om den ena reserverades för nätverket och den andra för broadcast skulle inget återstå, så RFC 3021 definierar /31 som en punkt-till-punkt-länk där båda adresserna är värdar och ingen broadcastadress finns. Kalkylatorn rapporterar 2 användbara värdar och markerar broadcast som inte tillämpligt.
Varför avvisas 010.1.1.1 i stället för att läsas som 10.1.1.1? Eftersom operativsystem inte är eniga om en vanlig decimal tolkning. POSIX inet_aton läser en oktett med inledande nolla som oktal, så 010 betyder 8 i de flesta system. Att avvisa inmatningen är det enda svaret som inte i tysthet kan skilja sig från vad användarens egen dator skulle göra.
Vad är skillnaden mellan totalt antal adresser och användbara värdar? Totalt antal adresser är blockets fulla storlek, 2 upphöjt till (32 minus prefixlängden). Användbara värdar är det antalet minus de två reserverade adresserna, utom i ett /31 (båda är användbara) och ett /32 (den enda adressen är värden).
Vad betyder nätverksadressen för 192.168.1.10/24? Det är 192.168.1.0, vilket fås genom att behålla adressens första 24 bitar och sätta värdbitarna till noll. Den identifierar hela subnätet och kan inte tilldelas en enhet.
Referenser
- Postel, J. ”RFC 791: Internet Protocol.” IETF, 1981.
- Mogul, J. och J. Postel. ”RFC 950: Internet Standard Subnetting Procedure.” IETF, 1985.
- Mogul, J. ”RFC 919: Broadcasting Internet Datagrams.” IETF, 1984.
- Fuller, V. och T. Li. ”RFC 4632: Classless Inter-domain Routing (CIDR).” IETF, 2006.
- Retana, A. m.fl. ”RFC 3021: Using 31-Bit Prefixes on IPv4 Point-to-Point Links.” IETF, 2000.