[5] IP Subneting và VLSM

Trong bài hôm nay tchúng ta sẽ tìm hiểu một khái niệm mới đó là Subnetting (Chia mạng con). Chúng ta sẽ bắt đầu tìm hiểu Subneting là gì và mục đích của nó ra làm sao ngay sau đây? Cùng với đó là áp dụng phương pháp chia mạng con VLSM nổi tiếng vào thực tiễn.

Hình 1 IP Subneting

1/ Đổi số nhị phân sang thập phân và ngược lại

Để dễ dàng tiếp cận hơn về cách chia subnet, chúng ta cần trang bị thêm kiến thức về cách đổi số nhị phân sang thập phân và ngược lại. Các bạn cần nắm chắc kiến thức này để theo dõi những phần sau tốt hơn.
Hệ thập phân (hệ đếm cơ số 10) là một số được ráp nối lại bởi 10 chữ số khác nhau (0 đến 9). Hệ số thập phân là một hệ số phổ biến và thông dụng hiện nay Vd: 192, 128,…
Hệ nhị phân (hay hệ đếm cơ số 2) là một hệ đếm chỉ dùng hai ký tự là 0 và 1 để biểu đạt một giá trị số. Hệ số này thường được dùng để diễn đạt các mức tín hiệu điện tử Vd: 100, 010,1000100,…

Cách đổi từ hệ thập phân sang nhị phân
  • Lấy một số (hệ thập phân) chia 2 được THƯƠNG và DƯ.
  • Xem THƯƠNG là “số thập phân” mới. Tiếp tục lấy “số thập phân” mới chia 2 được THƯƠNG và DƯ.
  • Cứ lặp lại đến khi nào THƯƠNG bằng 0 thì dừng.
  • Kết quả là các số DƯ từ lúc dừng thực hiện trở về trước (thứ tự ngược).

VD: Đổi số 12 sang hệ số nhị phân

Cách đổi từ hệ nhị phân sang thập phân
  • Đánh số thứ tự các số, bắt đầu 0 từ phải sang trái.
  • Vị trí nào có bit 1 sẽ có giá trị 2k (k là số thứ tự), bit 0 có giá trị 0.
  • Cộng các giá trị, sẽ được kết quả.
VD: Đổi số 101 sang hệ thập phân
101 = 1 × 2^3 + 0 x 2^1 + 1 × 2^0 = 8 + 0 + 1 = 9

2/ Subneting (Chia mạng con)

Subneting (chia subnet) là hành động chia Net ID thành các Subnet ID. Hay có thể được hiểu đơn giản là chia nhỏ một lớp mạng lớn (Network) thành nhiều mạng nhỏ (Sub Network).

Công thức tính

Gọi n là số bit 1 tăng thêm của Subnet Mask (hay còn gọi là số bit mượn).

Gọi m là số bit 0 cỏn lại của Subnet Mask (m = 32 – n – SM hiên tại). Ta làm theo 5 bước sau:

Bước 1: Số Subnet: 2^n

Bước 2: Số Host/Subnet : 2^m – 2 ( vì phải trừ đi địa chỉ NetID và Broadcast )

Bước 3: Bước nhảy: 2^m

Bước 4: Subnet mask mới: 256 – Bước nhảy

Bước 5: Các Subnet ID gồm
  • Subnet ID đầu tiên = 0
  • Subnet ID kế tiếp = Subnet hiện tại + Bước nhảy
Bước 6: Trong Subnet ID.
  • Host đầu: Subnet ID + 1
  • Host cuối: Subnet ID + Bước nhảy – 2
  • Địa chỉ Broadcast: Host cuối + 1
Lưu ý: Tổng số subnet có 2 cách tính :
  • 2^m-2 (Router không hỗ trợ Subnet Zero)
  • 2^m ( Router hỗ trợ Subnet Zero)
