Hướng dẫn chia địa chỉ mạng con theo phương pháp tối ưu VLSM (Nguồn sinhvienit.net !)

6,418 views
Skip to first unread message

Mai Trung Tấn

unread,
Nov 12, 2012, 2:37:50 AM11/12/12
to lop...@googlegroups.com

Hướng dẫn chia địa chỉ mạng con theo phương pháp tối ưu VLSM

Qua quá trình giảng dạy các sinh viên, được biết một số bạn vẫn còn bỡ ngỡ với cách 
chia địa chỉ mạng con theo VLSM, phương pháp này sẽ giúp chúng ta kiểm soát được số mạng mới sinh ra, số mạng đã dùng, số mạng dư thừa còn lại, sau đây tôi sẽ hướng dẫn các bạn thực hiện việc này một cách dễ dàng bằng ví dụ minh họa. Trước hết, chúng ta phải hiểu rõ cấu trúc của địa chỉ IP v4 và ý nghĩa của một số khái niệm: ví dụ các lớp địa chỉ IP v4, Net_id, host_id, Subnet Mask, giải địa chỉ khả dụng, địa chỉ mạng, … 
Để chia thành thạo, chúng ta cần nắm rõ một số khái niệm và công thức sau đây: 
- Bit, byte. 
- Khái niệm về số nhị phân, thập phân. 
- Phép toán AND 
- Các biến đổi từ nhị phân sang thập phân, từ thập phân sang nhị phân. 
- Cấu trúc địa chỉ IP, giới hạn của các lớp IP 
- Khái niệm về default mask, mask, subnet, subneting ....! 
- Các địa chỉ riêng 
Lưu ý: 
- Địa chỉ mạng (subnet) : tất cả các bit dành cho phần host bằng 0 
- Địa chỉ broadcast: tất cả các bit dành cho phần host bằng 1. 
- Địa chỉ đầu tiên hợp lệ: là địa chỉ liền sau địa chỉ mạng (subnet) 
- Địa chỉ cuối cùng hợp lệ: là địa chỉ liền trước địa chỉ broadcast 
=> phải hiểu rõ và phân biệt khái niệm n và m là gì để áp dụng công thức cho đúng 

- Công thức: 
+ Số subnet được tạo ra: 2m (m: số bit mượn của phần Host ID) (Chú ý: đáng lẽ 
công thức này phải là 2m – 2 vì phải loại trừ đi 2 mạng đầu tiên – subnet zero và 
mạng cuối cùng – subnet broadcast, nhưng với các dòng Router hiện nay của Cisco 
đã hỗ trợ lệnh Router(config)# ip subnet-zero do đó ta vẫn có thể sử dụng 2 mạng 
đó mà không phải loại trừ bỏ đi) 
+ Số host / subnet: 2n
– 2 (n: số bit còn lại của phần Host ID sau khi bị mượn m bit) 
+ Subnet Mask mới = Subnet Mask cũ + m (là số bit vừa bị mượn) 
+ Địa chỉ khả dụng là các địa chỉ IP có thể gán cho mỗi host, thiết bị 

(Lưu ý: có nhiều cách hoặc thủ thuật để tính địa chỉ mạng con, nhưng cách nào cũng phải dựa vào nền tảng gốc đó là sự thay đổi các bit mượn để sinh ra mạng con mới, do đó tốt nhất chúng ta nên tham khảo theo phương pháp VLSM) 

VÍ DỤ MẪU 1: 

Cho giải địa chỉ 172.35.0.0/16 , hãy Subnet để cấp cho các mạng con: 
A: 320 host 
B: 115 host 
C: 80 host 
D: 30 host 
E: 2 host 
F: 2 host 
G: 2 host 
theo phương pháp VLSM? 




Hướng dẫn giải mẫu: 
- Theo đầu bài cho địa chỉ ban đầu là X: 172.35.0.0/16 
=> đổi ra hệ nhị phân ta được: 
10101100.00100011.00000000.00000000 
11111111.11111111.00000000.00000000 

