برخی اوقات در حوزه فناوری اطلاعات به خودمان خیلی مغرور می شویم و فکر می کنیم همه چیز را می دانیم اما همانطور که سر کلاس هایم هم همیشه به دانشجویان گفته ام ، شما از یک جلبک در یک حوضچه آب ، فناوری اطلاعات را شروع می کنید و در نهایت به یک گلابی رسیده تبدیل می شوید و مجددا باید به درون حوضچه بیوفتید ، این یعنی قانون فناوری اطلاعات ، کسی که خودش را گول زده است و فکر می کند گلابی نیست کاملا در اشتباه است .
همه اینها را گفتم تا بگویم اکثر ما ممکن است مفهوم Subnet Mask در شبکه را خوب درک کرده باشیم اما شاید هرگز در خصوص Wild Card Mask چیزی نشنیده باشیم و یا اگر هم چیزی بدانیم به درستی آن را درک نکرده ایم.اگر از افرادی که در زمینه شبکه مهارت دارند سئوال کنید که Wild Card Mask چیست در جواب معمولا می گویند ، برعکس Subnet Mask است ! همین ! اگر هنوز در درک مفهوم Subnetmask مشکل دارید ، حتما پیشنهاد می کنم به دوره آموزش نتورک پلاس و قسمت محاسبات آدرس IP یا خود معرفی آیپی مراجعه کنید ، حتما به خوبی این مفهوم رو درک می کنید و بعد ادامه بدید.
-------------------------------------------------
برای دسترسی به مجموعه بهترین دوره های آموزش شبکه های کامپیوتری ( مبانی شبکه ، نتورک پلاس ، مانیتورینگ و ... ) مقدماتی تا پیشرفته با ارائه گواهینامه و فیلم رایگان همین الان کلیک کن
--------------------------------------------------
اما در این مطلب قصد داریم به شما به روش ITPRO یاد بدهیم که Wild Card Mask چیست و در کجا استفاده می شود. در بسیاری اوقات ممکن است این تعریف درست باشد و Wild Card Mask تا حدودی و بعضا دقیقا برعکس Subnet Mask باشد اما همیشه هم اینطور نیست و این عدد می تواند کارهای بسیار بیشتری را برای ما انجام دهد.
خوب حالا به سراغ تشریح ماجرای اصلی Wild Card Mask و نحوه استفاده کرده از آن برویم ، آیا از خود سئوال کرده اید که واقعا چگونه است که شما یک کامپیوتر را در یک شبکه Remote پیدا می کنید و با آن ارتباط برقرار می کنید ؟ و اینکه چگونه Access List های یک روتر به این موضوع پی می برند که درخواست شما باید برای کدام کامپیوتر دقیقا ارسال شود و چه چیزی باید بلاک شود ؟
اینجاست که وظیفه اصلی Wild Card Mask نمایان می شود. برای اینکه کاربرد Wild Card Mask بیشتر برای شما جا بیوفتد برای شما یک مثال می زنیم ، تصور کنید که قرار است ماشین خود را که در هوای آلوده تهران بسیار کثیف شده است را به یک کارواش حرفه ای ببرید ، بعد از اینکه کار ماشین شویی انجام شد مسئول کارواش از شما می پرسد که چه نوع خوشبو کننده هوایی را دوست دارید که در ماشین بصورت اشانتیون قرار بدهیم و شما ممکن است در چنین موقعیتی بگویید ؛
فرقی نمی کند هر کدام که خودتان صلاح می دانید را انتخاب کنید . هر چند که در کارواش های ایران از این خبرا نیست اما به هر حال آرزو بر جوانان عیب نیست. اینجا دقیقا کار Wild Card Mask تعریف می شود ، شما به نوع خوشبو کننده توجهی نکردید چون برای شما چندان اهمیتی نداشت و Wild Card Mask نیز در جایی از شبکه به کمک شما می آید که برای شما اهمیت زیادی ندارد.
در این مقاله قصد داریم به شما بگوییم که Wild Card Mask دقیقا چکار می کند ؟ چگونه کار می کند ؟ و در کجاها می توان از آن استفاده کرد. یکی از بهترین روش هایی که می توان متوجه شد که یک تکنولوژی چگونه کار می کند این است که یک سناریوی واقعی از پیاده سازی آن را داشته باشید. به تصویر بالا دقت کنید ، فرض کنید که هدف سناریوی بالا این است که هر ترافیکی که از مبدا شبکه با آدرس 172.16.56.0 به سایر روترها وارد شد باید مسدود شود.
این شبکه بین روترهای ITPRO-R5 و ITPRO-R6 قرار گرفته است ، فرض کنید در چنین شرایطی ما برای ترافیک مربوطه یک Inbound Rule برای ITPRO-R2 قرار است بنویسیم. خوب ما برای انجام اینکار باید در ITPRO-R2 یک Access Control List برای انجام اینکار بنویسیم ، خوب در اینجا اگر فرض را بر این بگیریم که شبکه 172.16.56.0//24 باشد ما در Octet آخر این شبکه هر عددی را می توانیم داشته باشیم که در قسمت Host ID قرار دارد ، خوب عدد موجود در Octet چهارم این شبکه می تواند بین 1 تا 254 باشد ، خوب ما برای ITPRO-R2 باید Access Control List خود را چگونه بنویسیم که فقط به سه Octet اول این شبکه نگاه کند ؟
در واقع می خواهیم در Access Control List خود به روتر بگوییم که Octet چهارم هر عددی باشد برای ما اهمیتی ندارد و فقط باید سه Octet اول را برای اعمال Rule خود استفاده کند. اینجا دقیقا محلی است که کاربرد Wild Card Mask مشخص می شود ، در ساختار Wild Card Mask عدد 0 به منزله Match بودن و عدد یک به منزله Ignore بودن است یعنی در Rule هایی که توسط Wild Card Mask نوشته می شوند. در Wild Card Mask هرجایی که بیت ما عدد 1 بود یعنی Ignore بود ، به این معناست که اصلا مهم نیست این عدد چه چیزی باشد ، اما اگر 0 بود یعنی مهم است که عددی که در این قسمت قرار می گیرد چه چیزی باشد و باید Match باشد. به مثال زیر دقت کنید که عدد 172.16.56.0 را ما بصورت Wild Card Mask در آورده ایم :
IP Address Range : 172.16.56.0 IP Address Range Binary Code : 10101100.00010000.00111000.00000000 IP Address Range Subnet Mask : 255.255.255.0 IP Address Range Wild Card Mask : 0.0.0.255 IP Address Range Wild Card Mask Binary Code : 00000000.00000000.00000000.11111111
برای Wild Card Mask بیت هایی که روشن یا 1 هستند ارزشی ندارند همانطور که در بالا مشاهده می کنید در Octet آخر وجود داشتن اعداد 1 اصلا اهمیتی در نوشتن Access Control List روتر شما با استفاده از Wild Card Mask ندارد اما بیت های خاموش یا 0 تاثیر مستقیمی بر روی Rule نوشته شده دارند. در مثال بالا برای اعمال شدن ACL ما در روتر ITPRO-R2 باید 24 بیت 0 وجود داشته باشند تا Rule مورد نظر اعمال شود اما هشت بیت آخر با توجه به اینکه عدد 1 در آنها وجود دارند هر چیزی که باشند در نتیجه Rule ما تاثیری نخواهند داشت و در واقع این هشت بیت آخر همان خوشبو کننده ای است که برای شما مهم نیست .
توجه کنید که زمانیکه قرار است شما در روتر خود Wild Card Mask را برای این Rule ایجاد کنید آن را در قالب یک عدد مبنای ده یا Decimal به شکل 0.0.0.255 معرفی می کنید. برای اینکه کمی در حوزه عملی این موضوع هم وارد شویم نمونه ای از Access Control List ای که قرار است بر روی ITPRO-R2 نوشته شود را برای شما نمایش می دهیم تا متوجه شوید که چه قالب دستوری برای استفاده کردن از Wild Card Mask ها در Access Control List های روترهای سیسکو وجود دارد :
ITPRO-R2(config)#ip access-list standard Deny_Subnet_56 ITPRO-R2(config-std-nacl)#deny 172.16.56.0 0.0.0.255 ITPRO-R2(config-std-nacl)#permit any ITPRO-R2(config-std-nacl)#exit
در ادامه شما Deny__Subnet__56 را به Interface مورد نظر خودتان ارتباط می دهید و کار ایجاد کردن Access List شما تمام می شود ، با نگاه کردن به CDP Neighbor ها براحتی می توانید لیست Interface های روتر را مشاهده کنید ، اگر تجربه یا نکته خاصی در خصوص این مطلب دارید که باعث افزایش دانش بنده و سایر کاربران می شود خوشحال می شویم از این تجربه در ادامه همین مطلب استفاده کنیم .
من متوجه نشدم. مگه فرایند AND یا XOR دو تا رجیستر یکدفعه نیست؟ شمارش نمی کنه که حالا بگیم از یه طرف کمتره یا از یه طرف بیشتر. منکه متوجه نشدم چرا باید wild باشه وقتی mask هست.
سلام
در خصوص بحث XOR سوال بنده اینجاست که آیا B همیشه باید یک باشد و چرا ؟
ممنون میشوم توضیح بیشتری دهید.
بله چشم حتما اشتباه از من بود عذرمیخوام
لطفا سئوالتون رو از گزینه سئوال بپرسید مطرح کنید سپاسگزارم
سلام و درود
من اگه بخوام یه wild card ای رو بنویسم که دوتا ای پی رو مثلا 192.168.2.4 و 192.168.2.5 رو select کن باید چیکارکنم ؟
میشه روشش رو برام توضیح بدین
من از wild card میخوام تو بحث acl استفاده کنم
ایمان جان تا اینجای کار رو کاملا با شما موافقم اما وقتی صحبت از شبکه های enterprise و internetwork و روتر میشه خواه نا خواه ما با کلاسهای A و B هم سرکار خواهیم داشت چه بسا بیشتر عملیات روتینگ در خارج از شبکه ما انجام بشه بصورت یک کیس ویک شبکه داخلی اگر نگاه نکنیم چه یه Big Picture ( بقول مهندس اسحاقی عزیز ) از کل شبکه WAN رو در نظر بگیر بازم بنظرت موثر هست
تازه classless ها هم هستند
"یک مثال عینی میتونه موثر باشه اگه بشه با دوتا رشته که نشون بدی چگونه انجام میشه"
مثلا یک اینترفیس روتر آدرسی رو دریافت میکنه که دارای wild:0.0.0.128 است حال سیستم ASIC (پردازنده های motorola)از دو ثبات یا رجیستر مثلا A و B برای ذخیره بیت ها استفاده میکند به این شکل که اولین بیت اولین اکتت رو در D0 ثبات AH قرار میدهد و آخرین بیت آخرین اکتت را در D7 ثبات BL حال کاری که میکند شروع به چک کردن آخرین بیت در خانه D7 ثباتBL میکند(این مسئله هم قابل توجه هست که در بررسی کردن mask نیاز به پرش به AH:D0 است که خود مقداری Delay بوجود می آورد) به همین منوال ادامه پیدا میکند تا جایی که به صفر برسد یعنی در اینجا خانه D6 از ثبات BL پس جستجو تمام شد(در مورد mask جستجو برای 31 خانه انجام میگیرد و سپس match را انجام می دهد) بعد از آن network مورد نظر را با route table مقایسه میکند(این مقایسه نیز با AND انجام میگیرد) و در صورت اینکه حاصل AND شبکه ی مورد نظر با network موجود در table برابر بود match شدن صورت گرفته است.
مثال بالا شاید دقیقا به این شکل صورت نگیرد اما برای ملموس تر شدن موضوع است
آفرین به مهدی و ایمان عزیز که اینقدر فنی و دوست داشتنی بحث کردند ، خوشحالم از اینکه این فرهنگ استدلال و تحلیل منطقی تو وب سایت جا افتاده و بحث اصلا کل کل و به رخ کشیدن اطلاعات نیست ، من خودم سعی می کنم در این موضوع داخل نشم فقط خواستم بگم از بحث فنیتون لذت بردم ، اگر احساس می کردم که کل کل و توهین و به رخ کشیدن اطلاعات وجود داره قطعا پاک می کردم مطالبتون رو اما واقعا آفرین به هر دوتون ... این یعنی فرهنگ ITPRO ... حالا خورد خورد متوجه میشید که ITPRO باشید یعنی چی ...
"سریعتر بودن پردارش 1 نسبت به 0 هست ، منطقش رو درک نمیکنم "
بحث بر سر سریع تر بودن پردازش 1 به 0 نیست بحث در مورد معیار قرار دادن تعدا 1 ها است یعنی روتر یا دیوایس مورد نظر با استفاده از فرآیند subnet mask برای پی بردن به یک رنج مدت زمان T رو صرف و اینکار را با شمردن تعداد 0 ها از اول در یک ساختار ip بررسی میکنه حالا همون روتر با استفاده از wild از آخر 1 ها رو بررسی میکنه و این کار رو در مدت زمان مثلا T/2 انجام میدهد.
حال از یک اینترفیس روتر 250 رنج مختلف شناخه شده روتر در این سناریو روتینگ را در زمان 125T انجام میدهد.
"کلاسهای C , A میتونن نقیض هم باشن "
در بالا هم اشاره کردم(با توجه به معماری شبکه های ip در امروز) شما اگر بخواهید شبکه های که در internetwork استفاده میشوند را طراحی کنید عملا استفاده از 8/ غیر ممکن است و تمام آدرس های شما هدر میرود پس اولویت اول مشخص شد.
برای همین هم هست که در روتر وقتی در router level و یا ACL level شما به جایwild در کانفیگ mask را وارد میکنید روتر mask شما را با یک ساختار 32 بیتی XOR انجام میدهد و result را در running configuration ذخیره میکند:
البته ایمان در موردی که شما میگی کاملا باهات موافقم و منطقی هست من مطلب قبلی رو همزمان با شما نوشتم و در جواب مطالب قبلی بود مسئله من سریعتر بودن پردارش 1 نسبت به 0 هست ، منطقش رو درک نمیکنم
هرچند که در خصوص مطلب شما و این منطق کلاسهای C , A میتونن نقیض هم باشن
بنظرم یک مثال عینی میتونه موثر باشه اگه بشه با دوتا رشته که نشون بدی چگونه انجام میشه بتونیم خوب پیش بریم