Tính Wildcard Mask trong ACLs

Các bài toán tính wildcard mask

1. Wildcard mask match 1 host

Vd: Tính wildcard mask match host 192.168.1.1
Theo nguyên tắc: bit 0 kiểm tra – bit 1 bỏ qua
-> Địa chỉ IP: 192.168.1.1 0.0.0.0 hoặc từ khóa “host”

2. Wildcard mask match tất cả địa chỉ IP

Vd: Tính wildcard mask match tất cả địa chỉ IP
Theo nguyên tắc: bit 0 kiểm tra – bit 1 bỏ qua
-> Địa chỉ IP: 192.168.1.1 255.255.255.255 hoặc từ khóa “any”

3. Wildcard mask match 1 subnet

Vd: Tính wildcard mask match subnet 192.168.1.0/24
Cách tính: Lấy 255.255.255.255 trừ đi subnet mask của subnet
-> Địa chỉ IP: 192.168.1.1 0.0.0.255

4. Tính Wildcard mask match range địa chỉ IP liên tục

Vd: Tính wildcard mask match range từ 192.168.2.0 đến 192.168.4.255
Cách tính: Lấy địa chỉ cuối trừ địa chỉ đầu
-> Địa chỉ IP: 192.168.2.0 0.0.2.255

5. Tính widcard mask match 1 số IP add đầu tiên



Vd: Cho địa chỉ IP 192.168.1.0, tính wildcard mask match X host đầu tiên
-> Dải địa chỉ cần match: 192.168.1.0 - > 192.168.1.X
-> wildcard mask: 0.0.0.X (lấy địa chỉ cuối trừ địa chỉ đầu)
-> Địa chỉ IP: 192.168.1.0 0.0.0.X

6. Tính wildcard mask của nửa trên (upper half) hoặc nửa dưới (lower half) 1 dải mạng:

Vd: Cho địa chỉ IP 192.168.1.0, tính wildcard mask match nửa dải IP phía trên và dưới:
-> Dải địa chỉ nửa trên: 192.168.1.0 - > 192.168.1.127
-> wildcard mask: 0.0.0.127 (lấy địa chỉ cuối trừ địa chỉ đầu)
-> Địa chỉ IP: 192.168.1.0 0.0.0.127

-> Dải địa chỉ nửa dưới: 192.168.1.128 - > 192.168.1.255
-> wildcard mask: 0.0.0.127 (lấy địa chỉ cuối trừ địa chỉ đầu)
-> Địa chỉ IP: 192.168.1.128 0.0.0.127

7. Tính wildcard mask match IP lẻ, hoặc IP chẵn

1 địa chỉ Ip lẻ / chẳn là địa chỉ có octet cuối cùng dạng thập phân là số lẻ / chẳn

Vd:     IP lẻ - 192.168.1.1
          IP chẵn – 192.168.1.2
Nhận xét: bit cuối cùng của IP lẻ luôn là bit 1, bit cuối cùng của IP chẵn luôn là bit 0. Vậy wildcard mask thỏa mãn phải tạo ra một dải địa chỉ IP có bit cuối của octet cuối không đổi bằng 0 hoặc 1.

Giải pháp: để router luôn match bit cuối của octet cuối của địa chỉ IP, bit tương ứng trên wildcard mask phải là bit 0

Vd1: Cho địa chỉ IP: 192.168.1.0, tính wildcard mask match tất cả IP chẵn:
-> wildcard mask: 0.0.0.254 (dạng nhị phân: 00000000.00000000.00000000.11111110)
-> Địa chỉ IP: 192.168.1.0 0.0.0.254 (IP chẵn có bit cuối luôn bằng 0)

Vd2: Cho địa chỉ IP: 192.168.1.0, tính wildcard mask match tất cả IP lẻ
-> wildcard mask: 0.0.0.254 (dạng nhị phân: 00000000.00000000.00000000.11111110)
-> Địa chỉ IP: 192.168.1.1 0.0.0.254 (IP lẻ có bit cuối luôn bằng 1)

8. Tính wildcard mask match 1 range IP address không liên tục

Đây là dạng toán tính wildcard mask phức tạp nhất vì admin không có cách nào sử dụng 1 wildcard mask để tạo thành địa chỉ IP match tất cả dải IP ban đầu:

Vd: Tính wildcard mask match dải: 192.168.1.15 - > 192.168.1.75