(Phần gạch chân chính là phần bit host, việc chia từ địa chỉ trên thành nhiều Subnet chính là việc biến đổi – hay gọi là mượn các bit phần host_id chuyển thành các bit Net_id; Nhìn vào số bit 1 của địa chỉ Subnet Mask ta sẽ phân biệt được danh giới: các bit bên trên bit 1 chính là Net_id, các bit bên trên bit 0 là host_id) 
- B1: Theo VLSM thì ta sẽ phải chia X cho các mạng theo chiều giảm dần, tức là chia cho mạng có số host cao nhất rồi thấp nhất cuối cùng-> sắp xếp lại ta có: 
+A: 320 
+B:115 
+C:80 
+D:30 
+E:2 
+F:2 
+G:2 
- B2: +Thực hiện chia X cho mạng A đầu tiên, áp dụng công thức: 2n 
- 2 ≥ 320 => n=9 (chính là số bit còn lại chưa bị mượn) => số bit đã mượn là m= 32 (là tổng số bit của 1 địa chỉ IP v4) – 16 (số bit thuộc phần Net_id của địa chỉ đã cho) – 9 ( số bit còn lại) = 7 => SM’ (Subnet Mask mới) = SM (Subnet Mask cũ) + m = 16 + 7 = 23 ( viết tắt là /23) & số Subnet (mạng con) được tạo ra là: 2m = 27 = 128 với SM’ thay đổi từ /16 thành /23 (các bit trong khoảng này của X đã chuyển sang Octet 
thứ 3) nên ta có 







--
Họ và Tên: Mai Trung Tấn
Trường: ĐHSPKT Hưng Yên
Khoa: Công Nghệ Thông Tin
Lớp: TK8.2NE
Chuyên ngành: Mạng Máy Tính và Truyền Thông
Online : Skype: uocmokhongchodoi
                        maitrun...@hotmail.com

Trung Đức Nguyễn

unread,
Nov 12, 2012, 5:20:36 AM11/12/12
to lop...@googlegroups.com
Thanks Tấn vì sự nhiệt tình ! Cái này mình đang rất cần  ! hì hì !

Mai Trung Tấn

unread,
Nov 12, 2012, 7:09:18 AM11/12/12
to lop...@googlegroups.com
thêm cái này cho các bạn tham khảo, không nhớ nguồn từ trang nào nữa, hj

CÁCH TÍNH NHẨM CHIA SUBNET CỰC NHANH

PHƯƠNG PHÁP CHIA SUBNET BẰNG CÁCH ĐẾM LÓNG NGÓN TAY

Khi tính toán IP, chia subnet thì chúng ta thường áp dụng công thức để tính toán.

Công thức tính  là 2^n và 2^h - 2 ( 2^m -2 ),

-Để tính tổng số subnet có được sau khi chia ta dùng công thức 2^n, trong đó n là số bit mượn để chia subnet trong octet đó (mượn làm network id).
-Để tính tổng số host/subnet ta dùng công thức 2^h-2, trong đó h là tổng số bit còn lại dùng làm host sau khi đã mượn . Ta phải trừ 2 vì cần bỏ địa chỉ subnet id và broadcast.

Nói sơ sơ qua cách tính truyền thống như vậy thôi, giờ chúng ta tìm hiểu cách nhẩm nhanh bằng cách đếm lóng tay nhé!

PHƯƠNG PHÁP CHIA SUBNET BẰNG CÁCH ĐẾM LÓNG NGÓN TAY


 Đầu tiên các bạn xòe bàn tay trái ra và đếm theo hình:

Đếm theo số màu đen nhé!


Các bạn để ý bàn tay chúng ta có tất cả 14 lóng tay, mỗi lóng tay tương trưng cho 1 bit nhé! ^^

Đếm 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384.
Đếm đi đếm lại cho thuộc đi nhé các bạn.

Để tính tổng số lượng Subnet id có được sau khi chia, ta đếm số bit mượn làm subnet id trong octet đó là ra. Mượn 3 bit thì đếm 2 4 8, mượn 4 bit thì đếm 2 4 8 16, giá trị của bit đếm sau cùng chính là tổng số subnet id sau khi được chia ra.

Ví dụ:  10.10.0.0 /13  ---> mượn 5 bit  ---> đếm 2 4 8 16 32. Vậy mạng này có 32 subnet.

-  Để tính bước nhảy trong mỗi subnet id. Ta đếm số bit còn lại dùng làm host trong riêng octet đó. Giá trị của bit được đếm sau cùng cũng là giá trị của bước nhảy trong octet đó.

Ví dụ: 172.35.0.0/19
 
