Khái niệm, định nghĩa Subnet mask là gì?

Subnet mask hay còn gọi là subnetsubnet work là sự phân chia lô gic địa chỉ TCP/IP. Môn thực hành phân chia địa chỉ mạng thành 2 hoặc nhiều hơn mạng con được gọi thuật ngữ tiếng Anh là subnetting.

Mục đích phân chia subnet

Một tổ chức nào đó được InterNIC cấp cho một số địa chỉ IP nhất định với các máy tính đặt ở các nơi khác nhau. Để quản lý mạng hiệu quả, người ta phân chia mạng của tổ chức này thành các mạng con và nối kết với nhau thông qua các router. Những mạng con được gọi là các subnet. Mục đích phân chia mạng con là vì:

  • Giảm giao dịch trên mạng: lúc này các router điều khiển các gói tin trên mạng, chỉ có gói tin nào có địa chỉ đích ở ngoài mới được chuyển ra.
  • Quản lý mạng đơn giản hơn, dễ kiểm tra khi có sự cố và xác định được nguyên nhân gây lỗi hơn là trong một mạng lớn.

Một điều quan trọng là mỗi một subnet vẫn là một phần của mạng nhưng nó cũng cần được phân biệt với các subnet khác bằng cách thêm vào một định danh nào đó. Định danh này được gọi là subnet address. Để phân chia thành các mạng subnet, trước hết cần định rõ số lượng subnet của mạng và số thiết bị trong mỗi subnet, trong khi đó router trên mỗi một subnet chỉ cần biết các thông tin địa chỉ của mỗi máy trên một subnet mà nó quản lý.

Chia Subnet Mask như thế nào?

Ở đây, sẽ trình bày cách ngắn gọn giúp bạn có thể tính nhẩm được. Lấy ví dụ cụ thể như sau:
Công ty thuê một đường IP là 192.168.1.0. Bây giờ ông giám đốc yêu cầu phân làm chia làm 3 mạng con cho ba phòng ban trong công ty. Hãy thực hiện việc chia subnet này.

Trước hết ta phân tích cấu trúc của địa chỉ: 192.168.1.0 như sau:
+ Địa chỉ NetMask: 255.255.255.0
+ Network ID: 11111111.11111111.11111111
+ HostID: 00000000

Trong ví dụ này ta cần chia làm 3 mạng con (3 subnet) nên ta cần sử dụng 2 bit ở phần Host ID để thêm vào Network ID. Làm sao để biết được số bit cần mượn thêm? Ta có công thức : 2^n>=m (với m là số subnet cần chia, n là số bit cần mượn). Ở đây 2^2>=3.
Sau khi mượn 2 bit, ta có cấu trúc mới ở dạng nhị phân là (bit mượn ta set giá trị bằng 1 nhé):
+ Địa chỉ NetMask:: 11111111.11111111.11111111.11000000
+ Network ID: 11111111.11111111.11111111.11
+ Host ID: 000000
=> Ở dạng thập phân là: 255.255.255.192

Địa chỉ IP mới lúc này là: 192.168.1.0/26 (con số 26 là 24 + 2 bits mượn).
Ta xác định “bước nhảy” cho các subnet:
Bước nhảy k=256-192=64
=> Ta có các mạng con sau:
Ip: 192.168.1.0 Netmask: 255.255.255.192
Ip: 192.168.1.64 Netmask:  255.255.255.192
Ip: 192.168.1.128 Netmask: 255.255.255.192
Ip: 192.168.1.192 Netmask: 255.255.255.192

Như vậy số máy trên mỗi mạng bằng bao nhiêu?
Số bits của Host ID còn lại sau khi đã bị Network ID mượn: x = 32-26 = 6
=> Số máy trên mỗi mạng: 2^n-2 = 2^6-2 = 64 máy

Theo Upshell và Wiki