/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

Wildcard Bits/ Wildcard Mask

Nên xem phần trước khi xem bài này:

Ôn lại cách xác định IP cho trước thuộc lớp mạng nào

Ví dụ: xác định ip 192.168.0.158/28 thuộc lớp mạng nào
Giải:
- Xét octet thứ 4 của subnet mask có: 4 bit mạng và 4 bit host-NNNNHHHH (/28: mượn 4 bit)
- Số lớp mạng: 2n = 24 = 16 subnet
- Số host trên mỗi subnet: 2h=8-n = 28-4=4 =16, chỉ có 16 - 2 = 14 (bỏ đi 1 địa chỉ mạng và 1 địa chỉ broadcast) có thể sử dụng
- Bước nhảy là 16, lấy 158 chia bước nhảy (16) được 9 còn dư (trường hợp này chúng ta không xét số dư), lấy 9 nhân bước nhảy (16) = 144.

Vậy host này thuộc lớp mạng 192.168.0.144/28 (có thể dùng tool để kiểm tra, tham khảo tại đây)


Xem ví dụ ACL trên route:
Router#show  access-lists
Standard IP access list 1
    10 permit 192.168.1.0, wildcard bits 0.0.0.255
    20 permit 192.168.2.0, wildcard bits 0.0.0.255
    30 deny   172.16.0.1
    40 permit   172.16.0.0, wildcard bits 0.0.255.255
    50 permit 10.0.0.0, wildcard bits 0.255.255.255
Wildcard mask/bits được đi kèm với 1 subnet hay 1 IP để kiểm tra và chọn ra những IP áp dụng vào cấu hình cài đặt. Trong cisco được sử dụng có 1 số trường hợp như:
-         Dynamic Routing (chỉ ra size của network hay subnet routing vd: OSPF);
-         Access Control List: chỉ IP, dãy IP sẽ được permit hay deny.

Các trường hợp của wildcard:
1. Lấy tất cả các địa chỉ IP liên tục trong 1 subnet Cơ bản wildcard bit là nghịch đảo subnet mask.

