Trong bài trước chúng ta đã được giới thiệu về subnet mask và như thế nào là chia mạng con, trong bài này chúng ta sẽ tìm hiểu chi tiết hơn về việc chia subnet. Chia mạng con giúp người quản trị chia nhỏ mạng, tối ưu việc sử dụng IP trong mạng và tối ưu việc thực hiện routing cho hệ thống thông qua các supernet (các mạng cha). Để chia mạng con (subnet), chúng ta phải mượn một số bit ở phần host ID làm network ID, các bit mượn được gọi là subnet bit, cụ thể như sau:
Gọi n là số bit mượn, m là số bit host còn lại sau khi mượn.
Số lượng mạng con có qua số bit mượn:
- 2n: Đối với hệ thống có hổ trợ network 0 (tất cả các hệ thống hiện tại ngày nay chúng ta dùng, các hệ điều hành đã hỗ trợ subnet 0)
- 2n-2: đối với hệ thống không hỗ trợ subnet 0 (đối với các hệ thống cũ, các hệ điều hành không hỗ trợ subnet 0)
Số host trong subnet: 2m – 2 (như chúng ta đã biết trong bài về địa chỉ IPv4 thì một mạng sẽ không dùng đến địa chì đầu tiên là network và địa chỉ cuối cùng là broadcast.)
Bước nhảy giữa các mạng: sẽ được tính bằng công thức: 28-n. Chính là giá trị của các bit (nhị phân) mượn làm network ID lần lượt chuyển từ giá trị 0 lên giá trị một. Giá trị của bước nhảy dùng để xác định Network tiếp theo.
Vậy làm sao để xác định được địa chỉ mạng, địa chỉ host đầu và host cuối, địa chỉ Broadcast của một subnet mask?
- Địa chỉ mạng được xác định bằng bội số bước nhảy (28-n) của octet bị mượn.
- Địa chỉ host đầu là địa chỉ mạng tăng lên 1 địa chỉ
- Địa chỉ host cuối sẽ bằng địa chỉ broadcast lùi về 1 địa chỉ.
- Địa chỉ broadcast bằng địa chỉ mạng tiếp theo lùi về 1 địa chỉ.
- Sunet mask là tất cả các bit phần Network ID và số bit mượn bật lên thành 1
Dưới đây là bảng giá trị bước nhảy và subnet mask khi mượn bit (bạn lưu ý là phải nắm vững cách đổi giá trị thập phân ra nhị phân và ngược lại):
(1) Bước nhảy mạng con và (2) Bước nhảy của subnet mask.
Chúng ta sẽ tiến hành vào các vì dụ minh họa, cho lớp mạng 192.168.1.0, mượn thêm 2 bit ở phần host để phân chia mạng con, bây giờ chúng ta đi xác định số lượng mạng con, số host trong mỗi mạng, địa chỉ đầu tiên và địa chỉ cuối cùng.
Ta thấy 192.168.1.0 là địa chỉ lớp C, 2 bit mượn sẽ nằm ở octet cuối, theo các công thức trên ta có:
- Số mạng con 2n với n là số bit mượn làm net: 22 = 4 mạng con
- Số host trên mỗi mạng là 2m – 2 với m là số bit host còn lại: 26-2=62 địa chỉ
- Bươc nhảy của địa chỉ mạng 28-n với n là số bit mượn làm net: 28-2=64
- Bước nhảy (là 64) dùng để xác định Network tiếp theo.
- Địa chỉ host đầu là địa chỉ mạng tăng lên 1 địa chỉ
- Địa chỉ host cuối sẽ bằng địa chỉ broadcast lùi về 1 địa chỉ.
- Địa chỉ broadcast bằng địa chỉ mạng tiếp theo lùi về 1 địa chỉ.
- Subnet mask là tất cả các bit phần Network ID và số bít mượn bật lên thành 1.
Tương tự ta có địa chỉ 172.16.0.0 thuộc lớp B, ta mượn thêm 2 bit ở phần host để chia mạng con vậy còn 14 bit cho host.
- Số mạng con 2n với n là số bit mượn làm net: 22 = 4 mạng con
- Số host trên mỗi mạng là 2m – 2 với m là số bit host còn lại: 214-2=16382 địa chỉ
- Bươc nhảy của địa chỉ mạng 28-n với n là số bí mượn làm net: 28-2=64
Bạn chú ý bước nhảy sẽ được tính dựa vào số bit mượn của octet bị mượn.
Vậy nếu địa chỉ 172.16.0.0 lớp B, mượn thêm 10 bit ở host ID nó được tính như thế nào? Lúc này chúng ta có thể thấy 8 bit ở octet thứ 3 tương tự như octet thứ ba của lớp C, như vậy bước nhảy sẽ được tiến hành tính ở 2 bit mượn trong octet thứ 4, việc chia sẽ tương tự như 192.168.1.0.
Chúng ta thử đi phân tích vấn đề này, cụ thể, để dể hiểu trước tiên chúng ta sẽ phân tích dãy địa chỉ này ra nhị phân với địa chỉ đầu và địa chỉ cuối như sau:
Số mạng con 2n với n là số bit mượn: 210=1024 mạng con. Tương đương với:
- Octet 3 mượn 8 bit: 28 = 256
- Octet 4 mượn 2 bit: 22 = 4
<=> 256 x 4 = 1024
Số host trên mỗi mạng 2m-2 với m là số bit host còn lại: 26– 2 = 62 địa chỉ host.
Bước nhảy, như trong bảng quy đổi nhị phân ta thấy:
- Bước nhảy của octet 3 là 28-m = 28-8=1
- Bước nhảy ở octet 4 là 28-m= 28-2 =64
Ta có thể thấy ở đây cứ octet 3 thực hiện bước nhảy 1 đơn vị thì ở octet 4 sẽ thực hiện các bước nhảy với 64 đơn vị bắt đầu từ 0. Như vậy cứ octet 3 nhảy 1 đơn vị thì sẽ có thêm 4 mạng con ở octet 4.
Việc tính địa chỉ đầu và địa chỉ cuối giống hệt địa chỉ 192.168.1.0 ở trên.
Như vậy trường hợp như của 172.16.0.0/26, người ta sẽ quan tâm đến bước nhảy của octet bị mượn dưới 8 bit để tính bước nhảy và host đầu host cuối của mỗi mạng. Trên thực tế người ta có thể dùng mạng 172.16.1.0/26 này, bạn có thể xem như một địa chỉ lớp C do 3 octet đầu đều là network ID, nhiệm vụ chính là phải tính các network và host trong phần octet cuối.
Vậy bạn mượn tối đa bao nhiêu bit? Trong khi mượn, chúng ta phải chừa ít nhất 2 bit cho phần host bời vì 2m – 2 <=> 22-2 =2, như vậy với 2 bit, sau khi chúng ta trừ đi 2 địa chỉ Network và broadcast chúng ta sẽ có 2 địa chỉ có thể dùng được. Nêu chỉ có 1 bít thì lúc đó sẽ là 21-2=0 vậy không có địa chỉ nào có thể dùng được khi chỉ còn 1 bit host.
Trên đây là cách tính, bạn có thể tham khảo các công cụ chia IP sau:
Người ta có thể cho bạn một địa chỉ IP và một prefix, ví dụ: 192.168.1.100/26 và yêu bạn xác định xem nó thuộc network nào? với câu hỏi này bạn có thể tham khảo bảng bước nhảy ở trên để xem nó thuộc mạng nào hoặc có thể đổi địa chỉ IP ra thành nhị phân và and bit IP và sunet mask như trong bài tìm hiểu về subnet mask đã nêu.