Calculator de subrețele IP: CIDR, măști și gazde
Calculați detaliile unei subrețele IPv4 pornind de la o adresă și un prefix CIDR: adresa de rețea și adresa de broadcast, intervalul de gazde utilizabile, masca de subrețea și masca wildcard.
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).
Documentație
Calculator de subrețele IP
Un calculator de subrețele IP determină detaliile rețelei din spatele unei adrese IPv4 și al unei lungimi de prefix. Pe baza acestor două date, identifică adresa de rețea, adresa de difuzare, intervalul adreselor de gazdă utilizabile, masca de subrețea și masca wildcard.
Ce face calculatorul
Instrumentul primește o adresă IPv4 scrisă ca patru numere separate prin puncte, precum 192.168.1.10, și o lungime de prefix de la 0 la 32. Funcționează și scrierea împreună în forma CIDR, precum 192.168.1.10/24: partea /24 este mutată automat în câmpul prefixului.
Calculatorul returnează:
- Notația CIDR: rețeaua în forma adresă/prefix, precum 192.168.1.0/24.
- Adresa de rețea: prima adresă din bloc. Ea identifică rețeaua propriu-zisă.
- Adresa de difuzare: ultima adresă din bloc. Un mesaj trimis la această adresă ajunge la fiecare gazdă din subrețea.
- Intervalul gazdelor utilizabile: prima și ultima adresă pe care un dispozitiv le poate utiliza efectiv.
- Gazde utilizabile și adrese totale: numărul de adrese din bloc și numărul de adrese disponibile pentru dispozitive.
- Masca de subrețea și masca wildcard: masca în forma cu puncte, precum 255.255.255.0, și inversa acesteia, 0,0.0,255.
- Masca de subrețea reprezentată bit cu bit, cu opt biți pentru fiecare octet.
Rezultatele respectă RFC 791 (adresarea IPv4), RFC 4632 (notația CIDR), RFC 950 împreună cu RFC 919 și RFC 922 (rezervările pentru rețea și difuzare) și RFC 3021 (legături punct-la-punct /31).
Cum funcționează subrețelele
O adresă IPv4 este un număr de 32 de biți. Este scrisă ca patru octeți, fiecare octet având 8 biți și o valoare de la 0 la 255. Lungimea prefixului împarte acești 32 de biți în două părți. Primii biți, în numărul indicat de prefix, identifică rețeaua. Biții rămași identifică o gazdă din acea rețea.
O rețea /24 păstrează 24 de biți pentru partea de rețea și lasă 8 biți pentru gazde. Opt biți pentru gazde oferă 2⁸ = 256 adrese. O rețea /26 lasă doar 6 biți pentru gazde, astfel încât conține 2⁶ = 64 de adrese.
Masca de subrețea exprimă aceeași împărțire ca o adresă: câte un bit 1 pentru fiecare bit de rețea și câte un bit 0 pentru fiecare bit de gazdă. Pentru /24, aceasta este 255,255.255,0. Masca wildcard inversează fiecare bit al măștii de subrețea. Listele de acces ale routerelor, în special pe echipamentele Cisco, compară adresele folosind măști wildcard, motiv pentru care instrumentul le afișează pe ambele.
Formula subrețelei
Pentru o lungime de prefix p între 0 și 30, calculatorul aplică următoarele reguli, definite de RFC 950 și RFC 4632:
- Masca de subrețea = primii p biți ai cuvântului de 32 de biți setați la 1.
- Adresa de rețea = adresa IP ȘI masca de subrețea (operația ȘI pe biți păstrează un bit numai atunci când ambele date de intrare au un 1).
- Adresa de difuzare = adresa de rețea SAU masca wildcard (fiecare bit de gazdă este setat la 1).
- Adrese totale = 2⁽³²⁻ᵖ⁾.
- Gazde utilizabile = 2⁽³²⁻ᵖ⁾ − 2. Scăderea elimină adresa de rețea și adresa de difuzare, rezervate de RFC 950 și RFC 919.
- Prima gazdă utilizabilă = adresa de rețea + 1. Ultima gazdă utilizabilă = adresa de difuzare − 1.
Două lungimi de prefix urmează reguli diferite. O rețea /31 conține exact 2 adrese, iar RFC 3021 le face pe ambele gazde utilizabile pe o legătură punct-la-punct, fără nicio adresă de difuzare. O rețea /32 identifică o singură adresă: 1 în total, 1 utilizabilă, fără difuzare. În aceste două cazuri, instrumentul numește prima adresă „Baza prefixului” în loc de „Adresa de rețea”, deoarece niciunul dintre blocuri nu rezervă o adresă pentru identificarea rețelei.
Fiecare rezultat provine din operații aritmetice asupra unui singur număr de 32 de biți. Instrumentul nu enumeră adresele una câte una, astfel încât o rețea /0 care acoperă toate cele 4.294.967.296 de adrese IPv4 se calculează la fel de rapid ca o rețea /32.
Exemplu rezolvat
Pentru adresa 10.128.7.33 cu lungimea de prefix /26:
- Masca de subrețea: 26 biți de unu urmați de 6 biți de zero înseamnă 11111111,11111111.11111111,11000000, ceea ce se scrie 255,255.255,192.
- Adresa de rețea: se aplică operația ȘI între adresă și mască. Primii trei octeți rămân neschimbați. În ultimul octet, 33 este 00100001 în binar; aplicarea operației ȘI cu 11000000 produce 00000000, adică 0. Adresa de rețea este 10.128.7.0, iar notația CIDR este 10.128.7.0/26.
- Adresa de difuzare: toți cei 6 biți de gazdă sunt setați la 1. Ultimul octet devine 00111111, adică 63. Adresa de difuzare este 10,128.7,63.
- Numărări: 2⁶ = 64 de adrese în total, iar 64 − 2 = 62 de gazde utilizabile.
- Intervalul gazdelor: de la 10.128.7.1 până la 10,128.7,62.
- Masca wildcard: inversa măștii de subrețea, 0,0.0,63.
Un al doilea exemplu, folosind datele implicite ale instrumentului, 192.168.1.10/24: rețea 192.168.1.0, difuzare 192.168.1.255, gazde de la 192.168.1.1 până la 192.168.1.254, 254 de gazde utilizabile din 256 în total, mască de subrețea 255.255.255.0, mască wildcard 0,0.0,255.
Convențiile urmate de instrument
Octeții completați cu zerouri sunt respinși. Instrumentul refuză 010.1.1.1 în loc să o interpreteze ca 10,1.1,1. Aceasta este o decizie deliberată. Funcția POSIX inet_aton, utilizată de ping, curl și de majoritatea rezolvatoarelor sistemului de operare, tratează un octet cu zero inițial ca număr octal, astfel încât 010.1.1.1 înseamnă 8.1.1.1 pentru aceste programe. Nicio presupunere privind interpretarea zecimală sau octală nu poate corespunde tuturor programelor care citesc adresa, așa că instrumentul nu acceptă niciuna. Un prefix scris ca /08 este respins din același motiv.
Numărul gazdelor scade cu doi. Unele calculatoare raportează dimensiunea brută a blocului drept număr de gazde. Acest instrument urmează RFC 950: în orice bloc de la /0 la /30, partea de gazdă formată numai din zerouri identifică rețeaua, iar partea formată numai din unu este adresa de difuzare, astfel încât ambele sunt excluse, iar o rețea /24 are 254 de gazde utilizabile, nu 256.
O rețea /31 are două gazde utilizabile. Textele mai vechi, scrise înainte de RFC 3021 (publicat în 2000), consideră o rețea /31 inutilizabilă, deoarece scăderea celor două adrese rezervate lasă zero adrese. RFC 3021 a eliminat ambele rezervări pentru legăturile punct-la-punct, iar routerele acceptă acest mod de funcționare de zeci de ani, astfel încât instrumentul raportează 2 gazde utilizabile și nicio adresă de difuzare.
Este acceptat orice prefix de la /0 la /32. O rețea /0 este un bloc valid care acoperă întreg spațiul IPv4, în conformitate cu apariția 0.0.0.0/0 în tabelele de rutare ca rută implicită.
Doar IPv4. IPv6 (RFC 4291) utilizează adrese de 128 de biți și o notație diferită, neacoperite de acest instrument. Instrumentul nu semnalează nici intervalele cu destinații speciale, precum adresele private sau de buclă locală (RFC 6890); raportează doar calculele aritmetice ale adreselor.
Întrebări frecvente
Câte gazde utilizabile are o rețea /24? 254. O rețea /24 lasă 8 biți pentru gazde, oferind 2⁸ = 256 de adrese. Două sunt rezervate: adresa de rețea și adresa de difuzare. Rămân 254 pentru dispozitive.
Ce este o mască wildcard? Inversa bit cu bit a măștii de subrețea. Acolo unde masca de subrețea are un 1, masca wildcard are un 0, și invers. Pentru masca 255.255.255.0, masca wildcard este 0,0.0,255. Listele de control al accesului de pe multe routere folosesc măști wildcard pentru a descrie adresele cărora li se aplică o regulă.
De ce o rețea /31 nu afișează nicio adresă de difuzare? O rețea /31 conține doar două adrese. Rezervarea uneia pentru rețea și a celeilalte pentru difuzare nu ar lăsa nicio adresă, astfel încât RFC 3021 definește rețeaua /31 ca legătură punct-la-punct în care ambele adrese sunt gazde și nu există adresă de difuzare. Calculatorul raportează 2 gazde utilizabile și marchează difuzarea ca neaplicabilă.
De ce este respinsă 010.1.1.1 în loc să fie citită ca 10.1.1.1? Deoarece sistemele de operare nu interpretează în același fel o valoare zecimală simplă. POSIX inet_aton citește un octet care începe cu zero ca număr octal, astfel încât 010 înseamnă 8 pentru majoritatea sistemelor. Respingerea datelor de intrare este singurul răspuns care nu poate diferi în tăcere de ceea ce ar face propriul computer al utilizatorului.
Care este diferența dintre adresele totale și gazdele utilizabile? Adresele totale reprezintă dimensiunea completă a blocului, 2 la puterea lui (32 minus lungimea prefixului). Gazdele utilizabile reprezintă acest număr minus cele două adrese rezervate, cu excepția unei rețele /31 (ambele adrese sunt utilizabile) și a unei rețele /32 (singura adresă este gazda).
Ce înseamnă adresa de rețea a 192.168.1.10/24? Este 192.168.1.0, obținută prin păstrarea primilor 24 de biți ai adresei și setarea biților de gazdă la zero. Identifică subrețeaua ca întreg și nu poate fi atribuită unui dispozitiv.
Referințe
- Postel, J. „RFC 791: Internet Protocol.” IETF, 1981.
- Mogul, J. și J. Postel. „RFC 950: Internet Standard Subnetting Procedure.” IETF, 1985.
- Mogul, J. „RFC 919: Broadcasting Internet Datagrams.” IETF, 1984.
- Fuller, V. și T. Li. „RFC 4632: Classless Inter-domain Routing (CIDR).” IETF, 2006.
- Retana, A. și colab. „RFC 3021: Utilizarea prefixelor de 31 de biți pe legăturile punct-la-punct IPv4.” IETF, 2000.