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

Software Defined Networking

 DESIGN AND
DEPLOYMENT
 
Patricia A. Morreale
Kean University, Union, New Jersey, USA
James M. Anderson
GSL Solutions, Tampa, Florida, USA
 
 
مقدمه
در پی گسترش روزافزون شبکه‌های رایانه‌ای، ارتباط سازمان‌ها و مشتریان مختلف با اینترنت و افزایش استفاده از تجهیزات رایانشی همراه مانند تلفن همراه و تبلت، محققان و متخصصان به فکر طراحی و ایجاد راهکارهای نوین برای بهینه‌سازی این ارتباطات افتادند؛ مدیریت تجهیزات سیار، الگوی جدید آدرس‌دهی و نامگذاری در اینترنت، مدیریت دسترسی کاربران، امن‌سازی ابرهای  رایانشی و کاربردهای مختلف مجازی‌سازی را می‌توان از جمله مهم‌ترین ایده‌هایی دانست که امروزه در حال تکامل هستند.
 
همان‌طور که مشخص است هر ایده‌ای باید پیش از پیاده‌سازی عمومی، در آزمایش‌های مرتبط موفقیت لازم را کسب کند. برای بررسی ایده‌های فوق نیز، باید علاوه بر محیط آزمایشگاهی مناسب، ترافیک واقعی کاربر شبیه‌سازی شود تا نتیجه آزمایش این راهکارها به واقعیت نزدیک باشد و مقیاسی واقعگرایانه نسبت به استفاده عمومی به دست آید.اما معمولا آماده‌سازی این چنین آزمایشگاهی نیازمند صرف هزینه‌های گزاف است که اتلاف وقت زیادی را نیز به دنبال خواهد داشت. چه بسیار ایده‌های‌ درستی که به دلیل برخورد با چنین موانعی و نبود امکان آزمایش در شبکه‌ها و ترافیک واقعی کاربران، از بین رفته و به دست فراموشی سپرده می‌شود که این موضوع در نهایت سد راهی برای پیشرفت فناوری است.
 
احتمالا شما نیز با خواندن جملات قبل و عبور از کلمات «شبکه‌های واقعی» و « ترافیک واقعی کاربران» به این نتیجه رسیده باشید تنها محیط واقعی برای انجام این آزمایش‌ها و ارزیابی فناوری‌‌های آینده‌ شبکه‌ جهانی، «اینترنت» است. SDN یا Software Defined Networking (شبکه مبتنی بر نرم افزار یا نرم افزار محور)راهکاری است که به وسیله ابزاری به نام OpenFlow امکان انجام آزمایش‌ها روی اینترنت را به نحوی فراهم می‌کند که در استفاده کاربران اینترنت اخلالی ایجاد نشود.
 
 
 
 
 
Contents
Preface..................................................................................................................ix
About the authors..............................................................................................xi
List of abbreviations....................................................................................... xiii

Chapter 1 Virtualization............................................................................... 1

1.1 Introduction............................................................................................... 1
1.2 Virtual memory........................................................................................ 2
1.2.1 Virtual memory operation........................................................ 3
1.2.2 Virtual and physical memory mapping.................................. 5
1.3 Server virtualization................................................................................ 7
1.3.1 Importance of virtualizing servers.......................................... 8
1.3.2 Hypervisor role in server virtualization................................. 9
1.3.3 Types of virtualization............................................................. 15
1.3.4 Server virtualization in operation.......................................... 16
1.4 Storage virtualization............................................................................ 17
1.4.1 Computer storage operation.................................................... 17
1.4.2 Network-attached storage....................................................... 18
1.4.3 Storage-area networks.............................................................. 18
1.4.4 Server-based storage virtualization....................................... 20
1.4.5 Storage-network-based storage virtualization..................... 22
1.4.5.1 In-band...................................................................... 22
1.4.5.2 Out-of-band............................................................... 23
1.4.6 Storage-controller-based storage virtualization................... 25

Chapter 2 Software-defined networking................................................. 27

2.1 Introduction............................................................................................. 27
2.2 Network limitations............................................................................... 27
2.3 Network control plane........................................................................... 31
2.3.1 Forwarding function................................................................ 33
2.3.2 Network state function............................................................ 34
2.3.3 Configuration function............................................................ 37
2.3.4 Separation of functionality...................................................... 40
2.4 Applications............................................................................................. 41
vi Contents

Chapter 3 SDN implementation................................................................43

3.1 Introduction............................................................................................. 43
3.2 SDN design.............................................................................................. 43
3.2.1 Separation of the control and data planes............................. 44
3.2.2 Edge-oriented networking...................................................... 44
3.3 SDN operation......................................................................................... 47

