Chia địa chỉ IP như thế nào? – lehuutrung.dev

Xin chào những bạn, lại là mình đây 😁 Hôm nay, mình sẽ ra mắt với những bạn về địa chỉ IP và cách chia mạng con, đây là một chủ đề khá trong thực tiễn và mê hoặc .Địa chỉ IP ( Internet Protocol Address ) là địa chỉ duy nhất dùng để phân biệt những thiết bị trong mạng máy tính sử dụng giao thức Internet. Nói nôm na thì địa chỉ IP giống như địa chỉ nhà của bạn và nó dùng để phân biệt đâu là nhà của bạn và đâu là nhà hàng xóm của bạn trên một con đường 😜. Địa chỉ IP thường được sử dụng lúc bấy giờ là IP version 4 ( IPv4 ) và IP version 6 ( IPv6 ), còn lại thì phần đông không được sử dụng. Các bạn hoàn toàn có thể tìm hiểu thêm lịch sử vẻ vang tăng trưởng những phiên bản của địa chỉ IP tại đây. Trong bài viết này, mình sẽ chỉ trình làng những bạn về địa chỉ IPv4 .

Một địa chỉ IP (IPv4) được tạo thành bởi 32 bit nhị phân (4 bytes), được chia
làm 4 bộ tám (octet). Các octet được ngăn cách nhau bởi dấu chấm “.“.
Như vậy, mỗi octet sẽ là 1 byte và giá trị mỗi octet sẽ nằm trong đoạn từ
00000000 – 11111111 (nhị phân) hay từ 0 – 255 (thập phân). Ví dụ một địa chỉ
IP như sau:

192.168.1.1

11000000.10101000.00000001.00000001 (dạng nhị phân)

Với hình trên, bạn có vướng mắc rằng tại sao miền địa chỉ lớp A không phải từ 0 – 127 mà lại là 1 – 126 không ? Câu vấn đáp là địa chỉ 0 và 127 của lớp A được sử dụng cho mục tiêu khác. Với địa chỉ 0, 0.0.0. 0 là một địa chỉ meta đại diện thay mặt cho việc không có địa chỉ đơn cử. Còn 127 chính là địa chỉ loopback hay localhost mà những bạn thường nghe. Trong thực tiễn, tất cả chúng ta phần nhiều chỉ sử dụng địa chỉ lớp A, B, C. Lớp D được dùng cho multicast truyền thông online đa phương tiện, còn lớp E chỉ sử dụng để dự trữ và dùng trong phòng thí nghiệm .Địa chỉ IP được chia làm 2 phần : phần Network ( Network ID ) và phần Host ( Host ID ). Phần Network dùng để xác lập địa chỉ mạng, phần Host dùng để xác lập địa chỉ của những thiết bị trong mạng đó. Dựa vào đó, người ta chia địa chỉ IP thành 5 lớp :Với chiều dài là 32 bit nhị phân, tất cả chúng ta có tổng số 232 = 4,294,967,296 địa chỉ IP. Chúng ta thấy số lượng này rất hữu hạn. Với địa chỉ IP lớp A, tất cả chúng ta dùng 1 byte cho Network ID, tuy nhiên tất cả chúng ta giữ nguyên bit tiên phong là bit 0, do đó tất cả chúng ta có 27 – 2 = 126 địa chỉ mạng ( 2 địa chỉ mạng không dùng tới là 0 và 127 như mình đã đề cập ở trên ). Tương tự như vậy với những lớp khác, bạn hoàn toàn có thể tìm hiểu thêm bảng tính bên dưới .

Bảng tính số lượng địa chỉ mạng và địa chỉ host mỗi lớp

Chia mạng con ( Subnetting ) là việc bạn tạo ra nhiều địa chỉ mạng logic hơn trong mỗi lớp A, B, C. Nôm na là việc bạn tạo ra nhiều hơn 126 địa chỉ mạng trong lớp A ví dụ điển hình. Thử tưởng tượng nếu như không chia mạng con, với địa chỉ mạng lớp A, tất cả chúng ta chỉ có 126 địa chỉ mạng mà với mỗi địa chỉ mạng tất cả chúng ta lại có tới 16,777,216 địa chỉ host. Giả sử một tổ chức triển khai lớn được cấp một địa chỉ mạng lớp này đi chăng nữa cũng không hề có việc 16 triệu máy tính cùng liên kết vào một mạng được. Việc không sử dụng hết địa chỉ IP là một sự tiêu tốn lãng phí không đáng có, trong khi số lượng địa chỉ IP lại hạn chế. Do đó, tất cả chúng ta cần phải chia mạng con. Tuy nhiên, việc chia mạng con sẽ làm giảm số lượng địa chỉ IP hoàn toàn có thể sử dụng, chính do với mỗi mạng con mới sinh ra, tất cả chúng ta lại tốn thêm 2 địa chỉ ( 1 là địa chỉ mạng, 2 là địa chỉ broadcast ). Địa chỉ mạng là địa chỉ mà tổng thể bit của Host ID có giá trị là 0, ngược lại địa chỉ broadcast là địa chỉ mà toàn bộ bit của Host ID sẽ có giá trị là 1. Ví dụ với địa chỉ mạng lớp C 192.168.1.0, tất cả chúng ta sẽ có địa chỉ broadcast là 192.168.1.255, như vậy những địa chỉ mà tất cả chúng ta hoàn toàn có thể dùng được là từ 192.168.1.1 cho đến 192.168.1.254 .