. Tức là địa chỉ lớp B sẽ mượn 3 bit ở octet thứ 3 làm subnet id. Dùng phương pháp đếm ta có 2 4 8, đủ 3 bit mượn rồi, vậy tổng số subnet id là 8. Ta biết trong octet thứ 3 sau khi cho mượn 3 bit làm net id thì còn lại 5 bit làm host, vậy ta đếm 2 4 8 16 32, đủ 5 bit rồi, giá trị là 32, và cũng chính là bước nhảy của subnet id., thử xem nào:

-172.35.0.0/19
 

-172.35.32.0/19
 

-172.35.64.0/19
 

-172.35.96.0/19
 

-172.35.128.0/19
 

-172.35.160.0/19
 

-172.35.192.0/19
 

-172.35.224.0/19
 

Ta có tổng cộng 8 subnet id, với bước nhảy là 32.

Để tính địa chỉ broadcast của một subnet id ta lấy subnet id kế tiếp giảm 1. Ví dụ, để tính broadcast của subnet id 172.35.64.0/19
 
, ta lấy subnet id kế tiếp là 172.35.96.0/19
 
 giảm 1 == 172.35.95.255/19
 
 đây chính là broadcast của subnet id 172.35.64.0

Để tính số host trong một subnet, ta đếm toàn bộ số bit host còn lại trong subnet và lấy giá trị bit sau cùng đó -2, Lưu ý là không phân biệt octet. Nhắc lại, ta lấy giá trị của bit được đếm sau cùng - 2 ta được số host trong subnet id có thể xài.
Trong ví dụ subnet 172.35.64.0/19
 
, ta nhận biết toàn bộ số bit dùng làm host còn lại là 13. Ta đếm 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192, đủ 13 bit rồi, ok, số host trong mạng sẽ là 8192 -2 = 8190. Vì sao -2, vì ta phải trừ bỏ địa chỉ subnet id và broadcast. Hay đơn giản hơn có thể nhận thấy là số host có thể xài được trong dãy:
Và đống thời nó cũng lọt giữa 2  subnet id và broadcast.

Lưu ý: Phương pháp đếm từ 2 không được dùng để tính tổng số giá trị của 1 octet chạy từ 0->255. Hay nói cách khác là không được dụng để tính tổng giá trị của 1 dãy bit như 10101101. Để tính tổng số giá trị của dãy trên ta phải đếm từ 1, cộng các giá trị có bit 1 với nhau.

Ngoài ra, yêu cầu các bạn cần nhớ và thuộc:

1xxxxxxx =128
11xxxxxx =192
111xxxxx =224
1111xxxx =240
11111xxx =248
111111xx =252
1111111x =254
11111111 =255
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256

Các bạn cũng có thể dùng bàn tay phải để ghi nhớ các giá trị trên , dùng nhẩm nhanh subnet mask của mạng.



Mượn 1 bit : 128
Mượn 2 bit : 192
Mượn 3 bit : 224
Mượn 4 bit : 240
Mượn 5 bit : 248
Mượn 6 bit : 252
Mượn 7 bit : 254
Mượn 8 bit : 255

Ví dụ : 10.10.0.0 /13 --mượn 5 bit ---> S/M: 255.248.0.0
           155.55.3.32 /28 -- mượn 12 bit = 8 +4  ----> S/M: 255.255.255.240

Nếu các bạn nhuần nhuyễn cách tính này, tôi tin rằng các bạn sẽ tính toán, chia subnet rất nhanh!!

Vào 17:20 Ngày 12 tháng 11 năm 2012, Trung Đức Nguyễn <trungduc...@gmail.com> đã viết:

Thanks Tấn vì sự nhiệt tình ! Cái này mình đang rất cần  ! hì hì !

hang nguyen

unread,
Nov 12, 2012, 10:42:08 AM11/12/12
to lop...@googlegroups.com
Cach-Subnet-Theo-VLSM.rar

đào nhung

unread,
Nov 12, 2012, 10:26:23 PM11/12/12
to loptk82
hang oi quy dih x12  hay x22 the nao minh ko hieu , cau nhin chia cho mang c 80host nha,sao lai bat dau tu 172.35.2.128/25 ma ko dung 172.35.3.128/25, giai thich cho minh fi


2012/11/12 hang nguyen <hang...@gmail.com>



phan tuyen

unread,
Nov 14, 2012, 8:44:22 AM11/14/12
to lop...@googlegroups.com
Vì đấy là địa chỉ mạng cậu ạ
Reply all
Reply to author
Forward
0 new messages