De ce contează subnetting-ul pentru telefonie
Aproape toate problemele „misterioase" din rețelele cu telefoane IP pe care le-am văzut la clienți au avut aceeași cauză: un plan de adresare făcut din mers. Telefoane în același segment cu imprimantele și camerele, DHCP care se termină exact când vine al 55-lea telefon, reguli de firewall cu liste lungi de IP-uri în loc de două prefixe curate.
Subnetting-ul nu e complicat. E doar aritmetică pe biți, iar odată ce vezi biții, totul devine evident. Mai jos ai explicația pas cu pas și, ca să nu faci calculele de mână, un calculator interactiv. Versiunea completă, cu pagină dedicată, e la voxbee.ro/calculator-ip.
| Adresă | 192.168.1.1 | 11000000.10101000.0000000100000001 |
| Mască | 255.255.255.0= 24 | 11111111.11111111.1111111100000000 |
| Wildcard | 0.0.0.255 | 00000000.00000000.0000000011111111 |
| => | ||
| Rețea | 192.168.1.0/24 | 11000000.10101000.0000000100000000 |
| Prima adresă | 192.168.1.1 | 11000000.10101000.0000000100000001 |
| Ultima adresă | 192.168.1.254 | 11000000.10101000.0000000111111110 |
| Broadcast | 192.168.1.255 | 11000000.10101000.0000000111111111 |
| Host-uri | 254 | Clasa CRețea privată |
■ biți de clasă■ mască■ biți noi de subrețeaspațiul din binar separă partea de rețea de partea de host
Detalii
- Adrese în bloc
- 256
- Zonă DNS inversă
- 1.168.192.in-addr.arpa
- Adresă (hex)
- 0xC0A80101
- Mască (hex)
- 0xFFFFFF00
- Adresă (zecimal)
- 3232235777
O adresă IPv4 sunt 32 de biți
192.168.1.1 e doar un mod prietenos de a scrie 32 de biți, câte 8 pe grup:
192 . 168 . 1 . 1
11000000 . 10101000 . 00000001 . 00000001
Masca spune câți biți de la stânga identifică rețeaua. /24 înseamnă „primii 24 de biți sunt rețea, ultimii 8 sunt host". Aceeași mască se scrie și 255.255.255.0 (24 de biți pe 1, 8 pe 0):
Adresă: 11000000.10101000.00000001. 00000001
Mască: 11111111.11111111.11111111. 00000000
^
aici se termină rețeaua
Din asta rezultă totul:
- •Rețea: adresa cu biții de host pe 0 →
192.168.1.0 - •Broadcast: adresa cu biții de host pe 1 →
192.168.1.255 - •Host-uri: 8 biți de host = 2⁸ = 256 adrese, minus rețea și broadcast = 254 utilizabile
- •Prima / ultima adresă:
192.168.1.1–192.168.1.254
Regula de reținut: numărul de host-uri = 2^(32 − prefix) − 2. Un /25 are 126, un /26 are 62, un /27 are 30, un /28 are 14, un /30 are 2.
Wildcard: masca pe dos
În ACL-urile Cisco și în OSPF nu se scrie masca, ci wildcard-ul, adică inversul ei. Pentru /24, wildcard-ul e 0.0.0.255: biții pe 0 „trebuie să se potrivească", biții pe 1 „nu contează". Calculatorul acceptă wildcard-ul direct ca mască, îl recunoaște după primul bit (care e 0 în loc de 1).
Împărțirea în subrețele
Ai un /24 cu 254 de adrese și vrei patru segmente separate: telefoane, PC-uri, Wi-Fi vizitatori, management. Împrumuți 2 biți din partea de host (2² = 4 subrețele) și obții patru /26:
| Subrețea | Rețea | Host-uri | Broadcast |
|---|---|---|---|
| 1 | 192.168.1.0/26 | .1 – .62 | 192.168.1.63 |
| 2 | 192.168.1.64/26 | .65 – .126 | 192.168.1.127 |
| 3 | 192.168.1.128/26 | .129 – .190 | 192.168.1.191 |
| 4 | 192.168.1.192/26 | .193 – .254 | 192.168.1.255 |
În calculator: adresa 192.168.1.0/24, mască nouă 26. Biții împrumutați apar colorați în mov în coloana binară, ca să vezi exact ce s-a schimbat față de masca inițială.
VLSM: subrețele de mărimi diferite
În practică segmentele nu sunt egale. Un exemplu real dintr-un birou cu centrală IP:
- •100 de PC-uri și laptopuri
- •50 de telefoane IP
- •20 de dispozitive de management (switch-uri, AP-uri, centrala)
Dacă tai /24-ul în bucăți egale de /26 (62 host-uri fiecare), PC-urile nu încap. Soluția e VLSM (Variable Length Subnet Mask): fiecare segment primește exact blocul de care are nevoie, rotunjit la puterea lui 2 imediat superioară, alocat de la cel mai mare la cel mai mic.
| Cerință | Bloc necesar | Prefix | Rețea | Utilizabile |
|---|---|---|---|---|
| 100 PC-uri | 128 adrese | /25 | 192.168.0.0/25 | 126 |
| 50 telefoane | 64 adrese | /26 | 192.168.0.128/26 | 62 |
| 20 management | 32 adrese | /27 | 192.168.0.192/27 | 30 |
| liber | 32 adrese | /27 | 192.168.0.224/27 | 30 |
În calculator: adresa 192.168.0.0/24, câmpul VLSM 100 50 20. Primești cele trei blocuri, în ordinea în care le-ai cerut, plus spațiul rămas liber, deja descompus în prefixe pe care le poți folosi mai târziu.
Interval → CIDR
Situația inversă: furnizorul îți dă „permite traficul SIP de la 10.0.0.1 până la 10.0.5.200", iar firewall-ul tău vrea prefixe. Un interval arbitrar nu e aproape niciodată un singur bloc CIDR, dar poate fi descompus în cel mai mic set de blocuri aliniate:
10.0.0.1/32
10.0.0.2/31
10.0.0.4/30
10.0.0.8/29
10.0.0.16/28
10.0.0.32/27
10.0.0.64/26
10.0.0.128/25
10.0.1.0/24
10.0.2.0/23
10.0.4.0/24
10.0.5.0/25
10.0.5.128/26
10.0.5.192/29
10.0.5.200/32
Pare mult, dar e lista exactă, fără nicio adresă în plus. Modul „Interval → CIDR" din calculator face descompunerea asta pentru orice pereche de adrese, IPv4 sau IPv6.
Cazuri speciale: /31 și /32
Un /30 pentru un link între două routere irosește jumătate din adrese (2 utilizabile din 4). RFC 3021 permite /31 pe legături punct-la-punct: nu mai există rețea și broadcast separate, ambele adrese sunt utilizabile. Un /32 e o singură adresă, folosită de regulă pentru interfețe loopback sau rute de host. Calculatorul le tratează corect pe amândouă.
Blocuri pe care le vezi des
- •10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16: adrese private (RFC 1918), nerutabile pe internet. Aici stau aproape toate rețelele de birou.
- •100.64.0.0/10: Carrier-grade NAT (RFC 6598). Dacă routerul tău are un IP de aici pe WAN, nu ai IP public real, ceea ce contează la SIP.
- •169.254.0.0/16: link-local / APIPA. Un telefon cu astfel de adresă nu a primit DHCP.
- •224.0.0.0/4: multicast.
Calculatorul afișează automat eticheta și link-ul către RFC pentru orice rețea care intră (integral sau parțial) într-un bloc special.
Și IPv6?
Aceleași principii, doar că adresa are 128 de biți, scriși în hexazecimal, în 8 grupuri de câte 16 biți:
2001:0db8:0000:0000:0000:0000:0000:0001 (expandat)
2001:db8::1 (comprimat, RFC 5952)
Câteva diferențe practice:
- •Nu există broadcast. Ultima adresă din bloc e o adresă obișnuită.
- •Subrețeaua standard e /64, indiferent câte dispozitive ai. Nu se face economie de adrese; într-un
/64sunt 2⁶⁴ adrese. - •Un prefix de la furnizor e de obicei
/48sau/56. Un/48conține 65.536 de subrețele/64; un/56conține 256. Le împarți pe locații, VLAN-uri sau departamente, exact ca la IPv4, doar că nu mai trebuie să numeri host-uri. - •Tipuri de adrese pe care le recunoaște calculatorul: global unicast (
2000::/3), unique local (fc00::/7, echivalentul adreselor private), link-local (fe80::/10), documentație (2001:db8::/32), multicast (ff00::/8).
Încearcă în calculator 2001:db8::1/48 cu mască nouă 52 sau 56 și vezi cum se împarte prefixul.
De unde vine formatul
Dacă ai lucrat pe Linux, probabil cunoști ipcalc, utilitarul de linie de comandă scris de Krischan Jodies, cu ieșirea lui caracteristică Address / Netmask / Wildcard / => / Network / HostMin / HostMax / Broadcast și biții colorați. Am păstrat același format, pentru că e cel mai clar mod de a preda subnetting-ul. Implementarea noastră e scrisă de la zero în TypeScript, rulează integral în browser, are IPv6 complet și e verificată automat pe exemplele din documentația ipcalc.
Ce urmează
Ai planul de adresare. Următorul pas e să pui telefonia peste el: un SIP Trunk conectat la centrala ta sau o centrală în cloud fără hardware. Iar dacă vrei să verifici că rețeaua duce voce fără întreruperi, rulează testul de calitate VoIP.