3. Chia mạng con như thế nào?

Trước khi tìm hiểu về cách chia mạng con, chúng ta hãy cùng xem qua Network
Mask (mặt nạ mạng 😅) là gì đã nhé. Thực sự là việc dịch những thuật ngữ
chuyên ngành sang tiếng Việt nó hơi 🍌 nên mình vẫn giữ nguyên thuật ngữ
tiếng anh nhé. Network Mask là một địa chỉ giúp bạn xác định được đâu là
Network ID, đâu là Host ID. Vậy xác định bằng cách nào? Bằng cách chuyển
những bit của phần Network ID sang 1 và Host ID sang 0. Ví dụ với địa chỉ
10.0.0.8 sẽ có network mask mặc định là 255.0.0.0 (do 10.0.0.8
là địa chỉ lớp A và có 8 bit dành cho Network ID).

Như vậy, với việc biểu lộ những bit của Network ID là 1, tất cả chúng ta hoàn toàn có thể sử dụng phép AND thần thánh, tất cả chúng ta hoàn toàn có thể tìm được địa chỉ mạng tương ứng của một địa chỉ IP bất kể. Trở lại với ví dụ 10.0.0. 8 255.0.0.0 trên, ta có :

00001010.00000000.00000000.00001000

11111111.00000000.00000000.00000000

————————————————–

00001010.00000000.00000000.00000000

Như vậy, ta tìm được địa chỉ mạng tương ứng với địa chỉ 10.0.0. 8 là 10.0.0. 0 .

Như đã nói ở trên, chia mạng con là việc tạo ra nhiều địa chỉ mạng hơn. Vậy,
chúng ta sẽ tăng số lượng mạng bằng cách tăng số lượng bit của Network ID.
Tuy nhiên, số bit mỗi địa chỉ lại cố định, do đó chúng ta sẽ mượn một số bit
nhất định của Host ID để làm Network ID. Như vậy, khi mượn n bit, chúng ta
sẽ chia được 2n địa chỉ mạng và có 2số bit host còn lại địa chỉ host (2số bit host còn lại – 2 địa chỉ dùng
được). Ví dụ với địa chỉ mạng 192.168.1.0/24 chia thành 4 mạng con, chúng ta
sẽ mượn 2 bit phần Host ID. 192.168.1.0 =
11000000.10101000.00000001.00000000 sẽ được chia thành 4 mạng con như
sau:

192.168.1.0/26   
 = 11000000.10101000.00000001.00000000

192.168.1.64/26 
 = 11000000.10101000.00000001.01000000

192.168.1.128/26 = 11000000.10101000.00000001.10000000

192.168.1.192/26 = 11000000.10101000.00000001.11000000

STT Địa chỉ mạng Địa chỉ đầu Địa chỉ cuối Địa chỉ broadcast
0 192.168.1.0/26 192.168.1.1 192.168.1.62 192.168.1.63
1 192.168.1.64/26 192.168.1.65 192.168.1.126 192.168.1.127
2 192.168.1.128/26 192.168.1.129 192.168.1.190 192.168.1.191
3 192.168.1.192/26 192.168.1.193 192.168.1.254 192.168.1.255

Để tính nhanh địa chỉ mạng, bạn có thể thấy mỗi mạng sẽ cách nhau 28-số bit mượn, do đó bạn chỉ cần lấy địa chỉ mạng đầu tiên sau đó cộng với khoảng cách
đó sẽ ra địa chỉ mạng tiếp theo.
Để tính nhanh địa chỉ mạng, bạn hoàn toàn có thể thấy mỗi mạng sẽ cách nhau 2, do đó bạn chỉ cần lấy địa chỉ mạng tiên phong sau đó cộng với khoảng cách đó sẽ ra địa chỉ mạng tiếp theo .

4. Làm thế nào để xác định 2 thiết bị có thuộc cùng một mạng hay không?

Giả sử cho địa chỉ IP của 2 thiết bị như sau:

  • Thiết bị X: 172.16.20.30/20 hay 172.16.20.30 255.255.240.0
  • Thiết bị Y: 172.16.28.64/20 hay 172.16.28.64 255.255.240.0

Để xác lập địa chỉ mạng của một địa chỉ IP, ta sẽ sử dụng phép AND thần thánh như mình đã trình diễn ở phần 3 .

172.16.20.30 = 10101100.00010000.00010100.00011110

