Nền tảng Mạng máy tính
8/17
Bài 8 / 17~10 phútĐịa chỉ & Định tuyếnMiễn phí… lượt xem

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:

Plain Text
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êngPhần host (32−N bit sau, riêng mỗi máy)
Cùng mã vùng = cùng tỉnhCùng phần mạng = cùng subnet
Độ dài mã vùngCon số /N
💡 Cách nhớ

/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:

Phần MẠNG · 24 bit
192.168.1, cố định cho cả subnet
HOST · 8 bit
.0–.255

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.

CIDRSubnet maskBit hostTổng địa chỉHost dùng được
/8255.0.0.02416.777.21616.777.214
/16255.255.0.01665.53665.534
/24255.255.255.08256254
/26255.255.255.19266462
/30255.255.255.252242
💡 Mẹo tính nhanh

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.50 và 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òn 192.168.1.200 ở block .192–.255 → khác mạng. Máy không ARP đích mà gửi tới gateway.
⚠️ Cùng dải IP chưa chắc cùng mạng

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.

Hai khung cùng khuôn cho cùng hai địa chỉ 192.168.1.50 và 192.168.1.200: dưới /24 cả hai có phần mạng 192.168.1.0 nên cùng mạng, ARP gửi thẳng trong LAN; dưới /26 chúng rơi vào ô .0–.63 và ô .192–.255 nên khác mạng, phải đưa cho default gateway; kết luận ranh giới do /N quyết định chứ không phải mấy octet đầu trông giống nhau

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:

Plain Text
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ừ .2 trở đ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

📚 Spec & reference chính thức

Đọc khi muốn tới gốc CIDR:

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ạng 192.168.1.0, gateway 192.168.1.1, 254 IP host; máy cùng /24 nói chuyện trực tiếp, ra ngoài qua gateway + NAT.

10. Tự kiểm tra

Tự kiểm tra
0/6 câu đã trả lời
  1. Q1
    Trong 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ỏ?
  2. Q2
    Subnet /24 chứa bao nhiêu địa chỉ, và bao nhiêu trong số đó gán được cho máy? Vì sao chênh nhau?
  3. Q3
    Hai 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.
  4. Q4
    Vì 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?
  5. 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ì.
  6. Q6
    Subnet 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.

Thảo luận & góp ý

Hỏi đáp về bài này

Bài tiếp theo

Routing & default gateway — gói tin nhảy hop thế nào