Subnet & CIDR — đọc CIDR cho đúng
CIDR /N là gì, phần mạng và phần host, tính số host, network/broadcast/gateway, và câu hỏi trung tâm: hai IP có cùng mạng không?
TL;DR: Ký hiệu CIDR IP/N chia 32 bit địa chỉ thành N bit phần mạng (cố định cho cả subnet) và 32−N bit phần host (thay đổi cho từng máy). Số địa chỉ trong subnet là 2^(32−N); trừ 2 (network + broadcast) ra số host dùng được. Vậy /24 = 256 địa chỉ (254 dùng), /16 = 65.536 (65.534 dùng). Hai IP cùng mạng khi phần mạng (theo /N) trùng nhau, câu hỏi quyết định "gửi thẳng bằng ARP" hay "đưa cho gateway". Đọc 192.168.1.0/24: mạng 192.168.1.0, gateway thường là 192.168.1.1, 254 IP cho host. Kỹ năng này dùng thẳng cho LAN gia đình, mạng văn phòng và cloud VPC.
Bạn mở trang quản trị router nhà mình (hoặc gõ ip addr / ip route trên máy) và thấy mạng LAN được mô tả như sau:
Subnet: 192.168.1.0/24
Gateway: 192.168.1.1
/24 nghĩa là gì? Mạng này chứa được bao nhiêu thiết bị? IP 192.168.1.50 có "thuộc" mạng này không, còn 192.168.2.50 thì sao? Trả lời được những câu này là bạn đã nắm subnet & CIDR, mảnh ghép trung tâm của module và là thứ khiến mọi cấu hình mạng (router gia đình, LAN văn phòng, cloud VPC) trở nên đọc được.
1. Analogy — Mã vùng số điện thoại
Số điện thoại 024-3825-1234: phần đầu 024 là mã vùng Hà Nội, mọi số trong Hà Nội đều bắt đầu bằng nó, phần sau là số thuê bao riêng. Nhìn mã vùng, bạn biết hai số có cùng tỉnh hay không.
CIDR làm y hệt với IP: /N nói "N bit đầu là mã vùng (phần mạng), phần còn lại là số thuê bao (phần host)".
| Số điện thoại | Địa chỉ IP |
|---|---|
Mã vùng 024 (chung cả tỉnh) | Phần mạng (N bit đầu, chung cả subnet) |
| Số thuê bao riêng | Phần host (32−N bit sau, riêng mỗi máy) |
| Cùng mã vùng = cùng tỉnh | Cùng phần mạng = cùng subnet |
| Độ dài mã vùng | Con số /N |
/N = "có bao nhiêu bit là mã vùng". N càng lớn → phần mạng càng dài → mỗi mạng càng nhỏ (ít host). /24 nhỏ hơn /16 rất nhiều: /24 chứa 256 địa chỉ, /16 chứa 65.536.
2. CIDR /N — phần mạng vs phần host
CIDR (Classless Inter-Domain Routing, định tuyến liên miền không phân lớp, RFC 4632) là cách viết một dải mạng dưới dạng IP/N, trong đó N gọi là prefix (tiền tố), số bit đầu thuộc phần mạng. Địa chỉ IP có 32 bit; /N cắt nó làm hai phần:
Ví dụ 192.168.1.0/24: 24 bit mạng cố định, 8 bit host thay đổi
- Phần mạng (N bit đầu): giống nhau cho mọi máy trong subnet, như mã vùng.
- Phần host (32−N bit sau): khác nhau cho từng máy.
/N đôi khi viết dạng subnet mask: số có N bit 1 rồi toàn bit 0. /24 = 255.255.255.0; /16 = 255.255.0.0; /26 = 255.255.255.192. Hai cách viết tương đương. Biết N rồi, câu tiếp theo là subnet đó chứa được bao nhiêu máy.
3. Một subnet chứa bao nhiêu địa chỉ?
Phần host có 32−N bit, nên tổng địa chỉ = 2^(32−N). Trong đó 2 địa chỉ không gán cho host: địa chỉ đầu (network address) và địa chỉ cuối (broadcast). Vậy host dùng được = 2^(32−N) − 2.
| CIDR | Subnet mask | Bit host | Tổng địa chỉ | Host dùng được |
|---|---|---|---|---|
/8 | 255.0.0.0 | 24 | 16.777.216 | 16.777.214 |
/16 | 255.255.0.0 | 16 | 65.536 | 65.534 |
/24 | 255.255.255.0 | 8 | 256 | 254 |
/26 | 255.255.255.192 | 6 | 64 | 62 |
/30 | 255.255.255.252 | 2 | 4 | 2 |
Nhớ mốc: mỗi lần /N tăng 1, mạng nhỏ đi một nửa. /24 = 256, /25 = 128, /26 = 64… Và /24 → /16 là tăng phần host thêm 8 bit = nhân 256 lần số địa chỉ (256 → 65.536).
Thử ngẫmteam bạn dựng mạng văn phòng cho 40 máy. Chọn /24 (254 host) có phí phạm không, hay nên chọn /26 (62 host) sát số máy thật hơn?
4. Network, broadcast, gateway — ví dụ 192.168.1.0/24
Cho subnet 192.168.1.0/24 (phần host = 8 bit cuối):
- Network address (host bits = 0):
192.168.1.0, tên của chính subnet, không gán cho máy. - Broadcast (host bits = 1):
192.168.1.255, gửi tới mọi máy trong subnet, không gán cho máy. - Host dùng được:
192.168.1.1→192.168.1.254(254 địa chỉ). - Gateway (quy ước, không bắt buộc): thường là địa chỉ host đầu
192.168.1.1, router để ra mạng khác.
Router nhà bạn hay ở 192.168.1.1, gateway mạng văn phòng thường ở 10.0.0.1, cũng từ quy ước đó: lấy host đầu tiên của subnet làm cửa ngõ. Biết ba mốc này của một subnet rồi, giờ tới câu hỏi mà cả module xoay quanh.
5. Câu hỏi trung tâm: hai IP có cùng mạng không?
Cả module xoay quanh câu hỏi này. Để biết hai IP có cùng subnet không, so phần mạng của chúng (che đi phần host theo /N):
- Dưới
/24:192.168.1.50và192.168.1.200→ phần mạng đều là192.168.1→ cùng mạng. Máy gửi thẳng bằng ARP (bài trước). - Dưới
/26(host = 6 bit → mỗi block 64 địa chỉ:.0–.63,.64–.127,.128–.191,.192–.255):192.168.1.50ở block.0–.63, còn192.168.1.200ở block.192–.255→ khác mạng. Máy không ARP đích mà gửi tới gateway.
Cùng 192.168.1.x mà dưới /26 lại là khác subnet. Chính /N, chứ không phải mấy octet đầu trông giống nhau, quyết định ranh giới. Lỗi định tuyến từ chỗ này gặp rất nhiều.

