چکیده
بهتازگی ایدهی شبکههای قابل برنامهریزی دوباره به شتاب قابل توجهی با توجه به ظهور شبکهی تعریف شده با نرمافزار (SDN) رسیده است. SDN، اغلب بهعنوان یک "ایدهی اصلی و جدید در شبکه"، بهطور چشمگیری موجب تسهیل مدیریت شبکه و نوآوری فعال از طریق برنامهریزی شبکه شده است. بررسی مقاله در شبکههای قابل برنامهریزی با تاکید در SDN بوده است. یک چشمانداز تاریخی از برنامهریزی شبکه از ایدههای اولیه به تحولات اخیر ارائه شده است. سپس بهطور خاص معماری SDN و استاندارد OpenFlow، در مورد جایگزینهای فعلی برای پیادهسازی و تست پروتکلها و سرویسهای مبتنی بر SDN، بررسی برنامههای کاربردی آیندهی SDN، اکتشاف و تحقیقات براساس SDN بحث و بررسی شده است.
1. مقدمه
شبکههای کامپیوتری بهطور معمول از تعداد بیشتری از دستگاههای شبکه مانند روترها، سوئیچها و انواع متعددی از middleboxes با بسیاری از پروتکلهای پیچیده که بر روی آنها اجرا میشوند ساخته شدهاند (بهعنوان مثال، دستگاههایی که ترافیک را برای مقاصد دیگر حمل و نقل بسته، مانند فایروال دستکاری میکنند). اپراتورهای شبکه برای پیکربندی سیاستها به طیف گستردهای از حوادث شبکه و برنامههای کاربردی پاسخگو هستند. آنها نیاز به تبدیل وظایف پیچیده و سطح بالا با دسترسی به ابزار محدود دارند.. بهعنوان یک نتیجه، مدیریت شبکه و تنظیم عملکرد کاملا چالش برانگیز و مستعد خطا است. واقعیت این است که دستگاههای شبکه معمولا جعبه سیاه یکپارچه و بهصورت عمودی برای چالش اپراتورهای شبکه و مدیران هستند.
یکی دیگر از چالشبرانگیزترین موضاعاتی که محققان با آن روبرو هستند " تشکیل اینترنت" است. از آنجا که پایه استقرار آن بخشی از زیرساختهای حیاتی جامعه ما است (درست مثل حملونقل و شبکههای انرژی)، اینترنت با دشواری هم با تکامل فیزیکی و هم زیرساختها و پروتکلها و عملکرد آن منطبق میشود. با این حال، بهعنوان برنامههای کاربردی اینترنت و خدمات در حال ظهور و پیچیده و سخت، ضروری است که اینترنت قادر به تکامل این چالشهای جدید باشد.
ایدهی "شبکههای قابل برنامهریزی" بهعنوان راهی برای تسهیل تکامل شبکه پیشنهاد شده است. بهطورخاص، شبکههای با تعریف نرمافزار (SDN) یک الگوی شبکه جدید است که در آن سختافزار حملونقل از کنترل تصمیمگیری جدا است. این کار بهطور قابل توجهی برای مدیریت شبکه و نوآوری و تکامل فعال ساده است. ایدهی اصلی این روش به توسعهدهندگان نرمافزار اجازه میدهد تا به منابع شبکه به همان شیوهای که در ذخیرهسازی و منابع محاسباتی انجام میدهند تکیه کنند. در SDN، شبکههای اطلاعاتی بهطور منطقی بر کنترل مبتنی بر نرم افزار متمرکز هستند (نقشهی کنترل)، و دستگاههای شبکه، دستگاههای سادهی حملونقل بسته (نقشهی داده) از طریق یک برنامهریزی رابط باز هستند (بهعنوان مثال، ForCES [1]، OpenFlow[2] و غیره).
SDN در حال حاضر توجه دانشگاه و صنعت را به خود جلب کرده است. یک گروه از اپراتورهای شبکه، ارائهدهندگان خدمات و فروشندگان بهتازگی بنیاد گسترش شبکه ایجاد کردهاند [3]، یک سازمان صنعتی به ترویج SDN و استانداردسازی پروتکل OpenFlow ]2[ مشغول است. از نظر دانشگاهی، مرکز تحقیقات شبکه OpenFlow [4] با تمرکز بر تحقیق SDN ایجاد شده است. تلاشهای استاندارد زیادی در SDN در IETF و IRTF و دیگر سازمانهای تولید استاندارد وجود دارد.
زمینهی شبکه با تعریف نرمافزار کاملا جدید است، در عین حال با سرعت بسیار زیادی درحالرشد است. بااینحال، چالشهای پژوهش مهمی وجود دارد. در این مقاله، شبکههای قابل برنامهریزی با ارائهی یک دیدگاه تاریخی در این زمینه و همچنین جزئیات توصیف پارادایم SDN و معماری را بررسی خواهیم کرد. ساختار مقاله به شرح زیر است: بخش دوم، با توصیف تلاشهای اولیه آغاز میشود و بر شبکههای قابل برنامهریزی توجه دارد. بخش سوم نمای کلی از SDN و معماری آن را نشان میدهد. همچنین به توصیف پروتکل OpenFlow میپردازد. بخش چهارم سیستم عاملهای موجود برای توسعه و تست راه حل SDN از جمله شبیهسازی و ابزار شبیهسازی، پیادهسازی کنترل SDN و همچنین تأیید و اشکالزدائی ابزار را توصیف میکند. در بخش پنجم، در مورد برنامههای مختلف SDN در زمینههایی مانند مراکز داده و شبکههای بیسیم بحث میکنیم. در نهایت، بخش ششم چالش تحقیقات و جهتگیریهای آینده را مورد بحث قرار میدهد.
2. شبکه قابل برنامهریزی اولیه
SDN دارای پتانسیل بسیار زیادی برای تغییر شبکه است و OpenFlow بهعنوان یک "تبلیغ ایدههای جدید در شبکه " است[5]. مزایای ارائه شده در محدودهی کنترل متمرکز، الگوریتم ساده، شکل سختافزار شبکه، از بین بردن middleboxe، طراحی و استقرار شخص ثالث برنامهها است.
در حالی که OpenFlow توجه قابل ملاحظه از صنعت دریافت کرده است، شایان ذکر است که ایدهی شبکههای قابل برنامهریزی و کنترل منطق جدا شده است. در این بخش، یک نمای کلی از تلاشهای اولیه برای شبکههای قابل برنامهریزی، پیشسازهای پارادایم SDN که پایه و اساس بسیاری از ایدههای گذشته است و ما امروزه شاهد آن هستیم، ارائه میکنیم.
A) گسترش signaling : (OPENSIG) با گروهی که در سال 1995 با یک سری از کارگاهها که به "ساخت ATM، اینترنت و شبکههای تلفن همراه باز، توسعه و برنامهریزی " مشغول بودند آغاز شد[6]. آنها باور داشتند که جدایی بین ارتباطات سختافزار و کنترل نرمافزار لازم است اما برای تحقق بخشیدن چالش برانگیز است. این عمدتا بهدلیل عمودی و یکپارچه بودن سوئیچها و روترها است، که به ماهیت بستهی ساخته شده از استقرار سریع خدمات جدید شبکه و محیطهای غیرممکن بستگی دارد. هسته اصلی پیشنهاد آنها فراهم کردن دسترسی به سخت افزار شبکه از طریق باز کردن رابطهای شبکه قابل برنامهریزی است؛ که اجازه میدهد خدمات جدید از طریق یک محیط برنامهریزی توزیع شده استقرار یابند.
انگیزه این ایدهها، منجر به تشکیل گروه کاری IETF شد، که مشخصات پروتکل مدیریت سوئیچ عمومی (GSMP)]7[، یک پروتکل هدف کلی برای کنترل یک سوئیچ برچسب را مشخص میکردند. GSMP اجازه میدهد تا یک کنترلکننده برای ایجاد و انتشار اتصالات در سراسر سوئیچ، اضافه کردن و حذف برگ بر روی یک اتصال چندپخشی، مدیریت سوئیچ پورت، درخواست اطلاعات پیکربندی، درخواست و حذف رزرو منابع سوئیچ و درخواست آمار ایجاد شود. کار گروه بهطور رسمی به این نتیجه رسیدند و آخرین استانداردهای پیشنهادی، GSMPv3، در ماه ژوئن سال 2002 منتشر شد.
Abstract
The idea of programmable networks has recently re-gained considerable momentum due to the emergence of the Software-Defined Networking (SDN) paradigm. SDN, often referred to as a “radical new idea in networking”, promises to dramatically simplify network management and enable innovation through network programmability. This paper surveys the state-of-the-art in programmable networks with an emphasis on SDN. We provide a historic perspective of programmable networks from early ideas to recent developments. Then we present the SDN architecture and the OpenFlow standard in particular, discuss current alternatives for implementation and testing of SDN-based protocols and services, examine current and future SDN applications, and explore promising research directions based on the SDN paradigm.
I. INTRODUCTION COMPUTER
networks are typically built from a large number of network devices such as routers, switches and numerous types of middleboxes (i.e., devices that manipulate traffic for purposes other than packet forwarding, such as a firewall) with many complex protocols implemented on them. Network operators are responsible for configuring policies to respond to a wide range of network events and applications. They have to manually transform these high level-policies into low-level configuration commands while adapting to changing network conditions. Often, they also need to accomplish these very complex tasks with access to very limited tools. As a result, network management and performance tuning is quite challenging and thus error-prone. The fact that network devices are usually vertically-integrated black boxes exacerbates the challenge network operators and administrators face.
Another almost unsurmountable challenge network practitioners and researchers face has been referred to as “Internet ossification”. Because of its huge deployment base and the fact it is considered part of our society’s critical infrastructure (just like transportation and power grids), the Internet has become extremely difficult to evolve both in terms of its physical infrastructure as well as its protocols and performance. However, as current and emerging Internet applications and services become increasingly more complex and demanding, it is imperative that the Internet be able to evolve to address these new challenges.
The idea of “programmable networks” has been proposed as a way to facilitate network evolution. In particular, Software Defined Networking (SDN) is a new networking paradigm in which the forwarding hardware is decoupled from control decisions. It promises to dramatically simplify network management and enable innovation and evolution. The main idea is to allow software developers to rely on network resources in the same easy manner as they do on storage and computing resources. In SDN, the network intelligence is logically centralized in software-based controllers (the control plane), and network devices become simple packet forwarding devices (the data plane) that can be programmed via an open interface (e.g., ForCES [1], OpenFlow [2], etc).
SDN is currently attracting significant attention from both academia and industry. A group of network operators, service providers, and vendors have recently created the Open Network Foundation [3], an industrial-driven organization, to promote SDN and standardize the OpenFlow protocol [2]. On the academic side, the OpenFlow Network Research Center [4] has been created with a focus on SDN research. There have also been standardization efforts on SDN at the IETF and IRTF and other standards producing organizations.
The field of software defined networking is quite recent, yet growing at a very fast pace. Still, there are important research challenges to be addressed. In this paper, we survey the state-of-the-art in programmable networks by providing a historic perspective of the field and also describing in detail the SDN paradigm and architecture. The paper is organized as follows: in Section II, it begins by describing early efforts focusing on programmable networks. Section III provides an overview of SDN and its architecture. It also describes the OpenFlow protocol. Section IV describes existing platforms for developing and testing SDN solutions including emulation and simulation tools, SDN controller implementations, as well as verification and debugging tools. In Section V, we discuss several SDN applications in areas such as data centers and wireless networking. Finally, Section VI discusses research challenges and future directions.
II. EARLY PROGRAMMABLE NETWORKS
SDN has great potential to change the way networks operate, and OpenFlow in particular has been touted as a “radical new idea in networking” [5]. The proposed benefits range from centralized control, simplified algorithms, commoditizing network hardware, eliminating middleboxes, to enabling the design and deployment of third-party ‘apps’.
While OpenFlow has received considerable attention from industry, it is worth noting that the idea of programmable networks and decoupled control logic has been around for many years. In this section, we provide an overview of early programmable networking efforts, precursors to the current SDN paradigm that laid the foundation for many of the ideas we are seeing today.
a) Open Signaling: The Open Signaling (OPENSIG) working group began in 1995 with a series of workshops dedicated to “making ATM, Internet and mobile networks more open, extensible, and programmable” [6]. They believed that a separation between the communication hardware and control software was necessary but challenging to realize; this is mainly due to vertically integrated switches and routers, whose closed nature made the rapid deployment of new network services and environments impossible. The core of their proposal was to provide access to the network hardware via open, programmable network interfaces; this would allow the deployment of new services through a distributed programming environment.
Motivated by these ideas, an IETF working group was created, which led to the specification of the General Switch Management Protocol (GSMP) [7], a general purpose protocol to control a label switch. GSMP allows a controller to establish and release connections across the switch, add and delete leaves on a multicast connection, manage switch ports, request configuration information, request and delete reservation of switch resources, and request statistics. The working group is officially concluded and the latest standards proposal, GSMPv3, was published in June 2002.
چکیده
1. مقدمه
2. شبکه قابل برنامهریزی اولیه
3. معماری شبکههای با تعریف نرمافزار
A) معماری کنونی SDN
B) دستگاه حمل
C) کنترلر
D) ارتباطات بهسمت جنوب: کنترلر- سوئیچ
E) ارتباطات بهسمت شمال: کنترلر- خدمات
F) تلاش استانداردسازی
4. ابزارهای توسعه SDN
A. شبیهسازی و ابزار شبیهسازی
B. نرمافزار موجود پلتفرم سوئیچ
C. سوییچ بومی SDN
D. پلتفرم کنترلر در دسترس
E. کد امنیتی و اشکالزدایی
5. نرمافزار SDN
A. شبکههای سازمانی
B. مراکز داده
C. شبکههای دردسترس بیسیم مبتنی بر زیرساخت
D. شبکههای نوری
E. کسب وکار کوچک و خانگی
.6 چالشهای پژوهش و دستورالعملهای آینده
A. طراحی کنترلر و سوئیچ
B. ارتباط شبکه با تعریف نرم افزار
C. تعامل کنترلر-سرویس
D. مجازیسازی و سرویسهای ابر
E. شبکهی اطلاعات محور
F. پشتیبانی ناهمگن شبکه
7. نتیجهگیری
منابع
Abstract
1. INTRODUCTION
2. EARLY PROGRAMMABLE NETWORKS
3. SOFTWARE-DEFINED NETWORKING ARCHITECTURE
A. Current SDN Architectures
B. Forwarding Devices
C. The Controller
D. Southbound Communication: Controller-Switch
E. Northbound Communication: Controller-Service
F. Standardization Efforts
4. SDN DEVELOPMENT TOOLS
A. Emulation and Simulation Tools
B. Available Software Switch Platforms
C. Native SDN Switches
D. Available Controller Platforms
E. Code Verification and Debugging
5. SDN APPLICATIONS
A. Enterprise Networks
B. Data Centers
C. Infrastructure-based Wireless Access Networks
D. Optical Networks
E. Home and Small Business
6. RESEARCH CHALLENGES AND FUTURE DIRECTIONS
A. Controller and Switch Design
B. Software-Defined Internetworking
C. Controller-Service Interaction
D. Virtualization and Cloud Services
E. Information-Centric Networking
F. Heterogeneous Network Support
7. CONCLUDING REMARKS
REFERENCES