Ví dụ: Tính wildcard bit của lớp mạng 192.168.1.0/24
Cách tính:
  • Ghi subnet mask dưới dạng thập phân (1)
  • Chuyển subnet mask sang dạng nhị phân (2)
  • Nghịch đảo các bit: nghĩa là nếu bít nào bằng 1 thì chuyển thành 0, và ngược lại nếu bít nào bằng 0 thì chuyển thành 1 (3)
  • Đổi kết quả của (3) sang thập phân (4)
    Subnet Mask /24 (1)
    255
    255
    255
    0
    Binary Equivalent (2)
    11111111
    11111111
    11111111
    00000000
    Inverts to a Wildcard Mask (3)
    00000000
    00000000
    00000000
    11111111
    Wildcard Mask (Dec) (4)
    0
    0
    0
    255

    Vậy wildcard cần tìm là 0.0.0.255

    Ví dụ 2:
    Subnet Mask /25
    255
    255
    255
    128
    Binary Equivalent
    11111111
    11111111
    11111111
    10000000
    Inverts to a Wildcard Mask
    00000000
    00000000
    00000000
    01111111
    Wildcard Mask (Dec)
    0
    0
    0
    127

    Vậy wildcard là 0.0.0.127

    Ví dụ 3:
    Subnet Mask /27
    255
    255
    255
    224
    Binary Equivalent
    11111111
    11111111
    11111111
    11100000
    Inverts to a Wildcard Mask
    00000000
    00000000
    00000000
    00011111
    Wildcard Mask (Dec)
    0
    0
    0
    31

    Vậy wildcard là 0.0.0.31

    Noted: Cũng có thể tính nhanh bằng cách lấy broadcast(255) TRỪ subnet mask (nhưng chưa chắc đúng trong 1 số trường hợp)

    Broadcast Address
    255
    255
    255
    255
    Subnet Mask
    255
    255
    255
    0
    Wildcard Mask
    0
    0
    0
    255

    Danh sách wildcard:
    SlashNetmaskWildcard Mask
    /32255.255.255.2550.0.0.0
    /31255.255.255.2540.0.0.1
    /30255.255.255.2520.0.0.3
    /29255.255.255.2480.0.0.7
    /28255.255.255.2400.0.0.15
    /27255.255.255.2240.0.0.31
    /26255.255.255.1920.0.0.63
    /25255.255.255.1280.0.0.127
    /24255.255.255.00.0.0.255
    /23255.255.254.00.0.1.255
    /22255.255.252.00.0.3.255
    /21255.255.248.00.0.7.255
    /20255.255.240.00.0.15.255
    /19255.255.224.00.0.31.255
    /18255.255.192.00.0.63.255
    /17255.255.128.00.0.127.255
    /16255.255.0.00.0.255.255
    /15255.254.0.00.1.255.255
    /14255.252.0.00.3.255.255
    /13255.248.0.00.7.255.255
    /12255.240.0.00.15.255.255
    /11255.224.0.00.31.255.255
    /10255.192.0.00.63.255.255
    /9255.128.0.00.127.255.255
    /8255.0.0.00.255.255.255
    /7254.0.0.01.255.255.255
    /6252.0.0.03.255.255.255
    /5248.0.0.07.255.255.255
    /4240.0.0.015.255.255.255
    /3224.0.0.031.255.255.255
    /2192.0.0.063.255.255.255
    /1128.0.0.0127.255.255.255
    /00.0.0.0255.255.255.255

    * Quy tắc match của wildcard mask:
    Wildcard Mask được ghi ở dạng IP nhưng trúc khá đặc biệt, khi đổi ra nhị nhân các bit của IP sẽ tương ứng với từng bit của wildcard mask, những bit nào của wildcard mask:
    - Bằng 0 thì bit của IP tương ứng sẽ được giữ nguyên (fixed cố định);
    - Bằng 1 thì bit của IP được phép thay đổi trong khoảng 0 hoặc 1

    Ví dụ 4:
    IP Address:     172.16.1.0
    10101100
    00010000
    00000001
    00000000
    Wildcard Mask:  0.0.0.255
    00000000
    00000000
    00000000
    11111111



    Với nguyên tắc trên ta thấy tất cả các bit trong octet cuối cùng của wildcard mask là 1 nên các bit tương ứng của IP sẽ thay đổi.
       
    172.16.1.0
    10101100
    00010000
    00000001
    00000000
    172.16.1.1
    10101100
    00010000
    00000001
    00000001
    172.16.1.2
    10101100
    00010000
    00000001
    00000010
    172.16.1.3
    10101100
    00010000
    00000001
    00000011
    172.16.1.4
    10101100
    00010000
    00000001
    00000100
    172.16.1.5
    10101100
    00010000
    00000001
    00000101
    172.16.1.6
    10101100
    00010000
    00000001
    00000110
    ..
    172.16.1.253
    10101100
    00010000
    00000001
    11111100
    172.16.1.254
    10101100
    00010000
    00000001
    11111110
    172.16.1.255
    10101100
    00010000
    00000001
    11111111

    Các IP address sẽ được lấy ra và đưa vào vùng cài đặt sẽ là từ: 172.16.1.0 đến 172.16.1.0.255

    Ví dụ 5: 
    IP Address:     172.16.1.32
    10101100
    00010000
    00000001
    00100000
    Wildcard Mask:  0.0.0.5
    00000000
    0000000000000000
    00000101



    Ta thấy chỉ có bít cuối cùng và bit thứ 6 của wildcard bằng 1, có nghĩa là bit cuối cùng và bit thứ 6 của ip sẽ được phép thay đổi, các bit còn lại là giữ nguyên.

    Ban đầu chúng ta liệt kê tất cả các ip từ bit thứ 6 đến bit thứ 8 (cuối cùng).
    172.16.1.32



    00100000

    172.16.1.33



    00100001

    172.16.1.34



    00100010
    Loại
    172.16.1.35



    00100011
    Loại
    172.16.1.36



    00100100

    172.16.1.37



    00100101

    172.16.1.38



    00100110
    Loại
    172.16.1.39



    00100111
    Loại












    Theo yêu cầu bit thứ 7 của IP sẽ cố định, nên các IP address sẽ được lấy ra và đưa vào vùng cài đặt sẽ là: 
              + 172.16.1.32
              172.16.1.33
              172.16.1.36
              172.16.1.37

    2. Lấy địa chỉ IP/subnet chẵn lẻ

    Để biết IP/subnet chẵn hay lẻ ta căn cứ vào bit cuối cùng của chúng trong octet ở dạng thập phân là chẵn hay lẻ
    Ví dụ:
    §  IP lẻ:               172.16.1.1
    §  IP chẵn:          172.16.1.2

    Ví dụ:
    §  Subnet lẻ:               192.168.1.0
    §  Subnet chẵn:          192.168.2.0

    Và khi convert sang nhị phân bit cuối cùng của octet nếu là:
    §  1 => IP lẻ
    §  0 => IP chẵn

    Ví dụ 6:
    Lấy tất cả subnet lẻ của danh sách subnet mask:
    192.168.0.0/24
    192.168.1.0/24
    192.168.2.0/24
    192.168.3.0/24
    192.168.4.0/24
    192.168.5.0/24
    192.168.6.0/24
    192.168.7.0/24
    192.168.8.0/24

    Viết chúng dưới dạng nhị phân:
    192.168.0.0
    1100 0000
    1010 1000
    0000 0000
    0000 0000
    192.168.1.0
    1100 0000
    1010 1000
    0000 0001
    0000 0000
    192.168.2.0
    1100 0000
    1010 1000
    0000 0010
    0000 0000
    192.168.3.0
    1100 0000
    1010 1000
    0000 0011
    0000 0000
    192.168.4.0
    1100 0000
    1010 1000
    0000 0100
    0000 0000
    192.168.5.0
    1100 0000
    1010 1000
    0000 0101
    0000 0000
    192.168.6.0
    1100 0000
    1010 1000
    0000 0110
    0000 0000
    192.168.7.0
    1100 0000
    1010 1000
    0000 0111
    0000 0000
    192.168.8.0
    1100 0000
    1010 1000
    0000 1000
    0000 0000

    Ta thấy 2 octet đầu tiên là cố định, octet thứ 3 là có sự thay đổi. Có thể viết lại octet thứ 3 làm 2 bảng như sau:

    Tất cả các subnet chẵn
    0
    0000 0000
    2
    0000 0010
    4
    0000 0100
    6
    0000 0110
    8
    0000 1000

     Tất cả các subnet lẻ
    1
    0000 0001
    3
    0000 0011
    5
    0000 0101
    7
    0000 0111

    Nhận xét:
    + Hai octet đầu tiên của IP luôn cố định nên chúng ta sử dụng wildcard là: 0000 0000.0000 0000
    + Octet thứ 3 có sự thay đổi nên wildcard 1111 1111 (/24 nên tất cả các bit trong octet này phải bằng 1), vì bit cuối cùng của octet này cố định, theo phân tích trên là bít cuối cùng của 2 bảng trên cố định nên wildcard dùng cho trường hợp này là 1111 1110 (254)
    + Octet thứ 4 là dãy các ip chạy từ 0 -> 255 (thay đổi) nên tất cả các bit của octet này là 1111 1111 (255)

    Vậy wildcard dùng trong trường hợp này sẽ là: 0.0.254.255

    Ví dụ 7: Lấy tất cả các địa chỉ IP chẵn của lớp mạng 172.16.1.128/26
    Subnet Mask /26
    255
    255
    255
    192
    Binary Equivalent
    11111111
    11111111
    11111111
    11000000
    Inverts to a Wildcard (a)
    00000000
    00000000
    00000000
    00111111

    Khi xét tính chẵn lẻ trong wildcard thì bit cuối của octet cần xét phải là 0, nên kết quả (a) bảng trên ta viết lại là: 00111110.

    Inverts to a Wildcard (a)
    00000000
    00000000
    00000000
    00111110
    Wildcard Mask (Dec)
    0
    0
    0
    62


    Vậy để lấy tất cả các IP theo yêu cầu, ta sử dụng:
    Address: 172.16.1.128
    Wildcard: 0.0.0.62

    3. Lấy địa chỉ IP trong nhiều subnet

    Ví dụ 8:
    Tính wildcard mask cho dãy địa chỉ từ 172.16.1.0 đến 172.16.1.68
    Thực tế không có một wildcard mask có thể lấy match được tất cả các IP nằm trong dãy IP từ 0->68 nên ta phải chia ra thành từng mạng nhỏ (subnet) và sau đó tính wildcard mask cho từng subnet đó.
    • 172.16.1.0 -> 172.16.1.63 (I)
    • 172.16.1.64 -> 172.16.1.67 (II)
    • 172.16.1.68 (III)

    Cách 1:
    (I):
    Subnet Mask /26
    255
    255
    255
    192
    Binary Equivalent
    11111111
    11111111
    11111111
    11000000
    Inverts to a Wildcard Mask
    00000000
    00000000
    00000000
    00111111
    Wildcard Mask (Dec)
    0
    0
    0
    63

    (II):
    Subnet Mask /30
    255
    255
    255
    252
    Binary Equivalent
    11111111
    11111111
    11111111
    1111100
    Inverts to a Wildcard Mask
    00000000
    00000000
    00000000
    00000011
    Wildcard Mask (Dec)
    0
    0
    0
    3

    (III):
    Subnet Mask /32
    255
    255
    255
    255
    Binary Equivalent
    11111111
    11111111
    11111111
    1111111
    Inverts to a Wildcard Mask
    00000000
    00000000
    00000000
    00000000
    Wildcard Mask (Dec)
    0
    0
    0
    0

    Cách 2:
    (I): là dãy IP từ 172.16.1.0 -> 172.16.1.63 có dạng 172.16.1.00xxxxxx
    => wildcard mask của (I): 172.16.1.0 0.0.0.63

    (II): là dãy IP từ 172.16.1.64 -> 172.16.1.67 có dạng 172.16.1.010000xx
    => wildcard mask của (II): 172.16.1.64 0.0.0.3

    (III):172.16.1.68 là một host

    => wildcard mask của dãy (III):: 172.16.1.68 0.0.0.0

    Tóm lại:
    Để tính wildcard chúng ta có thể:

    1. Nghịch đảo subnet mask

    2. Nếu xét tính chẵn lẻ thì căn cứ vào bit cuối cùng và tuân theo quy tắc match

    3. Quy tắc match:
              - Bằng 0 thì bit của IP tương ứng sẽ được giữ nguyên (fixed cố định);
              - Bằng 1 thì bit của IP được phép thay đổi trong khoảng 0 hoặc 1

    Tham khảo thêm tại đây


    Xong!

    /*header slide*/