Wednesday, October 12, 2011

Cách chia subneting , subnet mask

Subnet MasksKhi ta chia một Network ra thành nhiều Network nhỏ hơn, các Network nhỏ nầy được gọI là Subnet. Theo quy ước, các địa chỉ IP được chia ra làm ba Class (lớp) như sau:

Address Class Subnet mask trong dạng nhị phân Subnet mask
Class A11111111 00000000 00000000 00000000255.0.0.0
Class B11111111 11111111 00000000 00000000255.255.0.0
Class C11111111 11111111 11111111 00000000255.255.255.0


Subnet Mask của Class A bằng 255.0.0.0 có nghĩa rằng ta dùng 8 bits, tính từ trái qua phải (các bits được set thành 1), của địa chỉ IP để phân biệt các NetworkID của Class A. Trong khi đó, các bits còn sót lại (trong trường hợp Class A là 24 bits đuợc reset thành 0) được dùng để biểu diễn computers, gọi là HostID. Nếu bạn chưa quen cách dùng số nhị phân hãy đọc qua bài Hệ thống số nhị phân.

Subnetting
Hãy xét đến một địa chỉ IP class B, 139.12.0.0, với subnet mask là 255.255.0.0 (có thể viết là: 139.12.0.0/16, ở đây số 16 có nghĩa là 16 bits được dùng cho NetworkID). Một Network với địa chỉ thế nầy có thể chứa 65,534 nodes hay computers (65,534 = (2^16) –2 ) . Đây là một con số quá lớn, trên mạng sẽ có đầy broadcast traffic.

Giả sử chúng ta chia cái Network này ra làm 4 Subnet. Công việc sẽ bao gồm ba bước:

1) Xác định cái Subnet mask
2) Liệt kê ID của các Subnet mới
3) Cho biết IP address range của các HostID trong mỗi Subnet

Bước 1: Xác định cái Subnet mask
Để đếm cho đến 4 trong hệ thống nhị phân (cho 4 Subnet) ta cần 2 bits. Công thức tổng quát là:

Y = 2^X

mà Y = con số Subnets (= 4)
X = số bits cần thêm (= 2)

Do đó cái Subnet mask sẽ cần 16 (bits trước đây) +2 (bits mới) = 18 bits

Địa chỉ IP mới sẽ là 139.12.0.0/18 (để ý con số 18 thay vì 16 như trước đây). Con số hosts tối đa có trong mỗi Subnet sẽ là: ((2^14) –2) = 16,382. Và tổng số các hosts trong 4 Subnets là: 16382 * 4 = 65,528 hosts.

Bước 2: Liệt kê ID của các Subnet mới
Trong địa chỉ IP mới (139.12.0.0/18) con số 18 nói đến việc ta dùng 18 bits, đếm từ bên trái, của 32 bit IP address để biểu diễn địa chỉ IP của một Subnet.

Subnet mask trong dạng nhị phân Subnet mask
11111111 11111111 11000000 00000000255.255.192.0

Như thế NetworkID của bốn Subnets mới có là:

Subnet Subnet ID trong dạng nhị phân Subnet ID
110001011.00001100.00000000.00000000139.12.0.0/18
210001011.00001100.01000000.00000000139.12.64.0/18
310001011.00001100.10000000.00000000139.12.128.0/18
410001011.00001100.11000000.00000000139.12.192.0/18

Bước 3: Cho biết IP address range của các HostID trong mỗi Subnet
Vì Subnet ID đã dùng hết 18 bits nên số bits còn lại (32-18= 14) được dùng cho HostID.
Nhớ cái luật dùng cho Host ID là tất cả mọi bits không thể đều là 0 hay 1.