Ví Dụ 1: Ta phải chia Net ID: 203.162.4.0/24 tăng 2 bit (n = 2)
  • Số Subnet: 2^n = 2^2 = 4
  • Số Host trên Subnet : 2^6 – 2 = 62
  • Bước nhảy: 2^6 = 64
  • Subnet mask mới: 256 – Bước nhảy = 256 – 64 = 192
Subnet mới: 255.255.255.192 = 11111111.11111111.11111111.11000000 => /26
  • Các Subnet ID:
Subnet ID đầu tiên = 0 => 203.162.4.0/26

Subnet ID kế tiếp = Subnet hiện tại + Bước nhảy

203.162.4.64/26

203.162.4.128/26

203.162.4.192/26

Kết quả 


Ví Dụ 2: 1 host có địa IP: 203.162.4.165 - 255.255.255.224. Host đó thuộc vùng mạng (Net ID) nào?

IP: 203.162.4.165

Subnet Mask: 255.255.255.224

Ta thấy giá trị SM: 255.255.255.224 = 11111111 . 11111111 . 11111111 . 11100000

=> Số bit 0 còn lại của SM là: m = 5

=> Bước nhảy = 2^m = 2^5 = 32

=> Ta lấy 165 : 32 = 5,15625

=> Ta lấy phần nguyên của kết quả trên tức là 5 x 32 = 160

=> Host trên thuộc Net ID: 203.162.4.160

3/ Phương pháp VLSM (Variable Length Subnet Masking)

Đối với cách chia trên ta thấy số IP (hay còn gọi là host) trong mỗi 1 subnet là như nhau. Vậy giả sử cty XYZ được cung cấp Public IP là 203.162.4.0/24 cho 3 chi nhánh là SG, HN, DN. Và 3 chi nhánh này có số yêu cầu về IP khác nhau như sau:
  • SàiGòn cần 52 IP
  • HàNội cần 25 IP
  • ĐàNẵng cần 22 IP
Nếu ta dùng cách chia mạng con đều nhau như trên thì chắc chắn một điều sẽ không đáp ứng được yêu cầu của cty XYZ. Chỗ thì cần nhiều, chỗ thì cần ít. Nếu cấp đều nhau thì chỗ sẽ bị thiếu IP và ngược lại có chỗ sẽ bị dư thừa IP. Chính vì lý do thực tế đó nên sinh ra cách chia Subnet tối ưu hơn đó là VLSM. 

Sau đây là trình bày cách chia subnet theo yêu cầu như ví dụ trên theo chuẩn VLSM.

Đầu tiên ta thấy nhu cầu của mỗi chi nhánh phải thỏa điều kiện sau:

Số lượng host (IP) của 1 subnet mà cty cấp cho mỗi chi nhánh >= Số host (IP) yêu cầu của mỗi chi nhánh

Ta có Số lượng host (IP) của 1 subnet = 2^m -2

=> 2^m -2 >= Số host (IP) yêu cầu của mỗi chi nhánh

Ta nên chia subnet theo thứ tự yêu cầu IP giảm dần của các chi nhánh, bắt đầu là SG với số lượng IP yêu cầu là 52.

Ta có:

2^m – 2 >= 52

=> m = 6

=> n = 2 (Các bạn xem lại ví dụ về cách chia subnet ban đầu để hiểu hơn)

=> Bước nhảy = 2^m = 2^6 = 64

Theo như công thức ở mục 2 thì ta có:
  • Subnet ID đầu tiên = 0 => 203.162.4.0/26
Và Subnet Mask mới của mỗi Subnet ID trên sẽđược tính theo công thức: SM cũ + n

=> Subnet Mask mới của Subnet ID 203.162.4.0 sẽ là 24 + 2 = 26
  • Subnet ID kế tiếp = Subnet hiện tại + Bước nhảy
Vậy kết quả sẽ được tóm tắt như bảng sau:


Như đã thấy số lượng IP được chia mạng con cho mỗi chi nhánh đã đủ với yêu cầu ban đầu và không quá dư thừa. Và thực tế thì VLSM là cách chia được dùng để làm công việc chia Subnet ID của các doanh nghiệp.