Nền tảng Mạng máy tính/Subnet & CIDR — đọc CIDR cho đúng
8/17
Bài 8 / 17~24 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 vs phần host, cách tính số host, network/broadcast/gateway, và câu hỏi trung tâm 'hai IP có cùng mạng không?'. Đọc thành thạo một dải mạng thực tế — kiến thức nền bắt buộc cho LAN gia đình, mạng văn phòng và cloud VPC.

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 — đây là 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. Đây là kỹ năng nền 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 024mã 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.

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).

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.1192.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.

Đây chính là lý do router nhà bạn hay ở 192.168.1.1, và gateway của mạng văn phòng thường ở 10.0.0.1: quy ước lấy host đầu tiên của subnet làm cửa ngõ.

5. Câu hỏi trung tâm — "Hai IP có cùng mạng không?"

Đây là điều quan trọng nhất của cả module. Để 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.50192.168.1.200 → phần mạng đều là 192.168.1cù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–.255khá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 — không phải mấy octet đầu trông giống nhau — quyết định ranh giới. Đây là nguồn lỗi định tuyến rất hay gặp.

Quy tắc gói lại: cùng mạng → gửi thẳng (ARP); khác mạng → đưa cho default gateway. Subnet/CIDR chính là công cụ trả lời "cùng hay khác".

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.2192.168.1.254 (router thường tự cấp dần 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.50192.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. Toàn bộ là subnet logic bạn vừa học, đọc thẳng từ cấu hình thật.

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.50192.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 (/24255.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.
  • Đây là kỹ năng nền đọc mọi cấu hình mạng thực tế: LAN gia đình, mạng văn phòng, và cloud VPC.

10. Tự kiểm tra

Tự kiểm tra
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ỏ?
N là số bit phần mạng — N bit đầu của 32 bit địa chỉ, cố định cho cả subnet (như mã vùng điện thoại). Còn lại 32−N bit là phần host. N càng lớn → phần mạng chiếm nhiều bit hơn → phần host còn ít bit hơn → ít địa chỉ host hơn, tức mạng nhỏ hơn. Mỗi lần N tăng 1, số địa chỉ giảm một nửa.
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?
/24 có phần host 8 bit → 2^8 = 256 địa chỉ. Nhưng chỉ 254 gán được cho host, vì hai địa chỉ bị giữ: network address (toàn bit host = 0, vd 192.168.1.0 — tên của subnet) và broadcast (toàn bit host = 1, vd 192.168.1.255 — gửi tới mọi máy). Quy tắc chung: host dùng được = 2^(32−N) − 2.
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.

Dưới /24: phần mạng là 192.168.1 cho cả hai → cùng mạng.

Dưới /26: phần host là 6 bit → mỗi block 64 địa chỉ: .0–.63, .64–.127, .128–.191, .192–.255. 192.168.1.50 nằm block .0–.63, còn 192.168.1.200 nằm block .192–.255 → khác mạng.

Bài học: cùng dải octet chưa chắc cùng subnet — phải xét /N.

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?
Vì nó quyết định cách giao: nếu đích cùng subnet, máy gửi thẳng trong LAN — dùng ARP tra MAC đích rồi gửi frame trực tiếp. Nếu đích khác subnet, máy không ARP đích (ngoài tầm broadcast) mà gửi frame tới MAC của default gateway, để router lo chặng tiếp. Subnet/CIDR chính là phép thử "cùng hay khác" đứng sau quyết định này.
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ì.
  • Network address: 192.168.1.0 (host bits = 0 — tên của subnet, phần mạng 24 bit = 192.168.1).
  • Broadcast: 192.168.1.255 (host bits = 1 — gửi tới mọi máy trong subnet).
  • Host dùng được: phần host 8 bit → 2^8 = 256 địa chỉ, trừ 2 còn 254 (192.168.1.1 đến 192.168.1.254).
  • Gateway 192.168.1.1: host đầu, là cửa ngõ ra mạng khác — máy gửi gói tới đây khi đích khác subnet.

Hai máy cùng /24 (vd .50 và .80) nói chuyện trực tiếp qua switch bằng ARP; muốn ra Internet thì gửi tới gateway .1.

Q6
Subnet mask 255.255.255.0 tương đương CIDR nào, và vì sao?
Tương đương /24. Subnet mask là chuỗi 32 bit gồm các bit 1 (phần mạng) rồi bit 0 (phần host). 255.255.255.0 = ba octet đầu toàn 1 (8+8+8 = 24 bit 1) rồi octet cuối toàn 0 → 24 bit mạng → /24. CIDR chỉ là cách viết gọn "có bao nhiêu bit 1" trong mask.

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?

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

Chưa có câu hỏi

Đặt câu hỏi

Có gì chưa rõ trong bài? Đặt câu hỏi đầu tiên — câu trả lời từ cộng đồng giúp bạn (và người sau).

Đặt câu hỏi đầu tiên