Thứ Ba, 26 tháng 8, 2014

Chia địa chỉ IP

Xin hướng dẫn các bạn các kiến thức cần nắm được để có thể chia được địa chỉ IP


Để chia địa chỉ IP các bạn cần nắm lại một số kiến thức như sau:

- Địa chỉ IPv4 có độ dài là 32 bit xem link này để biết thêm

- Biết cách chuyển đổi qua lại giữa số nhị phân và thập phân

- Tính được lũy thừa của 2 mũ x

VD:

2 mũ 0 =1
2 mũ 1 =2
2 mũ 2 =4
2 mũ 3 =8
2 mũ 4 =16
2 mũ 5 =32
2 mũ 6 =64
2 mũ 7 =128
2 mũ 8 =256
2 mũ 9 =512
2 mũ 10 =1024
- Hiểu được lí do tại sao người ta lại nói dùng n bit sẽ biểu diễn được 2 mũ n giá trị khác nhau

VD: dùng 3 bit ta sẽ biểu diễn được 2 mũ 3 = 8 giá trị là:

000 
001
010
011
100
101
110
111

Hiểu được cái này sau này sẽ giúp ta tính nhẩm được địa chỉ IP rất nhanh.

VD người ta cho bạn 1 địa chỉ IP có dạng: 192.168.100.0/26(/26 là cách ghi tắt cho nhanh khi ghi SM, tức là 26 con số 1 tính từ bên trái qua), ta có thể tính nhẩm được mỗi nhánh mạng của nó sẽ có 64 giá trị có thể xài được(ở đây chưa tính -2 cho dễ hiểu).


Vì sao lại ra số 64? 

Vì 32(độ dài IPv4) - 26(cho sẵn ở trên) = 6 và 2 mũ 6 = 64
Trường hợp 1: Chỉ chia cho 1 nhánh mạng
Các bạn cứ tính:

 2 mũ 0

rồi 2 mũ 1

2 mũ 2
...

2 mũ x
Đến khi nào mà giá trị của 2 mũ x sau khi đã trừ cho 2 mà còn lớn hơn hoặc bằng giá trị đề cho thì dừng lại và lấy 32 - x = y
Số y này chính là số lượng con số 1 có trong SM tính từ bên trái qua 
2 mũ x sẽ là giá trị của bước nhảy
Những giá trị mà bạn sử dụng được sẽ nằm trong khoảng từ 0 đến bước nhảy(nhưng bỏ đi địa chỉ đầu vì là địa chỉ mạng và địa chỉ kế cuối vì nó là địa chỉ Broadcast)
VD: Cho địa chỉ có dạng 192.168.10.0, yêu cầu chia nó để đặt cho nhánh mạng có số lượng host là 70

Giải

Tính:

2 mũ 0  = 1

2 mũ 1 = 2
...

2 mũ 7 = 128

Ta thấy 128 - 2 = 126 >=70 nên dừng lại, vậy ta dừng lại tại 2 mũ 7

Lấy 32(chiều dài của IPv4) - 7(dừng lại 2 mũ 7 nên lấy số 7) = 25, vậy SM sẽ là /25

Bước nhảy sẽ là 128, liệt kê ra ta thấy:
0
|
128
|
256(không được vì vượt quá 255 rồi)
Vậy giá trị ta sử dung được là từ 1 đến 126 vì bỏ đi 0 và 127

Nếu ghi đầy đủ sẽ là: 192.168.10.1/25 đến 192.168.10.126/25

Nếu ghi chi tiết sẽ là:

Từ
          IP: 192.168.10.1
          SM: 255.255.255.128
Đến

         IP: 192.168.10.126

         SM: 255.255.255.128 
  
Trường hợp 2:Cách chia địa chỉ IP trong trường hợp cần chia cho nhiều nhánh mạng khác nhau. 
VD: Cho địa chỉ IP là: 113.131.1.0, cần chia địa chỉ này để đặt cho 2 nhánh mạng có 70 host và 15 host

Giải:

Khi chia cho nhiều nhánh mạng thì chia theo thứ tự từ cao xuống thấp theo số lượng host, ở bài này ta sẽ chia cho 70 host trước

Cách làm tương tự cứ tính

2 mũ 0

2 mũ 1

....
2 mũ 7 = 128 trừ  2 bằng 126 >= 70

Vậy ta dừng lại tại giá trị là 2 mũ 7, lập tức lấy 32 - 7 =25. Vậy SM sẽ là /25 tức là: 255.255.255.128

Bước nhảy sẽ là:

0
|
128
|
256 (không được vì vượt quá 255 rồi)

Vậy địa chỉ IP ta có thể đặt cho nhánh mạng có số lượng host 70 nằm trong khoảng 1 đến 126(vì bỏ đi 0 là địa chỉ mạng và 127 là địa chỉ Broadcast)

Cụ thể sẽ là:

Từ
   IP:   113.131.1.1 
   SM: 255.255.255.128

đến
   IP:   113.131.1.126
   SM: 255.255.255.128

Bây giờ ta đi chia tiếp cho trường hợp 15 host, ở đây có 2 cách để chia trong trường hợp này:

Cách 1: Lấy giá trị bước nhảy ở 128 để chia tức là địa chỉ ta cần đi chia lúc này là 113.131.1.128 chứ không phải là 113.131.1.0 lúc đầu nữa.

Ta thấy 2 mũ 5 = 32 trừ 2 bằng 30 >=15 vậy ta đi tính: 32 - 5 = 27 ta được kết quả SM là /27 tức là:
255.255.255.224

Bây giờ ta đi tính bước nhảy  nhưng lúc này không phải bắt đầu là 0 nữa mà 128

128
|
160
|
196
|
....

Ta chọn kết quả nằm trong khoảng 128 -> 160, vậy ta được kết quả là 129 -> 158.

Trả lời chi tiết sẽ là:

Từ

IP:    113.131.1.129
SM:  255.255.255.224

Đến

IP:    113.131.1.158
SM:  255.255.255.224

Cách 2: Tăng Octect thứ 3 lên 1 giá trị và chia lại từ đầu giống như trong trường hợp 70 host phía trên là được, tức là lúc này ta đi chia địa chỉ 113.131.2.0
Kết luận:

-  Ta thấy bài toán chia địa chỉ IP là một bài toán dễ và không quá khó như 1 số bạn đã nghĩ

- Các bạn nên xem lại tạo sao mình không thể làm được bài toán chia địa chỉ IP, có thể xem lại Link này để biết thêm

- Các bạn phải luyện được kĩ năng tính nhẩm nếu có thể khi làm các bài toán chia địa chỉ IP này, bởi vì thật ra ở trượng  hợp chia vài trăm host ta hoàn toàn có thể tính nhẩm được

- Phải làm được bài toán khi người ta cho 1 địa chỉ IP nào đó hỏi nó có nằm trong Subnet(nhánh mạng) nào đó hay không?

VD:
Hỏi địa chỉ IP: 113.131.1.8 có nằm trong Subnet 113.131.1.128/25 hay không?

Ta thấy SM /25 tức là còn lại 7 bit(32-25) là 2 mũ 7 bằng 128 nên bước nhảy sẽ là:

0
|
128
|
256(Không được vì vượt quá 255 rồi)

Ta thấy 8 nằm trong khoảng từ 0 đến 128 nên địa chỉ IP: 113.131.1.8 không nằm trong Subnet 113.131.1.128/25 mà nằm trong Subnet là 113.131.1.0/25 

***ghi chú:sưu tầm

Không có nhận xét nào:

Đăng nhận xét