Nhận xét: Đây là một dải IP không liên tục , không có 1 wildcard mask nào có thể thỏa mãn dải không liên tục. Tuy nhiên đối với những dải IP liên tục thì luôn có wildcard mask thỏa mãn.

Giải pháp: Chia dải IP ban đầu thành những dải nhỏ mà trong đó luôn tìm được 1 wildcard mask thỏa mãn mỗi dải. Vậy cách chia như thế nào? Nhắc lại: mỗi bit trong octet phần host đại diện cho một nhóm các host gọi là một block size. Bit cuối cùng là block size 1 vì nó thể hiện 1 host, tương tự bit đầu tiên là block size 128. Và, mỗi block size luôn tìm được 1 wildcard mask thỏa mãn.

Chia dải thành các block size:
- 192.168.1.15 (1)
- 192.168.1.16 - > 192.168.1.31 (2)
- 192.168.1.32 - > 192.168.1.63 (3)
- 192.168.1.64 -> 192.168.75 (4)

Tính wildcard mask cho mỗi block size:
- (1): 192.168.1.15 0.0.0.0 - > IP host
- (2): 192.168.1.16 0.0.0.15
- (3): 192.168.1.32 0.0.0.31
- (4): Chưa có wildcard mask phù hợp, ta phân tích dạng nhị phân octet cuối để tách tiếp wildcard mask:
.64: 01000000
.75: 01001011
-> Ta tách thành: 01000000 -> 01000111 (5)
01001000 -> 01001011 (6)
-> (5): 192.168.1.64 0.0.0.7
(6): 192.168.1.72 0.0.0.3

Tổng kết: Như vậy, từ dải IP ban đầu, ta tách thành 6 dải nhỏ (1)(2)(3)(4)(5)(6). Quả thật là một công trình “vĩ đại”…


(st)



Để bắt đầu tham gia Giao dịch tài chính:


6 comments :

  1. ô đây là bài lần trước mình viết đây mà, nhớ thế :D

    ReplyDelete
  2. CẢM ƠN CHỦ THỚT VÌ BÀI VIẾT BỔ ÍCH! Nhưng mình thấy phần 4 và 5 có vấn đề, ví như địa chỉ 192.168.4.0 <-> 192.168.0000 0100.0 và wildcard mask: 0.0.0000 0020.255 thì rõ ràng là không phù hợp ở bít 3 và 2 (cực phải)dẫn đến địa chỉ 192.168.4.0 là ko hợp lệ và cả 5 cũng vậy nếu X = 25 <-> 0001 1001 thì với địa chỉ 192.168.1.4 thì 4 <->
    0000 0100 thì khi match(kiểm tra) chắc chắn là ko phù hợp (sẽ không nằm trong dải 192.168.1.0 0.0.0.25). Theo mình nghĩ thì 4 và 5 đều phải tính theo 8 (chỉa nhỏ địa chỉ để có subnet mask hợp lí, rùi lấy 255.255.255.255 - subnet mask đó). Đấy là suy nghĩ của mình nếu có sai gì mong bạn chỉ giúp. :)

    ReplyDelete
  3. hay lắm cám ơn bạn

    ReplyDelete
  4. làm thế nào để biết một dãy các địa chỉ liên tục hay không liên tục

    ReplyDelete
  5. Bạn Dương Minh Đức nói đúng rồi, mình kiểm đi kiểm lại nhiều lần vẫn cứ thấy phần 4 và 5 có gì đó sai sai. Wildcard mask khi chuyển sang nhị phân thường phải là một dãy số 1 đi kèm với nhau chứ nếu như ad tính thì 0.0.2.255 => 0.0.00000010.255 vậy tại octet thứ 3 có bit 1 xen giữa bơ vơ như vậy thì là sai rồi. Nên tính theo cách thứ 8 cho phần 4 và 5 luôn.

    ReplyDelete

Các bạn có thể viết lời nhận xét cho bài viết, nhưng cần tuân thủ một số quy tắc sau:

» Các nhận xét/bình luận phải nghiêm túc, không dung tục, không spam.
» Nội dung phải liên quan tới chủ đề bài viết.
» Viết bằng tiếng việt có dấu hoặc tiếng Anh. Nội dung viết không dấu sẽ bị xóa.
» Hãy để lại tên của bạn khi nhận xét/bình luận, để tôi có thể dễ dàng trả lời bạn khi cần.

Chúc các bạn tìm được những kiến thức bổ ích khi tình cờ ghé thăm blog này.