IPv4 Subnetting


1. Khái niệm nền tảng

1.1 Cấu trúc địa chỉ IPv4

IPv4 là địa chỉ 32 bit, chia thành 4 octet (mỗi octet 8 bit), viết dạng thập phân ngăn cách bởi dấu chấm.

IP:   192   .  168   .  10    .  1
Bin: 11000000.10101000.00001010.00000001
     |-----octet 1-----|-----octet 2-----|...

Mỗi địa chỉ gồm 2 phần:

PhầnÝ nghĩa
Network bitsXác định mạng (subnet) — bit 1 trong subnet mask
Host bitsXác định thiết bị trong mạng — bit 0 trong subnet mask

1.2 Subnet mask và ký hiệu CIDR

Subnet mask là chuỗi các bit 1 liên tiếp rồi đến các bit 0 liên tiếp.

/24  → 11111111.11111111.11111111.00000000 → 255.255.255.0
/25  → 11111111.11111111.11111111.10000000 → 255.255.255.128
/26  → 11111111.11111111.11111111.11000000 → 255.255.255.192
/30  → 11111111.11111111.11111111.11111100 → 255.255.255.252

CIDR /x nghĩa là có x bit mạng, còn lại 32 - xbit host.


1.3 Ba loại địa chỉ trong một subnet

LoạiQuy tắcVí dụ (/26)
Network addressToàn bộ host bit = 0192.168.10.0
Broadcast addressToàn bộ host bit = 1192.168.10.63
Host usableTừ network+1 đến broadcast-1192.168.10.1 – .62

2. Tính Network, Broadcast, Host — 3 cách


Cách 1: Dùng phép AND (bitwise) — Cách “đúng chuẩn kỹ thuật”

Nguyên lý: Network = IP AND Subnet_Mask

Phép AND nhị phân:

1 AND 1 = 1
1 AND 0 = 0
0 AND 0 = 0

Ví dụ: Tìm network của 192.168.10.130 /26

IP:          11000000.10101000.00001010.10000010
Subnet /26:  11111111.11111111.11111111.11000000
             ─────────────────────────────────────
AND:         11000000.10101000.00001010.10000000
           = 192.168.10.128   ← Địa chỉ mạng

Từ network address, suy ra broadcast bằng cách đặt toàn bộ host bit = 1:

Network:    11000000.10101000.00001010.10000000
Host bits:                              ^^^^^^  (6 bit cuối)
Broadcast:  11000000.10101000.00001010.10111111
           = 192.168.10.191   ← Broadcast

Suy ra:

  • First host: 192.168.10.129
  • Last host: 192.168.10.190

Cách 2: Dùng Block Size — Cách “nhanh nhất trên giấy”

Nguyên lý: Block size = 256 - giá_trị_octet_bị_chia_trong_subnet_mask

Block size chính là “bước nhảy” giữa các subnet liên tiếp. Chỉ cần xác định octet nào đang bị chia (octet có giá trị không phải 0 hoặc 255 trong subnet mask).

Bảng block size thường gặp:

PrefixMask octet bị chiaBlock size
/25128128
/2619264
/2722432
/2824016
/292488
/302524

Ví dụ: 192.168.10.130 /26

Subnet mask: 255.255.255.192
Octet bị chia: octet 4 = 192
Block size = 256 - 192 = 64

Liệt kê các subnet nhảy theo block 64:

Subnet 0: 192.168.10.0   → 192.168.10.63
Subnet 1: 192.168.10.64  → 192.168.10.127
Subnet 2: 192.168.10.128 → 192.168.10.191  ← 130 nằm ở đây!
Subnet 3: 192.168.10.192 → 192.168.10.255

Kết luận cho 192.168.10.130:

  • Network: 192.168.10.128
  • Broadcast: 192.168.10.191
  • Host range: .129 – .190

Cách 3: Dùng công thức trực tiếp từ CIDR — Cách “tính số học thuần”

Không cần nhị phân, không cần bảng, chỉ dùng lũy thừa 2.

Các công thức:

h = 32 - prefix                    (số bit host)
Số địa chỉ trong subnet = 2^h
Host usable = 2^h - 2
Block size = 2^h

Với 192.168.10.130 /26:

h = 32 - 26 = 6
Số địa chỉ = 2^6 = 64
Block size = 64

Network = 192.168.10.(floor(130/64) × 64) = 192.168.10.128
Broadcast = 192.168.10.(128 + 64 - 1) = 192.168.10.191
Host usable = 64 - 2 = 62 hosts

3. Quy trình chia subnet (VLSM)

VLSM (Variable Length Subnet Masking) là kỹ thuật chia mạng với các prefix khác nhau để tối ưu địa chỉ IP. Thứ tự bắt buộc: chia subnet lớn nhất trước.

flowchart TD A[Mạng gốc] --> B[Sắp xếp các LAN/WAN giảm dần theo số host] B --> C[Lấy mạng còn lại lớn nhất] C --> D{Tính prefix cần thiết\n2^h - 2 ≥ số host} D --> E[Gán subnet đầu tiên cho LAN/WAN đó] E --> F[Mạng còn lại = subnet tiếp theo] F --> G{Còn LAN/WAN chưa chia?} G -- Có --> C G -- Không --> H[Hoàn thành]

Công thức tìm prefix

Cần ≥ H host usable:
  Tìm h nhỏ nhất sao cho 2^h - 2 ≥ H
  prefix = 32 - h

4. Kiểm tra “hai IP có cùng subnet không?”


5. Bảng tra nhanh

PrefixSubnet MaskBlock SizeHost UsableSố subnet từ /24
/24255.255.255.02562541
/25255.255.255.1281281262
/26255.255.255.19264624
/27255.255.255.22432308
/28255.255.255.240161416
/29255.255.255.2488632
/30255.255.255.2524264

6. Ký hiệu trong bảng định tuyến (show ip route)

Ký hiệuTênÝ nghĩa
CConnectedMạng kết nối trực tiếp qua interface đang UP
LLocalĐịa chỉ IP cụ thể của interface đó (/32)
SStaticTuyến tĩnh cấu hình tay
RRIPHọc từ giao thức RIP
OOSPFHọc từ giao thức OSPF
DEIGRPHọc từ EIGRP

Số [120/1] sau route RIP:

  • 120 = Administrative Distance (độ ưu tiên của giao thức)
  • 1 = Metric (số hop)