معرفی شبکه‌های مبتنی بر نرم‌افزار (Software Defined Networking)

دوست خوبم همایون عزآبادی یک ایمیل زده که فکر کنم قسمت آخرش به طور مستقیم به درد همه می‌خوره و من با ادیت خیلی کم براتون میارمش.

[….]
هدفم از این ایمیل معرفی یک سوژه برای رادیو و یا وبلاگت هست. فکر میکنم یه زمینه خوب کاری هست برای شروع استارت آپ های جهانی برای برنامه نویسها و مخابراتی ها.

سوژه در مورد Software-Defined Networking (SDN) هست و قابلیتهایی که برای کار در یه کشور در حال توسعه داره. به طور خاص مورد نظرم ONF (openflow network foundation) هست که یک ارگانیزیشن هست متشکل از بزرگان صنعت مخابرات (سیسکو و اچ بی – اریکسون – نوکیا – گوگل و … که داره استاندارد هارو برای SDN مشخص میکنه.

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

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

حداقل الان تو زمینه پردازشگرهای شبکه که اینطوریه. پردازشگرهای شبکه به سرعت در حال پیشرفتن و شرکت های کمی هستند که تونستن بخشی از ظرقیت اونها روو استفاده کنن.

شرکتی که من توش کار میکنم یه استارتآپ موفقه که همین کار رو میکنه. ۲۰۱۲ چهار نقر دانشجو شروع کردن به کار روی سوییچ های بر مبنای SDN به عنوان پروژه دانشجویی و الان اوضاع مرتبی دارن. همچنان ۶- ۷ نفر برنامه نویس داره شرکت و داره خوب پیش میره. البته به ازای این تیم کوچیک یه تیم ۴ نقره مدیریت با سابقه و چند سرمایه گذار عالی هم هستند که عملا همه موقیت استارتاپ به مدیریت اونها و بازاریابی و جذب سرمایه ای که انجام دادن وابستس.

خیلی نمی خوام حاشیه برم. شرکت ما یه شرکت نرم اقزاریه که سوییچ هایی با ظرقیت بالا میسازه که سوییجینگ و روتینگ روی لایه ها ی ۲ تا ۷ انحام میده. مثلا روی پورت ۴۰ گیگ میتونی برا اساس ترکیبی از mac , IP, TCP port و حتی دیتای تو ی پکت روتینگ رو مشخص کنی (مثلا اگه دیتای تو پکت aaaa باشه میفرسته به پرت ۱ و اگه bbb باشه میفرسته به پورت ۲).

سوییچ میتونه با سرعت ۲۶۰ GBPS هر پکت رو با حداکثر ۳ میلیون دستور روتینگ (flow entry) مقایسه بکنه و پکت رو فوروارد کنه به پورت مورد نظر یا بهش لایه اضافه کنه (مثلا vlan یا mpls) یا کم کنه و بعد بفرسته به هر جا.

اما سوییج برای تصمیم گیری برای روتینگ هیج کاری انجام نمیده و کل این کار رو یک یا چند سرور دیگه controller انجام میدن. درواقع این کنترل هست که میگه کی کحا بره. اینطوری میشه یه کنترلر که به چندتا سوییچ در مکانهای مختلف وصله کلی سرویس اختصاصی رو که الان راه انندازییش پر هزینه و محدوده رو راه بندازه و کل نتورک رو با هم مدیریت کنه. اما یه امکان دیگه هم داره که خیلی به درد میخوره Scale-Out Router عملا میتونی یک روتر داشته باشی که پورت ۱ تا ۲۰ تو تهران باشه ۲۱ تا ۳۰ تو شیراز و هر زمان نیاز شد ۳۱ تا ۴۰ رو تو یه شهر دیگه داشته باشی.

اما چرا فک میکنم که این جریان به درد استارتاپ تو ایران میخوره:

۱- کل این قابلیت ها که سوییج میتونه انجام بده مدیون سخت اقزار(تراشه) خوبیه که شرکت EZCHIP و Broadcom میسازن و در دست رس همه هست. سیسکو هم در یه سری از سوییچ هاش از ezchip استفاده میکنه. شرکت ما تراشه نت ورک رو از ezchip میگیره به pc با i7 و ۸ مگ رم میزاره کنارش با یه سری اینترفیس میده یه شرکت سخت افزاری که براش لحیم کاری ها رو انحام بدن و میشه سخت افزار ما. با فرض برداشته شدن تحریم ها تو ایران هم در دست رس هست.
۲- تمامی پرتکل هاش اوپن سورس هستن و در دست رس همه OpenFlow
۳- به جز سوییچ بخش کنترلر هم هست که یه پرداکت کاملا جداس که کاملا ترم افزاریه و خیلی جای کار داره. شرکت های بزرگی دارن روش کار مکنن اما خیلی کار داره هنوز.
کلی پروژه اوپن سورس هست مثل ryu و faucet که گوگل داره روش کار میکنه. پروژه ryu با پایتون کد شده و میشه باهاش کلی کنترلر با سرویس ها ی جداب و سفارشی درست کرد. پروژه http://openvswitch.org هم هست که میشه باهاش بدون اینکه سوییچ های گرون قبمت داشت کنترلر رو توسعه داد و تست کرد.

کلا اکثر موارد مربوط به SDN با عبارت open شروع میشن. که دروازه ورود بهش linux هست و python. اگر هم کسی هست که دنبال یادگیریه شبکه و لینوکس و پایتون با همه این بهانه خوبیه برا سرگرمی. بازم ممنون بابت رادیو و آموزش لینوکس. و شرمندگی بابت پریشانی متن و غلظ های املایی انشایی زیاد.