معرفی شبکه‌های مبتنی بر نرم‌افزار (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. اگر هم کسی هست که دنبال یادگیریه شبکه و لینوکس و پایتون با همه این بهانه خوبیه برا سرگرمی. بازم ممنون بابت رادیو و آموزش لینوکس. و شرمندگی بابت پریشانی متن و غلظ های املایی انشایی زیاد.

  • محمد

    نرم افزارهای مربوط به SDN با پایتون نوشته میشن؟ تیم شما فقط از پایتون استفاده میکنه؟

  • فواد

    این که مشخصه سکیوریتی و سرویس پرووایدر و .. کلا نتورک داره به سمت نرم افزار میره.در حقیقت control plane ها نرم افزاری میشه و هر متخصص شبکه ای اگه تا 5 سال دیگه خودشو با علم وفق نده باید کفش هاش رو آویزون کنه.حرکت قدرتمندانه سیسکو و vmware به این سمت نشون میده که چقدر کاربردی و مهمه

  • غلامرضا

    البته واقعا همه این نظرو ندارن. مثلا من با یکی از استاد های دانشگاهمون که تو زمینه شبکه و امنیت شبکه بود قبلن صحبت کردم و این نظرو داشت که اس دی ان در حال حاضر یه حباب مثل حباب dot com که یه زمانی می ترکه. همه شرکت های استارت آپ می آن سرمایه گذاری می کنن. می گفت که ایده هایی که داخلش هست خوبه منتها خیلی در موردش مبالغه می شه و اینکه همه چیو تغییر می ده و…. خیلی در واقعیت درست نیست.
    [اینا نظر من نیست. فیلد کاری من هم این نیست. :) ]

    • غلامرضا

      اینم بگم که این بنده خدا تو زمینه کاری خودش آدم با اسم و رسم داریه توی امریکا و کلی فاند NSF زیر دستشه :)

  • Suiso

    چرا من یک کَلَمَشَمْ نفهمیدم ؟?

  • stackprogramer

    بحث جالبی بود.

  • mubed

    ف و ق هاش همه قاطی پاتیه

  • milux

    پایتون برای اینکار مناسبه؟ یک کم کند نیست؟

  • Mohamad Ali

    خب یه کم نخ بدید ، برای منی که مخابرات خوندم و بخوام وارد این عرصه بشم چه راهکارایی هست اونم توی ایران ؟؟

    • Mohamad Ali

      اگه کسی اطلاعات داشت یه جوری بهم اطلاع بده مرسی
      @mrht74 توییتر و تلگرام