Quy tắc gói lại: cùng mạng → gửi thẳng (ARP); khác mạng → đưa cho default gateway.
Thử ngẫmmột server nội bộ bị cấu hình sai gateway (192.168.2.1 thay vì 192.168.1.1), nhưng vẫn ping được các máy cùng /24, chỉ không ra được Internet. Gateway sai ảnh hưởng ở đúng lúc nào?
6. Đọc một dải mạng thực tế
Giờ áp tất cả vào dải mạng LAN gia đình ở đầu bài, 192.168.1.0/24 với gateway 192.168.1.1. Ghép từng mảnh:
Subnet: 192.168.1.0/24
Gateway: 192.168.1.1
/24→ phần mạng 24 bit (192.168.1), phần host 8 bit →2^8= 256 địa chỉ, 254 host dùng được (trừ network + broadcast).- Network address:
192.168.1.0(host bits = 0, tên của chính subnet, không gán cho máy). - Gateway:
192.168.1.1(host đầu, cửa ngõ ra mạng khác, theo quy ước lấy.1). - Host dùng được:
192.168.1.1→192.168.1.254(254 địa chỉ). Gateway thường chiếm.1, router cấp dần từ.2trở đi qua DHCP cho điện thoại, laptop, TV. - Broadcast:
192.168.1.255(host bits = 1, gửi tới mọi máy trong subnet).
Hai máy 192.168.1.50 và 192.168.1.80 cùng /24 → cùng mạng → nói chuyện trực tiếp trong LAN (qua switch, bằng ARP). Một máy muốn ra Internet → đích khác mạng → gửi tới gateway 192.168.1.1 → router NAT ra ngoài.
7. Pitfall — hiểu nhầm thường gặp
❌ Nhầm 1: "/24 với /16 gần như nhau."
✅ Lệch 256 lần: /24 = 256 địa chỉ, /16 = 65.536. Đặt nhầm prefix khiến mạng quá nhỏ (hết IP) hoặc quá lớn (lãng phí, khó quản lý).
❌ Nhầm 2: "Mọi địa chỉ trong subnet đều gán được cho máy."
✅ Hai địa chỉ luôn bị giữ: network address (host bits = 0) và broadcast (host bits = 1). /24 có 256 địa chỉ nhưng chỉ 254 host dùng được.
❌ Nhầm 3: "Cùng 192.168.1.x là chắc chắn cùng mạng."
✅ Còn tuỳ /N. Dưới /26, 192.168.1.50 và 192.168.1.200 khác subnet. Luôn nhìn prefix, đừng đoán theo octet.
❌ Nhầm 4: "Subnet mask và CIDR là hai thứ khác nhau."
✅ Chúng tương đương: 255.255.255.0 ⇔ /24. CIDR chỉ là cách viết gọn số bit 1 trong mask.
8. 📚 Deep Dive — tài liệu gốc
Đọc khi muốn tới gốc CIDR:
- RFC 4632 — Classless Inter-Domain Routing (CIDR): định nghĩa ký hiệu
/Nvà cách phân bổ địa chỉ không theo lớp. - RFC 1878 — Variable Length Subnet Table: bảng tra subnet mask ↔ prefix.
Ghi chú: CIDR thay cho hệ "class A/B/C" cũ. Khi đọc tài liệu cũ thấy "lớp C", hãy quy về tư duy /N, linh hoạt và đúng với thực tế hôm nay. Công cụ ipcalc <IP>/<N> tính sẵn network/broadcast/range cho bạn.
9. Tóm tắt
- CIDR
IP/N: N bit đầu = phần mạng (cố định cả subnet), 32−N bit sau = phần host (riêng mỗi máy). Tương đương subnet mask (/24⇔255.255.255.0). - Số địa chỉ =
2^(32−N); host dùng được = trừ 2 (network + broadcast)./24= 254,/16= 65.534. - Mỗi subnet có network address (host=0), broadcast (host=1), và quy ước gateway = host đầu (
.1). - Cùng mạng ⇔ phần mạng (theo
/N) trùng → gửi thẳng bằng ARP; khác mạng → đưa cho gateway. Cùng dải IP chưa chắc cùng mạng: phải xét/N. 192.168.1.0/24: mạng192.168.1.0, gateway192.168.1.1, 254 IP host; máy cùng/24nói chuyện trực tiếp, ra ngoài qua gateway + NAT.
10. Tự kiểm tra
- Q1Trong CIDR
IP/N, con số N nói lên điều gì, và vì sao N càng lớn thì mạng càng nhỏ? - Q2Subnet
/24chứa bao nhiêu địa chỉ, và bao nhiêu trong số đó gán được cho máy? Vì sao chênh nhau? - Q3Hai IP 192.168.1.50 và 192.168.1.200: chúng cùng mạng dưới /24 hay /26? Giải thích.
- Q4Vì sao trả lời được 'cùng mạng hay khác mạng' lại quan trọng với cách máy gửi gói tin?
- Q5Đọc cấu hình LAN nhà bạn (Subnet 192.168.1.0/24, Gateway 192.168.1.1): cho biết network address, broadcast, số host dùng được, và gateway làm gì.
- Q6Subnet mask 255.255.255.0 tương đương CIDR nào, và vì sao?
Bài tiếp theo: Routing & default gateway — gói tin nhảy hop thế nào
Bài này có giúp bạn hiểu bản chất không?
Bài này đáng gửi cho bạn học cùng?
Copy link đã gắn nguồn — dán group, chat, hoặc LinkedIn.
Địa chỉ IP — IPv4, IPv6 và dải private
Bài tiếpRouting & default gateway — gói tin nhảy hop thế nào
Thảo luận & góp ý
Hỏi đáp về bài này