Subnet HostID IP address trong dạng nhị phân HostID IP address Range
110001011.00001100.00000000.00000001 10001011.00001100.00111111.11111110139.12.0.1/18 -139.12.63.254/18
210001011.00001100.01000000.00000001 10001011.00001100.01111111.11111110139.12.64.1/18 -139.12.127.254/18
310001011.00001100.10000000.00000001 10001011.00001100.10111111.11111110139.12.128.1/18 -139.12.191.254/18
410001011.00001100.11000000.00000001 10001011.00001100.11111111.11111110139.12.192.0/18 –139.12.255.254


Bạn có để ý thấy trong mỗi Subnet, cái range của HostID từ con số nhỏ nhất (màu xanh) đến con số lớn nhất (màu cam) đều y hệt nhau không?

Bây giờ ta thử đặt cho mình một bài tập với câu hỏi:

Bạn có thể dùng Class B IP address cho một mạng gồm 4000 computers được không? Câu trả lời là ĐƯỢC. Chỉ cần làm một bài toán nhỏ.

Giả tỉ cái IP address là 192.168.1.1. Thay vì bắt đầu với Subnet mask, trước hết chúng ta tính xem mình cần bao nhiêu bits cho 4000 hosts.

Con số hosts ta có thể có trong một network được tính bằng công thức:

Y = (2^X –2)

Nhớ cái luật dùng cho Host ID là tất cả mọi bits không thể đều là 0 hay 1.

4094 = (2^12 –2)
X = 12 , ta cần 12 bits cho HostIDs, do đó Subnet mask sẽ chiếm 20 (=32-12) bits.

Quá trình tính toán nói trên nầy mang tên là Variable Length Subnet Mask(VLSM).

Supernetting
Giả sử ta mạng của ta có 3 Subnets:

Accounting: gồm 200 hosts
Finance : gồm 400 hosts
Marketing: gồm 200 hosts

Bạn hòa mạng với Internet và được Internet Service Provider (ISP) cho 4 Class C IP addresses như sau:
192.250.9.0/24
192.250.10.0/24
192.250.11.0/24
192.250.12.0/24

Bạn có 3 segments và bạn muốn mỗi segment chứa một Network.
Bây giờ bạn làm sao?

Địa chỉ IP trong Class C với default subnet mask 24 cho ta con số Hosts tối đa trong mỗi Network là [(2^X) – 2] = (2^8) – 2 = 254. Như thế segments Accounting và Marketing không bị trở ngại nào cả.

Nhưng ta thấy Segment Finance cần thêm 1 bit mới đủ. Ta làm như sau:

Bước 1: Liệt kê Network IP addresses trong dạng nhị phân
192.250.9.0/24 11000000 11111010 00001001 00000000 (1)
192.250.10.0/24 11000000 11111010 00001010 00000000 (2)
192.250.11.0/24 11000000 11111010 00001011 00000000 (3)
192.250.12.0/24 11000000 11111010 00001100 00000000 (4)

Bước 2: Nhận diện network prefix notation
23 bits đầu (từ trái qua phải) của 2 network IP address (2) and (3) đều giống nhau.

Nếu chúng ta thu Subnet mask từ 24 xuống 23 cho (2) và (3) ta sẽ có một Subnet có thể cung cấp 508 hosts.

IP address của mỗi segment trở thành:

Accounting: gồm 200 hosts: 192.250.9.0/24
Finance: gồm 400 hosts: 192.250.10.0/23
Marketing: gồm 200 hosts: 192.250.12.0/24

Bây giờ IP address 192.250.11.0 trở thành một HostID tầm thường trong Subnet 192.250.10.0/23.

Quá trình ta làm vừa qua bằng cách bớt số bits trong Subnet mask khi gom hai hay bốn (v.v..) subnets lại với nhau để tăng con số HostID tối đa trong một Subnet, được gọi là SUPERNETTING.

Supernetting đuợc dùng trong router bổ xung CIDR (Classless Interdomain Routing và VLSM (Variable Length Subnet Mask).

Và luôn luôn nhớ rằng trong internetwork, NETWORK ID phải là địa chỉ duy nhất (unique)