در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

Wild Card Mask چیست و تفاوت آن با Subnet Mask در چیست؟

برخی اوقات در حوزه فناوری اطلاعات به خودمان خیلی مغرور می شویم و فکر می کنیم همه چیز را می دانیم اما همانطور که سر کلاس هایم هم همیشه به دانشجویان گفته ام ، شما از یک جلبک در یک حوضچه آب ، فناوری اطلاعات را شروع می کنید و در نهایت به یک گلابی رسیده تبدیل می شوید و مجددا باید به درون حوضچه بیوفتید ، این یعنی قانون فناوری اطلاعات ، کسی که خودش را گول زده است و فکر می کند گلابی نیست کاملا در اشتباه است .

همه اینها را گفتم تا بگویم اکثر ما ممکن است مفهوم Subnet Mask در شبکه را خوب درک کرده باشیم اما شاید هرگز در خصوص Wild Card Mask چیزی نشنیده باشیم و یا اگر هم چیزی بدانیم به درستی آن را درک نکرده ایم.اگر از افرادی که در زمینه شبکه مهارت دارند سئوال کنید که Wild Card Mask چیست در جواب معمولا می گویند ، برعکس Subnet Mask است ! همین !

اما در این مطلب قصد داریم به شما به روش ITPRO یاد بدهیم که Wild Card Mask چیست و در کجا استفاده می شود. در بسیاری اوقات ممکن است این تعریف درست باشد و Wild Card Mask تا حدودی و بعضا دقیقا برعکس Subnet Mask باشد اما همیشه هم اینطور نیست و این عدد می تواند کارهای بسیار بیشتری را برای ما انجام دهد.

Wild Card Mask چیست و چه تفاوتی با  Subnet Mask دارد

خوب حالا به سراغ تشریح ماجرای اصلی Wild Card Mask و نحوه استفاده کرده از آن برویم ، آیا از خود سئوال کرده اید که واقعا چگونه است که شما یک کامپیوتر را در یک شبکه Remote پیدا می کنید و با آن ارتباط برقرار می کنید ؟ و اینکه چگونه Access List های یک روتر به این موضوع پی می برند که درخواست شما باید برای کدام کامپیوتر دقیقا ارسال شود و چه چیزی باید بلاک شود ؟

اینجاست که وظیفه اصلی Wild Card Mask نمایان می شود. برای اینکه کاربرد Wild Card Mask بیشتر برای شما جا بیوفتد برای شما یک مثال می زنیم ، تصور کنید که قرار است ماشین خود را که در هوای آلوده تهران بسیار کثیف شده است را به یک کارواش حرفه ای ببرید ، بعد از اینکه کار ماشین شویی انجام شد مسئول کارواش از شما می پرسد که چه نوع خوشبو کننده هوایی را دوست دارید که در ماشین بصورت اشانتیون قرار بدهیم و شما ممکن است در چنین موقعیتی بگویید ؛

فرقی نمی کند هر کدام که خودتان صلاح می دانید را انتخاب کنید . هر چند که در کارواش های ایران از این خبرا نیست اما به هر حال آرزو بر جوانان عیب نیست. اینجا دقیقا کار Wild Card Mask تعریف می شود ، شما به نوع خوشبو کننده توجهی نکردید چون برای شما چندان اهمیتی نداشت و Wild Card Mask نیز در جایی از شبکه به کمک شما می آید که برای شما اهمیت زیادی ندارد.

 

کاربرد Wildcard 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 های روتر را مشاهده کنید ، اگر تجربه یا نکته خاصی در خصوص این مطلب دارید که باعث افزایش دانش بنده و سایر کاربران می شود خوشحال می شویم از این تجربه در ادامه همین مطلب استفاده کنیم .ITPRO باشید

نویسنده : محمد نصیری

منبع : جزیره شبکه و زیرساخت وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

17 نظر
IMAN4K