255.255.240.0 = 11111111.11111111.11110000.00000000

Subnet ID= 10101100.00010000.00010000.00000000 = 172.16.16.0

Cách mình trình bày ở trên là cách làm truyền thống, tuy nhiên bạn có thể
nhẩm nhanh như sau: xét thiết bị X, ta thấy octet đầu tiên là 172 nên đây là
địa chỉ mạng lớp B, Network ID mặc định của địa chỉ mạng lớp B là 16, như
vậy ở đây là mạng con đã mượn 20 – 16 = 4 bit. Mỗi mạng sẽ cách
nhau 24= 16. Do đó thiết bị X sẽ thuộc mạng 172.16.16.0. Tương tự với thiết bị Y ta cũng có thiết bị Y thuộc mạng 172.16.16.0. Do đó, 2 thiết bị sẽ thuộc cùng một mạng .

5. Vận dụng chia mạng con

Giả sử cho địa chỉ mạng 200.15.5.0 / 24 và quy mô mạng như hình bên dưới. Hãy chia mạng con sao cho tương thích .
Mô hình mạng

Như vậy, với bài này tất cả chúng ta sẽ chia địa chỉ mạng trên thành 5 mạng con tương ứng với A, B, C, D, E như trên hình. Mạng có số lượng host lớn nhất trong những mạng con là mạng D với 29 hosts. Như vậy tất cả chúng ta cần mượn 3 bit để chia được 8 mạng con và mỗi mạng sẽ có 30 địa chỉ host dùng được ( thoả nhu yếu ). Ta có 5 mạng con như sau :

  • Net A: 200.15.5.0/27
  • Net B: 200.15.5.32/27
  • Net C: 200.15.5.64/27
  • Net D: 200.15.5.96/27
  • Net E: 200.15.5.128/27 

Tuy nhiên, cách giải trên đã tối ưu hay chưa khi mà mỗi mạng với số lượng hosts khác nhau lại được chia cùng một số lượng hosts như nhau ? Do đó, với bài toán này, mình sẽ sử dụng VLSM ( Variable Length Subnet Masks ). VLSM sẽ được cho phép bạn sử dụng những mask khác nhau cho mỗi Net. Mình sẽ giải lại như sau :
Xét Net có số lượng hosts lớn nhất trước theo thứ tự là D > B > A > C > E. Đầu tiên là Net D và Net B, ta thấy số lượng hosts nằm trong đoạn từ 15-30, do đó, mình sẽ mượn 3 bit để chia. Ta được 8 mạng con :

  • Net 0: 200.15.5.0/27
  • Net 1: 200.15.5.32/27
  • Net 2: 200.15.5.64/27
  • Net 3: 200.15.5.96/27
  • Net 4: 200.15.5.128/27 
  • Net 5: 200.15.5.160/27 
  • Net 6: 200.15.5.192/27 
  • Net 7: 200.15.5.224/27

Ta sẽ lấy Net 0 và Net 1 gán tương ứng cho Net D và Net B. Với Net A gồm có 14 hosts, tất cả chúng ta sẽ lấy Net 2 mượn 1 bit sẽ chia làm 2 mạng con, mỗi mạng có 14 host dùng được .

  • Net 2a: 200.15.5.64/28
  • Net 2b: 200.15.5.80/28

Ta lấy Net 2 a gán cho Net A. Đối với Net C gồm 7 hosts ( > 6 hosts nên không hề chia tiếp ), ta lấy Net 2 b gán cho Net này. Với Net E, tất cả chúng ta chỉ cần 2 hosts gán cho 2 router nên sẽ lấy Net 3 mượn thêm 3 bit sẽ chia được 8 mạng con, mỗi mạng có 2 host dùng được. Chúng ta chỉ cần 1 mạng con tiên phong của Net 3 gán cho Net E là 200.15.5.96 / 30. Như vậy tất cả chúng ta đã chia xong và có địa chỉ mạng tương ứng như sau :

  • Net A: 200.15.5.64/28
  • Net B: 200.15.5.32/27
  • Net C: 200.15.5.80/28
  • Net D: 200.15.5.0/27
  • Net E: 200.15.5.96/30

Ghi chú: Nội dung bài viết được mình tham khảo từ

[ 1 ] IP Addressing and Subnetting for New Users : Cisco ( 27/11/2020 )

Như vậy là mình đã trình làng xong về cách chia mạng con và vận dụng nó qua một số ít ví dụ đơn cử. Nếu có bất kể yếu tố gì vướng mắc, bạn hoàn toàn có thể phản hồi vào bên dưới bài viết. Cảm ơn bạn đã theo dõi bài viết. Nếu cảm thấy bài viết có ích, hãy san sẻ cho bạn hữu cùng đọc nhé 😉

Source: https://vvc.vn
Category : Tin Mới

BẠN CÓ THỂ QUAN TÂM

Alternate Text Gọi ngay