Truyện hay
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Truyện hayĐăng Nhập

truyenhay cung cấp truyện và chia sẻ truyen hay - truyện hay, các thể loại truyện 18+, sac hiep, tien hiep, di hiep đã hoàn thành full


descriptionchia mạng con Emptychia mạng con

more_horiz
Chia mạng con (subnetting) là gì và tại sao?
Như chúng ta biết ở bài viết “Cơ bản về IPv4” thì nguồn tài nguyên IP đã dần cạn kiệt. Trong khi đó, chẳng hạn như mỗi lớp mạng A có đến 224 – 2 = 16.777.214 địa chỉ IP hay lớp B có 216
– 2 = 65534 địa chỉ IP, một con số mà khó một hệ thống mạng nào đạt đến
số lượng máy tính như vậy. Điều này gây lãng phí không gian địa chỉ rất
lớn. Do đó vấn đề đặt ra là phải chia từng lớp mạng này thành những lớp
mạng nhỏ hơn có số IP phù hợp với nhu cầu sử dụng hợp lý. Sự phân chia
này còn giúp người quản trị dễ dàng hơn trong việc quản lý, bảo mật dữ
liệu đồng thời giảm tải cho các thiết bị định tuyến.




Xét
về mặt thực tiễn ban đầu khái niệm Subnetting ra đời chủ yếu dùng để
phân chia lớp mạng A và B, sau dần nó trở thành một bài toán mang tính
lý thuyết làm đau đầu khá nhiều học viên quản trị mạng, trong đó có mình
^^!


Vậy subnetting là gì?
Nôm na đó là tổ hợp những kỹ thuật phân chia không gian địa chỉ của một
lớp mạng cho trước thành nhiều lớp mạng nhỏ hơn bằng cách lấy một số
bit ở phần Host Address (Nhiều tài liêu gọi là Host ID, gọi thế nào cũng
được miễn sao khi gọi nó vẫn ngoảnh đầu trả lời) để làm địa chỉ mạng
cho mạng con (Subnet). Minh họa sau với lớp B


net

work

subnet

host




Để hiểu hơn về subnetting, trước hết cần biết vài khái niệm sau: (Theo mình khái niệm chỉ là tên gọi chủ yếu là bản chất của nó)


Prefix length:
đại lượng chỉ số bit dùng làm địa chỉ mạng. Chẳng hạn lớp A có prefix
length là 8, lớp B là 16, lớp C là 24. Với một địa chỉ IP tiêu chuẩn
prefix length là giá trị sau dấu /. Chẳng hạn 192.168.1.1 /24


Default Mask (Network Mask):
là giá trị trần của mỗi lớp mạng A, B, C (D, E không xét đến) và là giá
trị thập phân cao nhất (khi tất cả các bit ở Network Address bằng 1 và
các bit ở Host Address bằng 0). Như vậy Default Mask của lớp A là
255.0.0.0, của lớp B là 255.255.0.0 và C là 255.255.255.0


Subnet Mask: Giá
trị trần của mạng con, là giá trị thập phân tính khi tất cả các bit của
prefix length bằng 1 và phần còn lại bằng 0. Chẳng hạn địa chỉ IP
172.16.1.46 /26 có Subnet Mask là 255.255.255.192
(11111111.11111111.11111111.11000000)


Địa chỉ mạng con (Subnet Address) của
một địa chỉ IP cho trước là giá trị nhỏ nhất của dải địa chỉ mạng con
mà IP đó thuộc về. Các thiết bị định tuyến dựa vào địa chỉ này để phân
biệt các mạng con với nhau. Giá trị của địa chỉ mạng có thể được tính
bằng nhiều cách. Cách cơ bản nhất là dùng phép AND giữa địa chỉ Subnet
Mask và IP dưới dạng nhị phân. Chẳng hạn với địa chỉ 172.16.1.250 /26


Subnet Mask

11111111

11111111

11111111

11000000

IP Address

10101100

00010000

00000001

11111010

AND

10101100

00010000

00000001

11000000

Subnet Address

172

16

1

192

Sau này khi làm nhiều bài tập về phân chia mạng con ta sẽ có nhiều cách để tính Subnet address nhanh hơn.

Địa chỉ quảng bá (Broadcast Address)
của một mạng con là địa chỉ IP cao nhất của mạng đó. Subnet Address và
Broadcast Address không dùng để gán cho máy chủ. Do đó mới có công thức
tính số IP khả dụng là 2n – 2 với n là số bit dùng cho Host Address.


Khái niệm cuối cùng và quan trọng nhất trong ứng dụng phân chia mạng con thực tiễn là VLSM (Variable Length Subnet Mask)
là kỹ thuật sử dụng các Subnet Mask khác nhau để tạo ra các Subnet có
lượng IP khác nhau. Với kỹ thuật này quản trị viên có thể chia mạng con
với lượng IP phù hợp nhất với yêu cầu từng mạng, dễ dàng mở thêm các
mạng con về sau này.

descriptionchia mạng con EmptyRe: chia mạng con

more_horiz
2. Vậy phân chia mạng con thế nào?

Để
giải quyết câu hỏi này, ta trả lời câu hỏi sau: Với một địa chỉ IP tiêu
chuẩn cho trước, hãy xác định Subnet Address, Broadcast Address, Subnet
Mask, số Host Adress trong Subnet đó.


Ví dụ cụ thể với IP 17.16.15.14 /13

Nhận xét: IP này thuộc lớp A vậy đã mượn 5 bit làm Subnet Mask, và có 29 bit Host Address
Subnet Mask: 11111111.11111000.00000000.00000000 tương đương 255.248.0.0
Số Host Address trong subnet: 232-13 – 2 = 524286
Subnet Address: Sử dụng phép AND giữa IP và Subnet Mask, cách này hơi lâu và ta được kết quả 17.16.0.0
Với 5 bit mượn ta có số subnet tạo thành là 25 = 32 suy ra khoảng cách giữa các Subnet (subnet length) là 256/32 = 8. Vậy subnet tiếp theo là 17.24.0.0
Broadcast: là giá trị lớn nhất của dải IP subnet trước, cũng chính là IP liền kề của địa chỉ Subnet của mạng sau và là 17.23.255.255

Công
việc có vẻ đơn giản, nhưng việc chuyển đổi qua lại giữa hệ thập phân và
nhị phân khá nhàm tẻ, đặc biệt khi không có máy tính thì rất tốn giấy
mực và công sức. Sau đây ta sẽ tìm lời giải đơn giản và tổng quát hơn.


