مفهوم wildcard در شبکه‌های سنتی و SDN چیست؟


برخی از مهندسان کامپیوتر معتقدند  که مفهوم wildcard مخالف  یا  معکوس subnet mask است. متاسفانه این  کاملا نادرست است!­­­­­­!! می‌­توان  گفت  که  یک wildcard از لحاظ  ظاهری­ همچون subnet mask، از چهار اوکتت  بصورت x.x.x.x تشکیل  می‌­شود. بیت­‌های هر اوکتت (که شامل 8 بیت است) می­‌توانند مقادیر 0 یا 1 را شامل شوند. در ­واقع  از wildcard بعنوان یک قانون مطابقت  استفاده  می‌شود که دارای قواعد زیر است:

  • معادل بیت­‌های  پراهمیت (از نظر تعیین ترافیک ورودی از سمت یک میزبان­ تنها، شبکه ­خارجی و…) از آدرس­ IP،  در wildcard مقدار “صفر” قرار می­‌دهیم.
  •  معادل بیت­‌های  بی­‌اهمیت از آدرس­ IP،  در wildcard مقدار “یک” قرار می­ دهیم.

موارد استفاده از یک wildcard

بیشترین استفاده از wildcard در(ACL(Access List­ها به منظور اجازه­ ورود  یا  حذف ترافیک به درون شبکه می‌­باشد. این در­حالی است که ترافیک ورودی می­‌تواند از طرف یک میزبان­ تنها، یک شبکه ­خارجی  یا  یک محدوده­ ای از آدرس IP­ها باشد. در این حالت به منظور مشخص­ کردن هر کدام از حالات مذکور بوسیله  wildcard  موارد زیر را خواهیم داشت:

یک میزبان ­تنها

اگر­در­نظر ­داشته باشیم ­که ­ دقیقا­  ترافیک  از یک آدرس IP  مشخص وارد شبکه شود (بعنوان مثال آدرس 192.168.50.50)، در اینصورت نیاز داریم ­­­ wildcard­ ای بنویسیم که دقیقا تمام اوکتت­های ­آدرس­IP را شامل می‌­شود. در اینصورت بعنوان مثال خواهیم داشت:

ip address 192.168.50.50  wildcard:0.0.0.0

مشخص­ کردن یک شبکه

به منظور مشخص کردن یک شبکه، wildcard باید طوری نوشته شود که با بیت­­­­ های  Net id تطبیق شود. بعنوان مثال  wildcard برای آدرس IP با کلاس­ C برابر است با:

ip address 192.168.50.50  wildcard:0.0.0.255

مشخص­ کردن­ محدوده­ ای از آدرس­IP

زمانی­‌که می‌خواهیم­­­­ wildcard ­ای داشته باشیم که یک محدوده­ ای از آدرس IP را در­برگیرد (مثلا 192.168.0.0-192.168.1.255)، بیت‌­های ­مشترک میان دو آدرس را (در این مثال 23) بصورت بیت‌های پر­اهمیت درwildcard  درنظر می‌گیریم. بنابراین با احتساب 23 بیت مشترک (جمع 16بیت مربوط به دو اوکتت­ اول و7 بیت مشترک اوکتت ­سوم) میان دو آدرس­IP، خواهیم داشت:

ip address:  (192.168.0.0-192.168.1.255)  wildcard: 0.0.1.255

مفهوم wildcard  در SDN 

مطلبی که بارها در شبکه­ های SDN به آن اشاره کرده‌ایم، مفهوم­ کلیدی جداسازی دو سطح control plane وdata plane و برقراری ارتباط دوسطح از طریق پروتکل اپن­ فلو است. این قابلیت امکان تغییر در جداول جریان دستگاه­‌های موجود در سطح data plane را بدون نیاز به اتصال مستقیم به دستگاه ­ها فراهم می‌­کند وکنترلر به عنوان مغز شبکه، جدول­ های لازم (همچون MAC table) برای عملیات فورواردینگ را ایجاد می‌کند. در واقع سوییچ­‌های اپن­ فلو شامل یک یا چند جدول­ جریان به منظور تصمیم­ گیری در مورد عملیات فورواردینگ می‌باشند و کنترلر توسط پروتکل اپن­ فلو می­تواند Flow Entry­هایی را به این جداول اضافه یا حذف یا بروزرسانی کند.

مولفه های درونی یک سوییچ اپن فلو

مولفه های درونی یک سوییچ اپن فلو

از یک  Flow Entry در  جدول  جریان  به  منظور تطبیق (match)  و پردازش بسته‌های ­ ورودی  استفاده  می‌­شود. در واقع یک Flow Entry  شامل  فیلد­هایی همچون Match Field، Instruction، Priority و Counterها می‌باشد و بطور ­خاص هر Flow Entry  توسط  دو  فیلد  Match Field  و  priority   از Flow Entry­های  دیگردر ­جدول جریان  متمایز می ­شود. فیلد  Match Field  شامل  هدر­های  بسته، پورت  ورودی  و  مقدار Metadata است. بسته­ های  ورودی  که  با  فیلدهایی  از  Match Field  تطبیق  می‌­شوند، بر روی آن­ها عمل­ خاصی انجام می‌شود; اما ممکن است که در هیچ کدام از فیلد­های Match Field مقداری مشخص نشود  در اینصورت  با  اصطلاح  match any  مواجه  می­‌شویم  و به این حالت ­wildcard  می­‌گویند.

به مثال زیر توجه کنید:

مفهومwildcard در SDN

مفهوم wildcard  در SDN 

همانطور که در شکل مشاهده می­ کنید، در Flow Entry موجود در Flow Table، فیلد­هایی همچون IP Dst و Action مشخص شده ­اند و دیگر فیلد­ها شامل wildcard (*) هستند. اگر فرض کنیم سوئیچ OVS باشد و جدول جریان آن را در این حالت ببینیم بصورت زیر خواهد بود:

cookie=0x0, duration=10.97s, table=0, n_packets=0, n_bytes=0, priority=10, ip_dst=5.6.7.8,action=CONTROLLER:65535

نکته: همانطر که می‌بینید فیلدهای وایلدکارد در جدول سوئیچ (بصورت *) نمایش داده نمی‌شوند.

توجه: یک Flow Entry که همه فیلد­های  آن  wildcard  باشد  و اولویت آن  برابر با صفر باشد، به اصطلاح Table-miss نامیده  می­‌شود. در چنین  حالتی  بسته  به  سمت  کنترلر ارسال و یا حذف می­‌شود.

مثالی از Table-miss در اوپن فلو:

cookie=0x0, duration=10.97s, table=0, n_packets=0, n_bytes=0, priority=0, action=CONTROLLER:65535

همانطور که ملاحظه می‌کنید در مثال بالا هیچ فیلد انطباق یا Match Fieldای قید نشده است و در واقع تمامی فیلدها wildcard هستند.

منابع

openflow-spec-v1.3.1

www.dummies.com/programming/networking/cisco/working-with-wildcard-mask t.me/SDNCentral

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *