شبکههای نرمافزارمحور فناوری جدیدی بهشمار نمیروند و عمری بیش از ده سال دارند، اما در چند سال اخیر مورد توجه بسیاری از شرکتها و بهویژه شرکتهای ایرانی قرار گرفتهاند. بهطوری که اغلب سازمانها در پی آن هستند که از مزایای قابل توجه این فناوری که کاهش هزینهها، افزایش بهرهوری و نظارت دقیق بر شبکه است به بهترین شکل استفاده کنند. با توجه به اینکه در چند وقت اخیر، هزینه خرید تجهیزات سختافزاری شبکه و دستمزد نیروهای متخصص افزایش چشمگیری داشتهاند، شرکتها تلاش میکنند با هدف کاهش هزینهها از شبکههای نرمافزارمحور استفاده کنند. با اینحال، قبل از آنکه بهفکر طراحی یا استفاده از این شبکهها باشید، باید شناخت کافی در مورد این شبکهها داشته باشید.
محیط شبکه چیست؟
یکی از موضوعات مهمی که هنگام طراحی شبکههای کامپیوتری باید به آن دقت کنید، نحوه برقراری ارتباط شبکههای خصوصی ایمن سازمانی با شبکههای غیرقابل اعتمادی مثل اینترنت است. مادامی که شبکه خصوصی با شبکههای خارجی ارتباطی نداشته باشد با کمترین نرخ حملههای سایبری روبهرو میشود؛ زیرا همهچیز تحت کنترل قرار دارد، امکان شناسایی سریع مشکلات وجود دارد یا اگر کارمندی در اثر سهلانگاری و بیتوجهی به خطمشیهای امنیتی حافظه فلش آلودهای را به سامانهای متصل کند و باعث شیوع آلودگی در شبکه شود، این مسئله بهسرعت قابل شناسایی است. با اینحال، هنگامی که این شبکه ایمن به شبکهای مثل اینترنت متصل شود با انواع مختلفی از چالشها روبهرو میشود. برای آنکه بتوانیم عملکرد شبکههای نرمافزارمحور را بهخوبی بررسی کنیم، ابتدا باید ببینیم شبکههای کامپیوتری چگونه کار میکنند و از چه بخشها و مولفههای پنهانی تشکیل شدهاند، زیرا شبکههای نرمافزارمحور تمامی این قابلیتها را بهشکل نرمافزاری ارائه میکنند.
محیط شبکه (Network Perimeter) مرز بین شبکه محلی خصوصی سازمانی و شبکههای عمومی مانند اینترنت است. در حالت کلی، محیط شبکه، همانند شکل ۱ است. این محیط شامل فایروالها، سیستمهای تشخیص نفوذ و پیشگیری (IDPSes)، نرمافزارهای برنامه-آگاه، جعبههای شن برای جلوگیری از ورود بدافزار به شبکه و دیگر ملزومات امنیتی است. تقریبا بیشتر شبکههای بزرگ سازمانی بر مبنای این معماری پیادهسازی میشوند.
شکل 1
همانگونه که شکل ۱ نشان میدهد، سه منطقه در محیط شبکه وجود دارد که بهعنوان مرز بین شبکه خصوصی سازمانی و اینترنت عمل میکنند:
- ناحیه داخلی (Internal Zone): ناحیهای است که برای سازماندهی کاربران و سرورها تعریف میشود. این ناحیه بهنام منطقه امن یا مورد اعتماد نیز شناخته میشود، زیرا بالاترین درجه امنیتی را دارد. هیچ دسترسی خارجی به منطقه داخلی مجاز نیست و تمام دسترسیها در صورت لزوم باید از طریق منطقه غیر نظامی (DMZ) انجام شود.
- منطقه غیرنظامی (DMZ): منطقهای است که کاربران از طریق اینترنت میتوانند بر مبنای محدودیتهای تعیینشده به آن دسترسی داشته باشند. بهعنوان مثال، ایمیلهایی که از سرورهای خارجی دریافت میشوند به سرور داخلی در SZ وارد میشوند. به بیان سادهتر، هرگونه ارتباط کلاینتها و شبکههای خارجی با شبکه خصوصی سازمانی از طریق تجهیزات مستقر در این منطقه انجام میشود.
- منطقه خارجی (External Zone): نقطه تماس شبکه داخلی و شبکه خارجی از طریق لینکهای ارتباطی است. بهطور مثال، لینکهای دریافتی از ارائهدهندگان خدمات اینترنت (ISP) به این نقطه و بهطور معمول به دیمارک وارد میشوند. در طراحیهای سازمانی، بسته به بزرگی یا کوچکی سازمان، اتاقی با تجهیزات خاص در نظر گرفته میشود که لینکهای ارتباطی ارائهدهندگان خدمات اینترنتی به آن وارد میشود و پهنای باند موردنیاز در اختیار بخشهای مختلف سازمان قرار میگیرد. رویکرد فوق مزایای زیادی دارد. اول آنکه فرآیند عیبیابی مشکلات شبکه را سادهتر میکند و دوم آنکه اگر یک حمله بدافزاری اتفاق افتاد، این امکان وجود دارد که ارتباط شبکههای داخلی با خارجی را به سادهترین شکل قطع کرد تا مانع سرقت اطلاعات یا نفوذ بیشتر هکرها به شبکهها شد.
بهطور معمول، پیادهسازی چنین فناوریای کار سادهای نیست، زیرا در مقیاسهای کلان ممکن است مجبور به پیادهسازی چند DMZ برای کاربردهای مختلف شوید. همچنین، در این معماری، دیوارهای آتش در قالب خوشهای توزیع میشوند و هر دیوار آتش در مکانی (بهطور معمول در هر مکان دو دیوارآتش) متفاوت مستقر میشوند.
در معماری Zero-Trust که موسسه تحقیقاتی Forrester Research آنرا پیشنهاد داده است، در هنگام طراحی شبکههای ایمن باید به بررسی این موضوع بپردازیم که برای محافظت از دادهها، داراییها، برنامهها و خدمات حیاتی شبکه (DAAS) به چه سطحی از امنیت نیاز داریم و چگونه توپولوژی فایروال و مکانیزمهای دفاعی را طراحی کنیم. در این معماری، باید ناحیه مورد اعتماد برای کاربران و سرورها، ناحیه غیرقابل اعتماد که برای اتصالات خارجی مانند اینترنت است و نواحی عمومی که شامل دستگاهها و سرویسهای فرانتاندی است که از طریق شبکههای خارجی دسترسی به آنها انجام میشود را مشخص کنیم.
بهطور معمول، کارشناسان شبکه نرمافزارهای اضافی و عمدتا امنیتی را درون محیط شبکه پیادهسازی میکنند که شامل سیستمهای تشخیص نفوذ و پیشگیری، جعبههای شن که نرمافزارهای مشکوک دانلودشده از اینترنت را اجرا میکنند، فیلترهای وب و ایمیل و موارد اینچنینی است. این ابزارهای امنیتی را میتوان به دو شکل سختافزاری یا نرمافزاری در محیط شبکه پیادهسازی کرد تا حملههای رایج به محیط شبکه را شناسایی کنند. نکته مهمی که باید به آن دقت کنید این است که حملههایی که به لایههای مختلف شبکه انجام میشوند ممکن است بر خود شبکه یا مولفههای شبکه متمرکز باشند.
صفحات داده (Data)، کنترل (Control) و مدیریت (Management)
نکتهای که باید در ارتباط با دستگاههای شبکه بدانید این است که آنها سه عملیات مختلف را انجام میدهند:
- پردازش و ارسال داده به صفحه داده (Data Plane).
- اتخاذ تصمیماتی در ارتباط با ارسال بستههای اطلاعاتی؛ به این معنا که اطلاعات قرار است به کجا ارسال شوند (Control Plane).
- فعالسازی مکانیزم مدیریتی برای خواندن اطلاعات از دستگاهها (Management Plane).
نحوه عملکرد این سه صفحه در شکل ۲ نشان داده شده است.
شکل 2
صفحه داده (Data Plane)
صفحه داده مسئول ارسال اطلاعات است و دستورالعملها و اطلاعاتی که برای ارسال بستهها به آنها نیاز است، مثل جداول مسیریابی و بستههای ارسالی از پورتی به پورت دیگر را از صفحه کنترل دریافت میکنند. نکته مهمی که باید در مورد جداول ارسالی به آن دقت کنید ویژگی خودیادگیری آنها است که میتوانند اطلاعات مهمی را که صفحه کنترل ارسال میکند ضبط کنند و در ارسالهای بعدی از این اطلاعات استفاده کنند تا سرباره شبکه کم شود. بهعنوان مثال، این امکان وجود دارد که چند پروتکل مسیریابی در صفحه کنترل اجرا شوند، اما بر مبنای ویژگی اجماع در یک جدول مسیریابی واحد وارد شوند و در اختیار صفحه داده قرار گیرند. علاوه بر این، صفحه داده مسئول پردازش و تحویل بستهها است، بنابراین روی رابطهای شبکه و پردازندههای دستگاه پیادهسازی میشود. بهطور معمول، جداول ارسالی با حملههای مختلف مثل حملات سیلابی پیوندی و حملات انکار سرویس توزیعشده (DDoS) روبهرو هستند، از اینرو، کارشناسان شبکه باید از مکانیزمهای محافظتی برای بهحداقل رساندن تهدیدات پیرامون این مولفهها استفاده کنند.
صفحه کنترل (Control Plane)
صفحه کنترل مکانی است که نحوه ارسال دادهها در صفحه داده را مشخص میکند. صفحه کنترل شامل پروتکلهای مسیریابی است که اطلاعات را بین روترها مبادله میکند، میزبان پروتکلهای چندپخشی، پروتکلهای کیفیت خدمات (QoS) و هر پروتکل دیگری است که دستگاههای شبکه برای تبادل اطلاعات و تصمیمگیری در مورد ارسال دادهها از آن استفاده میکنند. این پروتکلها در صفحه کنترل اجرا میشوند و نتیجه آنها جدولی است که برای صفحه داده ارسال میشود. صفحه کنترل یکی از مولفههای کلیدی شبکههای نرمافزارمحور است که برای انجام محاسبات به پردازنده مرکزی قدرتمندی نیاز دارد. این صفحه نیز با حملههای مختلفی روبهرو است. برخی از آنها بهسادگی سعی میکنند منابع دستگاه (مانند CPU و حافظه) را مصرف کنند، در حالی که برخی دیگر سعی میکنند پروتکلهای در حال اجرا روی دستگاه را مسموم کنند تا مسیرهای جعلی را ارسال کند یا ترافیک بهسمت اهدافی که هکرها در نظر گرفتهاند هدایت شود. یکی از شایعترین بردارهای حمله به این صفحه، حمله سیلابی به حافظههای پنهان ARP دستگاهها است تا بستههای اطلاعاتی را برای مسیرهای اشتباهی ارسال کنند.
صفحه مدیریت (Management Plane)
صفحه مدیریت مسئول تعامل با دستگاههای شبکه است. این تعامل ممکن است از طریق پروتکلهایی مانند SNMP، Netflow، واسطهای برنامهنویسی کاربردی REST یا هر روش دیگری باشد که برای دستگاههای تحت شبکه تعریف شده است. البته امکان مدیریت دستی از طریق خط فرمان، نرمافزار کلاینت اختصاصی یا رابط وبمحور وجود دارد. صفحه مدیریت بهطور کامل توسط نرمافزار پیادهسازی میشود. حملات در سطح مدیریت عمدتاً به وسیله هکرها با هدف نفوذ به تجهیزات شبکه و تغییر تنظیمات و دور زدن خطمشیهای سازمانی با هدف ایجاد اختلال یا نفوذ به شبکه انجام میشوند.
SDN و NFV
SDN و NFV فناوریهایی هستند که اوایل دهه 2010 با هدف مجازیسازی عملیات شبکه پدید آمدند. در حالیکه SDN فناوریای است که با هدف کمک به طراحی سادهتر شبکههای سازمانی و مراکز داده نرمافزارمحور پدید آمد، در نقطه مقابل NFV بر پایه ارائهدهنده خدمات شبکه (NSP) سرنام Network Service Provider پدید آمد.
شبکههای نرمافزارمحور (SDN)
SDN یک شبکه نرمافزارمحور و رویکردی برای مدیریت شبکه است که دستگاههای ما را بهصورت مرکزی مدیریت میکند. رویکرد فوق امکان نظارت آسان و عیبیابی ساده تجهیزات شبکه را ارائه میدهد، بهطوری که با حذف صفحه کنترل از دستگاههای شبکه، تلاش میکند تا فرآیند کنترل بر شبکه را به شیوه هوشمند انجام دهد. فناوری فوق از رابط برنامهنویسی کاربردی برای برنامهریزی هوشمندانه شبکه از طریق کنترل متمرکز استفاده میکند. در اینجا سختافزارهای اصلی مثل دستگاههای شبکه و فناوریهای مرتبط هنوز وجود دارند، اما میتوانیم آنها را بهصورت متمرکز برنامهریزی و مدیریت کنیم. در نتیجه میتوانیم بهطور مداوم و بهراحتی کل شبکه خود را با انعطافپذیری و سرعت بیشتری مدیریت و عیبیابی کنید. شبکهسازی نرمافزارمحور به این دلیل مهم است که به اپراتورهای شبکه راهکاری جدید برای طراحی، ساخت و راهاندازی شبکههای گسترده (WAN) سازمانی را میدهد. SDN علاوه بر متمرکزسازی و سادهسازی کنترل مدیریت شبکه، مزایای زیر را ارائه میکند:
- قابلیت برنامهریزی ترافیک.
- افزایش ظرفیت مطابق با خطمشیهای سازمانی.
- نظارت دقیق بر شبکه.
- توانایی پیادهسازی اتوماسیون شبکه.
- بازگرداندن شبکه در کوتاهترین زمان در اثر خرابی یا مشکلات دیگر.
SDN با جداسازی صفحه داده از صفحه کنترل، یک زیرساخت شبکه کارآمد برنامهپذیر مبتنی بر نرمافزار ایجاد میکند که میتواند بهصورت دستی و خودکار مدیریت شده و با نیازهای تجاری سازمان هماهنگ شود. در حالیکه در شبکههای سنتی، دستگاههای تحت شبکه مثل سوئیچها اطلاعات را بین خود مبادله میکنند و از توپولوژیهای رایج برای ارسال بستهها استفاده میکنند، در شبکههای نرمافزارمحور سوئیچها دستگاههای سادهای هستند که طبق دستوراتی که از کنترلکننده شبکه دریافت میکنند، اقدام به ارسال دادهها میکنند. در یک شبکه سنتی مولفههای زیر قرار دارند:
- صفحه کنترل: در این صفحه، پروتکلهای مسیریابی اطلاعات مسیریابی را بین خود مبادله میکنند، محدودیتهایی مانند فهرستهای کنترل دسترسی (ACL) و الزامات QoS را بررسی میکنند و جداول مسیریابی را پر میکنند.
- صفحه داده: از جداول مسیریابی برای ارسال دادهها استفاده میکنند. هنگامی که بستهای وارد روتر میشود، روتر آنرا مطابق با اطلاعات درون جداول ارسال میکند.
شکل 3
شکل ۳ نمونهای از یک شبکه SDN را نشان میدهد. در این شبکه یک کنترلر مرکزی داریم که مغز شبکه است. این کنترلر بهعنوان صفحه کنترل برای کل شبکه عمل میکند. هنگامی که یک نشست جدید باز میشود و بستهها از طریق شبکه ارسال میشوند، هر سوئیچ اولین بسته را دریافت میکند و درخواستی برای کنترلکننده ارسال میکند و درباره نحوه ارسال بسته سوال میکند. پس از دریافت پاسخ، سوئیچها اطلاعات را در جدول خود ذخیره میکنند. از این پس، هر بسته بر اساس اطلاعات مندرج در جدول ارسال میشود. اینکار از طریق رابط Southbound با استفاده از پروتکلهایی مانند OpenFlow یا Netconf انجام میشود. همچنین، ارتباطات از کنترلکننده به سوئیچها از طریق پروتکل انتقال TCP و بهکارگیری پروتکلهای انتقال ایمن (TLS) برقرار میشود.
در رابط شمالی، کنترلر، اطلاعات را از طریق واسطهای برنامهنویسی استاندارد مانند RESTfull به برنامههای SDN ارسال و دریافت میکند. برنامههای SDN میتوانند برنامههایی باشند که عملکردهای شبکه مانند روترها، فایروالها، متعادلکنندههای بار یا هر قابلیت دیگر شبکه را پیادهسازی میکنند. نمونهای از یک برنامه SDN، شبکه گسترده نرمافزار محور (SD-WAN) است که اتصال بین سایتهای راه دور را از طریق خطوط خصوصی و اینترنت فراهم میکند.
دامنه SDN شامل همه دستگاههایی است که تحت مدیریت کنترلر SDN یکسانی کار میکنند. در اینجا یک تنظیمکننده شبکه (Orchestrator) برای کنترل چند دامنه SDN وجود دارد. بهعنوان مثال، هنگامیکه شبکههای محلی سازمانی از طریق یک سرویس SD-WAN خصوصی به یکدیگر متصل میشوند، سه کنترلر وجود دارد؛ دو کنترلکننده برای دو شبکه محلی و یک کنترلکننده برای SD-WAN. در تمامی این فرآیندها تنظیمکننده مسئولیت کنترل اتصال و ارتباطات است. در هنگام طراحی یک شبکه SDN مشکلات امنیتی مهمی وجود دارد که کارشناسان شبکه باید به آن دقت کنند. از آن جمله به موارد زیر باید اشاره کرد:
- حمله به اتصالات بین کنترلر و سوئیچهای SDN که از طریق یک اتصال استاندارد TCP با شماره پورت استاندارد انجام میشوند.
- حمله به کنترلکنندهها و تنظیمکنندههای شبکه.
- حمله به سوئیچهای صفحه داده.
مجازیسازی عملکرد شبکه (NFV)
NFV برای اولین بار مفهوم مجازیسازی محاسبات را به دنیای شبکهها وارد کرد. مفهوم فوق به این نکته دلالت دارد که بهجای استفاده از سختافزار اختصاصی برای هر عملکرد شبکه، از یک سختافزار در تعامل با ماشینهای مجازی استاندارد استفاده کنیم. در این حالت، عملکردهای شبکه به شکل نرمافزاری روی ماشینهای مجازی اجرا میشوند. برای دستیابی به این هدف نیازمند پلتفرمهایی هستیم که میزبان این برنامهها باشند. در شکل ۴ این پلتفرمها را مشاهده میکنید.
شکل 4
در شکل ۴، نحوه استقرار برنامههای شبکه را مشاهده میکنید. در مورد کانتینرهای لینوکس، ماشینهای مجازی بهعنوان کانتینر لینوکسی پیادهسازی میشوند و برنامهها روی آنها نصب میشوند.
ماشین مجازی (Virtual Machine) شبیهساز یک سیستم کامپیوتری است که عملکرد یک کامپیوتر فیزیکی را ارائه میکند.
هایپروایزر نرمافزاری است که ماشینهای مجازی را اجرا میکند. بهطور کلی دو نوع هایپروایزر نوع 1 (Type 1) که مستقیماً روی سختافزار سیستم اجرا میشود و نوع 2 (Type 2) که روی سیستمعامل میزبان نصب میشود، وجود دارند.
هایپروایزر نوع 1 بهشکل مستقیم روی سختافزار نصب میشود. از هایپروایزرهای رایج این گروه باید به VMWare ESX/ESXi، Microsoft Hyper-V و Citrix XenServer اشاره کرد. اولین هایپروایزر در دهه 1960 توسط آیبیام توسعه یافت، در ادامه iVMWare ESX (بعدها ESXi) در سال 1999، XEN از Citrix در سال 2003 و یک سال بعد، Hyper-V از مایکروسافت منتشر شدند. در دنیای لینوکس، این فرآیند با پلتفرمهای سنتی یونیکس مانند Sun-Solaris آغاز شد و در ادامه KVM و Dockers عرضه شدند. کانتینرهای لینوکسی بهلطف قابلیتهای کاربردی زیادی که ارائه میکنند بهسرعت بازار شبکه فناوری NFV را تسخیر کردند، زیرا توانستند روترها، سوئیچها، فایروالها، دستگاههای امنیتی و دیگر برنامههای کاربردی موردنیاز در شبکه مرکز داده را ارائه کنند.
هایپروایزر نوع 2 روی سیستمعامل میزبان نصب میشود. از هایپروایزرهای معروف این گروه باید به VMWare، Microsoft Virtual PC و Oracle Virtual Box اشاره کرد.
شکل 5
در شکل ۵ معماری مدل NFV را مشاهده میکنید. معماری NFV از مولفههای زیر تشکیل شده است:
- سختافزار محاسباتی: به منابع محاسباتی و ذخیرهسازی اشاره دارد.
- منابع مجازی: منابعی که به ماشینهای مجازی تخصیص داده میشود.
- VNFها: ماشینهای مجازی و برنامههای نصبشده روی آنها مثل روترها، فایروالها، مولفههای هسته سلولی (Core Cellular Components) و دیگر عملکردهای شبکه هستند.
- مدیریتکنندگان عناصر (EMs): عملکرد شبکه را مدیریت میکنند.
- مدیریت و تنظیمکنندهها NFV (MANO): بههمراه سیستمهای پشتیبانی عملیات (OSS) و سیستمهای پشتیبانی تجاری (BSS) میزان مصرف منابع را کنترل میکنند.
یکی از مهمترین بردارهای حمله که پیرامون فناوری NFV وجود دارد حمله به کل پشته نرمافزاری است که شامل سیستمعامل، هایپروایزر، ماشینهای مجازی و برنامههای کاربردی میشود.
کلام آخر
همانگونه که مشاهده کردید، پیادهسازی شبکههای نرمافزارمحور مبتنی بر درک درست عملکرد تجهیزات رایج شبکه است. شبکههای نرمافزارمحور با انتزاعی کردن، مولفههای سختافزاری سعی میکنند یک مکانیزم مدیریت متمرکز در اختیار سرپرستان شبکه قرار دهند که فرآیند نظارت بر ترافیک و عملکردهای کاربران به سادهترین شکل امکانپذیر باشد و فرآیند گسترشپذیری شبکه به سادهترین شکل وجود داشته باشد