ذکر یک نکته ضروری است و اینکه wild card به تمام آدرس هایی که ما داریم و قابل استفاده هستند اشاره میکند.خوب این کار با استفاده mask هم قابل پیاده سازی است اما نکته ای که وجود دارد(بنده در جایی آن را خواندم) این است که freeBSD که خیلی از دیوایس های سیسکو و جونیپر از آن استفاده میکنند از پروسیجر wild استفاده میکنند که پروسس کمتری بروی دیوایس ها اعمال میکند یعنی چک کردن 1 ها ساده تر از چک کردن 0 ها در network مورد نظر است(یعنی اینکه چک کردن باینری 1 برای پی بردن به رنج شبکه برای os مورد نظر به مراتب راحتتر از چک کردن 0 باینری است)

محمد نصیری

واقعا جالب بود ، پیشتازهای صنعت Routing و امنیت به فکر چه نکات ریزی هستند که پردازش رو کمتر کنند ، ممنون از نکته خوبتون.

مهدی باقری

"چک کردن باینری 1 برای پی بردن به رنج شبکه برای os مورد نظر به مراتب راحتتر از چک کردن 0 باینری است"

چطور ممکنه ؟

محمد نصیری

من این منطق رو تا حدی قبول دارم ، یعنی پیشفرض به جای اینکه False بودن چک بشه همه چیز رو False فرض می کنن ، اینجوری پردازش کمتر میشه ، البته خود در فرایند های روتینگ خیلی سنگین این اتفاق میوفته ، یعنی هر دو حالت True یا False بودن بررسی نمیشه و به همین دلیل پردازش کمتر میشه ، منطقی هست اما خوب جای بحث داره ، من زیاد سواد اینکار رو ندارم دوستان بیشتر توضیح بدن من هم یاد بگیرم ممنون میشم

IMAN4K

در فرآنید هایی مثل access list و روتینگ روتر برای پی بردن به رنج آی پی network مورد نظر شروع به چک کردن باینری 1 از سمت راست میکند(به جای اینکه 0 باینری را به عنوان ملاک قرار دهد) و بر اساس تعداد آنها تصمیم گیری رو انجام میدهد.این مسئله در شبکه های enterprise که overhead زیادی یروی روتر وجود دارد و بر فرض مثال 10 هزار عدد روت و نتورک فقط از یک اینترفیس روتر advertise شده است به مراتب کار را راحتتر میکند.این مسئله بیشتر به برنامه نویسی سیستم های bsd و ASIC بر میگردد و به عنوان یک متد برای افزایش کارایی روتر استفاده میشود.

مهدی باقری

وقتی صحبت از پردازش یک داده یا یک رشته که اینجا مثلا Mask هست حالا چه Subnet یا wild card و ما با یک رشته استاندارد 32 بیتی سرو کار داریم به حر حال این 32 بیت بصورت جریان، زبان ماشین پردازش میشه حالا شاید در مثال بالا چون از کلاس C صحبت میشه ما 1 های کمتری در wild card داشته باشیم ولی در کلاس A برعکس خواهد بود و ماهیت 1 و 0 وجود یا عدم وجود یک ماهیت الکتریکی هست برای ماشین و این کمی درک این مطلب رو سخت میکنه

IMAN4K

اگه بخوایم کمی ریز تر بشیم در اینجا چک کردن بانیری آی پی و چک کردن mask یا wild را باید تمییز بدیم.خوب وقتی نوبت به بررسی wild میرسد از a31 شروع به چک کردن کرده تا بررسی تمام شود و قتی به اولین صفر رسید کار را تمام میکند و ولی وقتی نوبت به بررسی mask میرسد شروع میکند به چک کردن صفر از a0 و هر جا به1 رسید آن را تمام میکند.حال به نظر شما با توجه به معماری شبکه های ip در امروزه استفاده از کدام متد بهینه تر است؟(یعنی در لایه ماشین چک کردن از آخر بهینه تر است یا از اول)

