محاسبه wildcard mask های پیچیده در Access Control List

مبنای محاسبه address وWildcard mask در ACL استفاده از دو عمل منطقی AND و XOR میباشد.که در ادامه روش محاسبه آن را خواهیم دید.
در ابتدا خروجی AND دو ورودی A و B را باهم نگاه میکنیم:

A AND B
______________
| A | B | out |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
--------------

در این مرحله خروجی XOR دو ورودی A و B را بررسی میکنیم.

A XOR B
______________
| A | B | out |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
--------------


همانطوری که می دانیم نحوه نوشتن یک ACL به صورت زیر می باشد :

access-list 1 permit [address] [wildcard]


که در این دستور قسمت address نتیجه and آدرسهای A و B میباشد (AوB آدرسهایی که میخواهیم در ACL قرار گیرد که برای روشن شدن ای مطلب در ادامه مثال خواهم زد) و قسمت wildcard نتیجه XOR دو آدرس A وB میباشد.
مثال1:
فرض کنید ما سه شبکه به صورت زیر داریم و میخواهیم ACL بنویسیم که اجازه عبور ترافیک این سه شبکه رابدهد در ادامه نحوه کار را با هم میبینیم:

74.18.23.0/24
68.34.14.0/24
84.51.20.0/24


اولین اقدامی که انجام میدهیم این است که آدرسها را به باینری تبدیل میکنیم.

74.18.23.0/24 - 01001010 . 00010010 . 00010111 . 00000000
68.34.14.0/24 - 01000100 . 00100010 . 00001110 . 00000000
84.51.20.0/24 - 01010100 . 00110011 . 00010100 . 00000000

84.51.20.0/24 - 01010100 . 00110011 . 00010100 . 00000000
همانطوری که در بالا ذکر شد حال باید address و wildcard را برای این سه آدرس محاسبه کنیم:
محاسبه address ) نتیجه AND سه آدرس):

74.18.23.0/24 - 01001010 . 00010010 . 00010111 . 00000000
68.34.14.0/24 - 01000100 . 00100010 . 00001110 . 00000000
84.51.20.0/24 - 01010100 . 00110011 . 00010100 . 00000000
AND Result ---- 01000000 . 00100010 . 00000100 . 00000000= 64.2.4.0

محاسبه wildcard(نتیجه XOR سه آدرس ):

74.18.23.0/24 - 01001010 . 00010010 . 00010111 . 00000000
68.34.14.0/24 - 01000100 . 00100010 . 00001110 . 00000000
84.51.20.0/24 - 01010100 . 00110011 . 00010100 . 00000000
XOR Result ---- 00011110 . 00010001 . 00011011 . 00000000=30.17.27.0


نکته: . در این wildcard اخرین octet صفر میباشد که را برابر با 255 قرار میدهیم

بنایراین ACL ما بصورت زیر خواهد بود.

access-list 1 permit 64.2.4.0 30.17.27.255


مثال 2:
دو آدرس ریز را داریم.

12.18.23.5
12.18.22.6

نتیجه and :

12.18.23.5 - 00001100 . 00010010 . 00010111 . 00000101
12.18.22.6 - 00001100 . 00010010 . 00010110 . 00000110
AND Result - 00001100 . 00010010 . 00010110 . 00000100 = 12.18.22.4

نتیجه XOR:

12.18.23.5 - 00001100 . 00010010 . 00010111 . 00000101
12.18.22.6 - 00001100 . 00010010 . 00010110 . 00000110
XOR Result - 00000000 . 00000000 . 00000001 . 00000011 = 0.0.1.3

نتیجه ACL:

access-list 2 permit 12.18.22.4 0.0.1.3