Để
ý thấy rằng ta chỉ làm việc với các số trong cùng một octet tại một
thời điểm. Ta gọi đó là octet làm việc (working octet). Với prefix là 13
ta làm việc với octet 2 (khi sử dụng phép AND giữa Subnet Mask và IP ta
thấy rõ hơn điều này). Để tìm octet làm việc cách tổng quát là lấy phần
nguyên của (prefix length/Cool + 1


Gọi m là số bit mượn ở octet làm việc (Tính bằng số dư của prefix length/Cool ta tìm bước nhảy subnet ở theo công thức 28-m

Xác định vị trí của subnet hiện tại bằng cách xác định số n sao cho giá trị n*28-m =< giá trị thập phân của octet làm việc < (n+1)*28-m

Khi đó Subnet hiện tại sẽ là n với giá trị của subnet address tại octet làm việc sẽ là n*28-m , giá trị của các octet trước octet làm việc giữ nguyên, các octet sau bằng 0

Tương tự cho subnet tiếp theo subnet hiện tại, từ đó ta tìm được địa chỉ broadcast.

Nói thì dài dòng vậy nhưng xét ví dụ cụ thể sau ta sẽ hiểu rõ hơn:

VD1 : IP 26.25.24.23 /22
Octet làm việc : 3, m = 4.
Bước nhảy : 16 suy ra n = 1
Vậy Subnet address là 26.16.0.0
Subnet tiếp theo là 26.32.0.0
Broadcast : 26.31.255.255

VD2 : IP 32.31.30.29 /28
Octet làm việc : 4, m = 5
Bước nhảy : 8 suy ra n = 3
Subnet address là 32.31.30.24
Subnet tiếp theo là 32.31.30.32
Broadcast : 32.31.30.31

Rất đơn giản phải không nào ^^ !

Tuy
nhiên, vấn đề khó khăn và mang tính thực tiễn nhiều hơn của bài toán
subnetting là việc quyết định xem subnet nhỏ nhất là thế nào để có thể
đáp ứng hợp lý số host trên một segment nhằm tiết kiệm tối đa không gian
địa chỉ IP và mở rộng mạng lưới về sau. Bài toán đặt ra là bạn một dải
địa chỉ nhất định, yêu cầu bạn phân chia nó thành một lượng X subnet
cho trước với số lượng host trên mỗi subnet là khác nhau cho trước. Giải
quyết bài toán này ta sử dụng kỹ thuật VLSM như đã nói ở trên. Ta xét
ví dụ cụ thể sau :


« Một
hệ thống mạng gồm 229 Host và địa chỉ IP được thiết lập ở lớp
192.168.11.1/24. Hãy chia hệ thống mạng này thành bốn mạng con Net 1: có
19 Host, Net 2: có 29 Host, Net 3: có 61 Host và Net 4: có 120 Host »


Trước hết sắp xếp các số lượng host theo thứ tự giảm dần : 120,61,29,19

Vì với mỗi x bit làm host address ta có số host là 2x – 2. Ta cần tìm số x nhỏ nhất thỏa mãn yêu cầu

Với Net 120 host => x = 7 => prefix length = 25 mượn 1 bit ở octet 4. Bước nhảy 27 = 128
Ta có Net4 : 192.168.11.0 /25

Subnet tiếp theo là 192.168.11.128 /25. Dùng subnet này chia tiếp cho Net3 :
61 host => x = 6 => prefix length = 26 mượn 2 bit ở octet 4. Bước nhảy 26 = 64
Ta có Net3 : 192.168.11.128 /26
Subnet tiếp theo là 192.168.11.192 /26 chia tiếp cho Net2 :
29 host => x = 5 => prefix length = 27 mượn 3 bit ở octet 4. Bước nhảy 32
Ta có Net2 : 192.168.11.192 /27
Subnet tiếp theo là 192.168.11.224 /27. Dùng subnet này cho Net1 :
Ta có Net1 : 192.168.11.224 – 192.168.11.255

descriptionchia mạng con EmptyRe: chia mạng con

more_horiz
Cấu trúc địa chỉ IPv4
Địa chỉ
IPv4 là một số nguyên 32 bit chia thành 4 octet, mỗi octet gồm 8 bit (1
Byte) phân cách bởi dấu chấm (.) có thể được viết dưới dạng thập phân
hoặc đổi sang dạng nhị phân (dạng mà máy tính có thể hiểu được – máy
tính không hiểu được dạng thập phân)


Ví dụ:
Một địa chỉ IP 192.168.1.1 ở dạng nhị phân sẽ là 11000000.10101000.00000001.00000001



Cấu trúc
của địa chỉ IP (từ giờ ta sẽ dùng IP thay cho IPv4) gồm 2 thành phần
chính: Địa chỉ mạng (Network address), địa chỉ máy chủ (Host address).
Để dễ dàng trong việc phân chia các lớp mạng, người ta lấy một số bit
đầu tiên của Network address để làm bit nhận dạng (class bit)


Class bit

Network address

Host address

2. Các lớp địa chỉ IP

IP được
chia thành 5 lớp (class) A, B, C, D, E dựa trên class bit theo quy tắc
sau: ( Lớp D và E được dùng cho nghiên cứu và các mục đích khác, không
sử dụng trên thực tế nên ta ko cần quan tâm đến)


Class A: bit đầu tiên có giá trị bằng 0 làm class bit và 8 bit của Octet 1 làm Network address

0

(class bit)

Network address

Host address

Octet 1

Octet 2

Octet 3

Octet 4

Như vậy Network address của class A sẽ có giá trị từ 00000001 (Network address không thể bằng 0) đến 01111111 tương đương 1 đến 127 ở dạng thập phân. (bit in đậm là class bit và có giá trị không đổi cho mỗi lớp địa chỉ)

Tuy nhiên
trên thực tế địa chỉ có dạng 127.x.y.z không được phân chia mà dùng
trong mạng nội bộ. Vì vậy Class A chỉ có 26 Network address khả dụng từ
1. đến 126.


3 Octet
còn lại của Class A gồm 24 bit dùng làm Host address, nên ứng với mỗi
Network address, ta có 2^24 – 2 (16.777.214) Host address. (sở dĩ trừ 2
là vì địa chỉ đầu tiên dùng làm địa chỉ mạng, địa chỉ cuối là địa chỉ
broadcast, không dùng để phân cho máy chủ)


Class B: Class bit là hai bit đầu tiên có giá trị 10, Octet 1 và 2 làm Network address

10

(class bit)

Network address

Host address

Octet 1

Octet 2

Octet 3

Octet 4






Network address có giá trị từ 10000000.00000000 đến 10111111.11111111 tương đương 128.0 đến 191.255.

Như vậy class B có 2^14 = 16.384 Mạng con và 2^16 – 2 = 65.534 Host address trên mỗi mạng.

Chú
ý là trong các tài liệu về trước thì chúng ta không thể đặt tất cả các
bit trong Network address bằng 0 hoặc 1 (trừ bit nhận dạng) nên chỉ có 2
^14
– 2 = 16.382 Mạng con. Nhưng ngày nay các router đã hỗ trợ Subnet Zero
(khi tất cả các bit bằng 0) và All-Ones Subnet (khi tất cả các bit bằng
1) nên ta vẫn có thể dùng hai mạng con đó.


Class C: Class bit là 3 bit đầu tiên có giá trị 110 và 24 bit của Octet 1, 2, 3 làm Network address

110

(class bit)

Network address

Host address

Octet 1

Octet 2

Octet 3

Octet 4






Network address có giá trị từ 11000000.00000000.00000000 đến 11011111.11111111.11111111 tương đương 192.0.0. đến 223.255.255.

Như vậy class C có 221 = 2.097.152 Network và tương ứng 2^8 – 2 = 254 Host address trên mỗi mạng

3. Phần kết

Ta thường
thấy IP được viết dưới dạng thập phân, khi đó muốn biết địa chỉ đó
thuộc lớp nào nếu dựa vào class bit thì rất lâu vì phải đổi ra nhị phân
rồi so sánh. Tuy nhiên nếu quan sát thì dễ thấy lớp A có dải địa chỉ từ
1.x.y.z đến 126.x.y.z, lớp B thuộc dải 128.x.y.z đến 191.x.y.z và lớp C
thuộc dải 192.x.y.z đến 223.x.y.z. Như vậy chỉ cần dựa vào số đầu tiên
trong địa chỉ ta biết nó thuộc lớp nào.


Ngày nay
địa chỉ IPv4 đang cạn dần, cụ thể là lớp A và B đã được cấp phát hết,
chỉ còn lớp C. Do vậy ta không bàn đến việc ứng dụng nó trong những
trường hợp như thế nào nữa mà vấn đề là cấp phát như thế nào thôi.Để
giải quyết vấn đề cạn kiệt nguồn tài nguyên này, người ta sử thường phân
chia thành nhiều mạng nhỏ tùy thuộc vào nhu cầu sử dụng. Ta sẽ nghiên
cứu cách chia mạng con (subnetting) trong bài viết sau.


Tuy nhiên
với tốc độ phát triển ồ ạt của CNTT thì nguồn IPv4 cũng không thể đáp
ứng nhu cầu của người dùng trong nay mai. Và đó là lý do IPv6 ra đời và
đang phát triển. IPv6 thì đơn giản hơn, nó là một số 128 bit, và nghĩa
đủ cấp IP cho 2^128 là khoảng hơn 340 tỷ tỷ tỷ tỷ thiết bị. Đủ cho người người IP nhà nhà IP, khỏi phải phân lớp chia mạng con cho mất công =))


(Bài
viết này mình tổng hợp trên nhiều tài liệu khác nhau và trình bày theo
cách hiểu cá nhân chứ thực ra mình cũng không được đào tạo cơ bản (đúng
hơn là học mất gốc). Nếu có gì sai sót xin được bổ trợ)


Thanks for reading!

descriptionchia mạng con EmptyRe: chia mạng con

more_horiz
privacy_tip Permissions in this forum:
Bạn không có quyền trả lời bài viết
power_settings_newLogin to reply