(البته بنده برنامه نویس نیستم و فقط از دیدگاه خودم موضوع رو باز کردم)

مهدی باقری

البته ایمان در موردی که شما میگی کاملا باهات موافقم و منطقی هست من مطلب قبلی رو همزمان با شما نوشتم و در جواب مطالب قبلی بود مسئله من سریعتر بودن پردارش 1 نسبت به 0 هست ، منطقش رو درک نمیکنم

هرچند که در خصوص مطلب شما و این منطق کلاسهای C , A میتونن نقیض هم باشن

بنظرم یک مثال عینی میتونه موثر باشه اگه بشه با دوتا رشته که نشون بدی چگونه انجام میشه بتونیم خوب پیش بریم

IMAN4K

"سریعتر بودن پردارش 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 ذخیره میکند:

A:255.255.255.0/24
11111111.11111111.11111111.00000000
B:255.255.255.255
11111111.11111111.11111111.11111111
a XOR b (1 XOR 1=0 ; 0 XOR 1 =1)
result:
0.0.0.255
00000000.00000000.00000000.11111111
محمد نصیری

آفرین به مهدی و ایمان عزیز که اینقدر فنی و دوست داشتنی بحث کردند ، خوشحالم از اینکه این فرهنگ استدلال و تحلیل منطقی تو وب سایت جا افتاده و بحث اصلا کل کل و به رخ کشیدن اطلاعات نیست ، من خودم سعی می کنم در این موضوع داخل نشم فقط خواستم بگم از بحث فنیتون لذت بردم ، اگر احساس می کردم که کل کل و توهین و به رخ کشیدن اطلاعات وجود داره قطعا پاک می کردم مطالبتون رو اما واقعا آفرین به هر دوتون ... این یعنی فرهنگ ITPRO ... حالا خورد خورد متوجه میشید که ITPRO باشید یعنی چی ...

IMAN4K

"یک مثال عینی میتونه موثر باشه اگه بشه با دوتا رشته که نشون بدی چگونه انجام میشه"

مثلا یک اینترفیس روتر آدرسی رو دریافت میکنه که دارای 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 شدن صورت گرفته است.

مثال بالا شاید دقیقا به این شکل صورت نگیرد اما برای ملموس تر شدن موضوع است

مهدی باقری

ایمان جان تا اینجای کار رو کاملا با شما موافقم اما وقتی صحبت از شبکه های enterprise و internetwork و روتر میشه خواه نا خواه ما با کلاسهای A و B هم سرکار خواهیم داشت چه بسا بیشتر عملیات روتینگ در خارج از شبکه ما انجام بشه بصورت یک کیس ویک شبکه داخلی اگر نگاه نکنیم چه یه Big Picture ( بقول مهندس اسحاقی عزیز ) از کل شبکه WAN رو در نظر بگیر بازم بنظرت موثر هست

تازه classless ها هم هستند

ssss

سلام و درود

من اگه بخوام یه wild card ای رو بنویسم که دوتا ای پی رو مثلا 192.168.2.4 و 192.168.2.5 رو select کن باید چیکارکنم ؟

میشه روشش رو برام توضیح بدین

من از wild card میخوام تو بحث acl استفاده کنم

محمد نصیری

لطفا سئوالتون رو از گزینه سئوال بپرسید مطرح کنید سپاسگزارم

ssss

بله چشم حتما اشتباه از من بود عذرمیخوام

اصغر شاملو

سلام

در خصوص بحث XOR سوال بنده اینجاست که آیا B همیشه باید یک باشد و چرا ؟

ممنون میشوم توضیح بیشتری دهید.

مهدی

من متوجه نشدم. مگه فرایند AND یا XOR دو تا رجیستر یکدفعه نیست؟ شمارش نمی کنه که حالا بگیم از یه طرف کمتره یا از یه طرف بیشتر. منکه متوجه نشدم چرا باید wild باشه وقتی mask هست.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....