Chapter 4 Service providers and SDN..................................................... 51

4.1 Introduction............................................................................................. 51
4.2 Telecommunication SDN attributes..................................................... 52
4.3 Telecommunication SDN services........................................................ 54

Chapter 5 SDN development...................................................................... 61

5.1 Introduction............................................................................................. 61
5.2 Existing network limitations................................................................ 61
5.3 Programmable networks....................................................................... 62
5.4 Network/application information........................................................ 63
5.5 Legacy to SDN......................................................................................... 64
5.6 SDN application services....................................................................... 66
5.6.1 Service-engineered path.......................................................... 67
5.6.2 Service appliance pooling....................................................... 67
5.6.3 Content request routing........................................................... 67
5.6.4 Bandwidth calendaring........................................................... 68
5.6.5 Social networking..................................................................... 68

Chapter 6 Network vendors and SDN......................................................71

6.1 Introduction............................................................................................. 71
6.2 Cisco......................................................................................................... 71
6.3 VMware.................................................................................................... 74
6.4 Juniper...................................................................................................... 75
6.5 OpenDaylight.......................................................................................... 77
6.6 Big Switch networks............................................................................... 78

Chapter 7 Google and SDN........................................................................ 81

7.1 Introduction............................................................................................. 81
7.2 Earlier network management............................................................... 81
7.3 Motivation for solution.......................................................................... 83
7.4 Network testing...................................................................................... 87
7.5 Simulating the Google WAN................................................................ 88
7.6 Google and SDN..................................................................................... 89
7.7 Google’s G-Scale network...................................................................... 90
7.7.1 Google’s G-Scale network hardware...................................... 91
7.7.2 Google SDN deployment......................................................... 92
Contents vii
7.7.2.1 Bandwidth brokering and traffic engineering......96
7.7.2.2 Deployment results................................................ 101
7.8 Implementation challenges................................................................. 104
7.9 Lessons learned.................................................................................... 105

Chapter 8 OpenFlow.................................................................................. 107

8.1 Introduction........................................................................................... 107
8.2 Overview of the OpenFlow switch specification............................. 108
8.2.1 OpenFlow ports.......................................................................110
8.2.2 OpenFlow packet-processing pipeline.................................110
8.2.2.1 Flow tables...............................................................111
8.2.2.2 Matching................................................................. 112
8.2.2.3 Table-miss................................................................113
8.2.2.4 Flow removal...........................................................113
8.2.2.5 Meter table...............................................................114
8.2.2.6 Instructions..............................................................115
8.2.2.7 Action set.................................................................115
8.2.2.8 Action list.................................................................117
8.3 OpenFlow channel................................................................................117
8.3.1 Message handling....................................................................118
8.3.2 OpenFlow channel connections............................................118
8.4 Controller modes...................................................................................119
8.4.1 Auxiliary connection use for performance and
reliability.................................................................................. 121
8.4.2 Flow table synchronization................................................... 122
8.4.3 Bundle messages..................................................................... 122
8.5 OpenFlow configuration-and-management protocol..................... 123
8.5.1 Remote configuration............................................................. 123
8.5.2 Connection establishment between switch
and controller.......................................................................... 124
8.5.3 OF-CONFIG transport protocol........................................... 125
8.6 The conformance test specification for OpenFlow Switch
Specification 1.0.1.................................................................................. 125
8.7 The OpenFlow™ conformance testing program............................. 127

Chapter 9 SDN evolution..........................................................................129

9.1 Introduction........................................................................................... 129
9.2 SDN and enterprise networks............................................................ 130
9.3 SDN and transport networks.............................................................. 132
9.4 SDN and optical transport networks................................................. 134
9.5 Increasing WAN utilization with SDN............................................. 136
9.6 How scalable are software-defined networks?.................................141
9.6.1 SDN scalability issues.............................................................141
9.6.2 Controller designs for scalability..........................................141
viii Contents
9.6.3 Potential SDN scalability issues........................................... 143
9.6.4 Network types......................................................................... 145
9.6.5 Next steps................................................................................. 146
9.7 SDN management................................................................................. 147
9.7.1 Network state queries using Frenetic.................................. 148
9.7.2 Network policy creation using Frenetic.............................. 149
9.7.3 Consistent updates with Frenetic......................................... 149
9.8 Elastic and distributed SDN controllers............................................ 150
9.8.1 Switch migration using the ElastiCon distributed
controller.................................................................................. 153
9.8.2 Load adaptation...................................................................... 155
9.9 Summary............................................................................................... 156
References........................................................................................................ 159
ix