Software Defined Networks Software Defined Networks a Comprehensive Approach
Total Page:16
File Type:pdf, Size:1020Kb
Software Defined Networks Software Defined Networks A Comprehensive Approach Paul Göransson Chuck Black AMSTERDAM • BOSTON • HEIDELBERG • LONDON NEW YORK • OXFORD • PARIS • SAN DIEGO SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO Morgan Kaufmann is an imprint of Elsevier Acquiring Editor: Steve Elliot Editorial Project Manager: Kaitlin Herbert Project Manager: Punithavathy Govindaradjane Designer: Mark Rogers Morgan Kaufmann is an imprint of Elsevier 225 Wyman Street, Waltham, MA 02451, USA Copyright © 2014 Elsevier Inc. All rights reserved. No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechani- cal, including photocopying, recording, or any information storage and retrieval system, without permission in writing from the publisher. Details on how to seek permission, further information about the Publisher’s permis- sions policies and our arrangements with organizations such as the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions. This book and the individual contributions contained in it are protected under copyright by the Publisher (other than as may be noted herein). Notices Knowledge and best practice in this field are constantly changing. As new research and experience broaden our understanding, changes in research methods, professional practices, or medical treatment may become necessary. Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using any information, methods, compounds, or experiments described herein. In using such information or methods they should be mindful of their own safety and the safety of others, including parties for whom they have a professional responsibility. To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any liability for any injury and/or damage to persons or property as a matter of products liability, negligence or otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in the material herein. Library of Congress Cataloging-in-Publication Data Application submitted British Library Cataloguing-in-Publication Data A catalogue record for this book is available from the British Library ISBN: 978-0-12-416675-2 Printed and bound in the United States of America 14 15 16 17 18 10 9 8 7 6 5 4 3 2 1 For information on all MK publications visit our website at www.mkp.com This book is dedicated to our families. In praise of Software Networks: A Comprehensive Approach “SDN is here and Görannson’s book will fill a glaring need in the technical education community. It is a new game in town. This useful reference will help get our students up to speed and ready to play in this world of immense new possibilities.” —Brian Capouch, Assistant Professor of Computer Science, Saint Joseph’s College “This book is THE collection of the state-of-the-art in SDN. Göransson and Black have compiled all of the current literature into an easy-to-read text, preparing the reader to be both current in SDN tech- nology and aware of the impact that SDN will have today and tomorrow. This is a must-have on every network technologist’s shelf.” —Scott Valcourt, Director of Strategic Technology, University of New Hampshire “Göransson and Black have truly written a comprehensive book on SDN! This is the book we’ve all been waiting for. Göransson and Black provide an excellent background on SDN, how OpenFlow plays an important role in SDNs and how the close alignment with the open source movement has allowed this technology to progress at lightning speed over the past few years. Anyone who reads this book will walk away with a detailed understanding of SDN, OpenFlow, the SDN Ecosystem and even the busi- ness ramifications of implementing SDN. Personally, I can’t wait to use this book with my students in my SDN course.” —Robert M. Cannistra, NYS Cloud Computing Center - SDN Innovation Lab School of Computer Science and Mathematics, Marist College List of Figures Number Figure Page 1.1 Typical data center network topology. 6 1.2 Roles of the control, management, and data planes. 8 1.3 A packet’s journey through switching hardware. 10 1.4 Control plane consternation in the switch. 14 1.5 Overhead of dynamic distributed route computation. 15 1.6 Centralized programming of forwarding tables. 16 2.1 Networking functionality migrating to hardware. 22 2.2 Example graph of a network for shortest-path calculation. 23 2.3 Server virtualization: creating a new VM instance. 30 2.4 Creating a new network instance in the old paradigm. 31 2.5 Multipath. 33 3.1 Early attempts at SDN: RADIUS. 42 3.2 Early attempts at SDN: orchestration. 43 3.3 Early attempts at SDN: plugins. 45 3.4 ForCES design. 46 3.5 4D principles. 47 3.6 Ethane architecture. 49 3.7 General OpenFlow design. 50 4.1 SDN operation overview. 62 4.2 Controller-to-device communication. 63 4.3 SDN software switch anatomy. 64 4.4 SDN hardware switch anatomy. 65 4.5 SDN controller anatomy. 69 4.6 SDN controller northbound API. 71 4.7 SDN via existing APIs. 75 4.8 Virtualized networks. 76 xv xvi List of Figures 4.9 Encapsulated frames. 77 4.10 Virtual tunnel endpoints. 78 5.1 OpenFlow components. 82 5.2 OpenFlow V.1.0 switch. 84 5.3 OpenFlow controller-switch secure channel. 86 5.4 OpenFlow support for multiple queues per port. 87 5.5 OpenFlow V.1.0 flow table. 88 5.6 Basic flow entry. 88 5.7 Packet paths corresponding to virtual ports. 90 5.8 Controller-switch protocol session. 93 5.9 Controller programming flow entries in V.1.0. 96 5.10 Packet matching function: basic packet forwarding V.1.0. 97 5.11 Switch forwarding incoming packet to controller. 98 5.12 OpenFlow V.1.1 switch with expanded packet processing. 100 5.13 OpenFlow V.1.1 group table. 102 5.14 Packet matching function - basic packet forwarding, V.1.1. 105 5.15 Multicast using group table in V.1.1. 106 5.16 OpenFlow V.1.3 meter table. 111 5.17 Multiple connections and multiple channels from a switch. 113 5.18 V.1.3 flow entry. 114 5.19 Use of meters for QoS control in V.1.3. 115 6.1 Phased deployment of SDN. 120 6.2 Traditional network failure recovery. 121 6.3 SDN network failure recovery. 122 6.4 SDN controller as single point of failure. 122 6.5 Controller high availability and monitoring. 123 6.6 Controller cluster. 126 6.7 Controller hierarchy. 127 6.8 Deep packet inspection. 127 6.9 Stateful awareness for special protocols. 129 List of Figures xvii 6.10 Stateful awareness of application-level transactions. 130 6.11 Overlay operation. 137 6.12 Opening up the device. 140 6.13 SDN alternatives overlap. 142 7.1 MAC address table overflow. 148 7.2 VLAN exhaustion. 149 7.3 VXLAN packet format. 153 7.4 NVGRE packet format. 154 7.5 STT packet format. 155 7.6 Shortest path bridging: Q-in-Q (VLAN). 156 7.7 Shortest path bridging: MAC-in-MAC. 157 7.8 Fat-tree topology. 159 7.9 Optimal path selection by SDN controller. 164 8.1 Ensuring consistent policy configuration. 170 8.2 Google without OpenFlow. 173 8.3 Google with OpenFlow. 174 8.4 Service provider environment. 176 8.5 Service provider and SDN: MPLS (Courtesy [6]). 177 8.6 NAC captive portal application. 181 8.7 DNS blacklist application. 183 8.8 IP address blacklist application. 183 8.9 Mobile service providers. 185 8.10 Load balancers using OpenFlow. 189 8.11 Firewalls using OpenFlow. 190 8.12 Optical offload application overview. 192 9.1 SDN players ecosystem. 196 9.2 ONF vs. OpenDaylight board membership. 205 9.3 Focus of ONF vs. OpenDaylight. 207 10.1 Reactive application design. 214 10.2 Proactive application design. 216 xviii List of Figures 10.3 Blacklist application design. 219 10.4 Tunnels application design. 231 10.5 Offload application design. 233 10.6 NAC application design. 234 10.7 Traffic engineering proactive application design. 235 10.8 Traffic engineering reactive application design. 236 11.1 SDN open source landscape. 240 11.2 Applications of OpenFlow source. 244 11.3 Openstack components and roles. 253 11.4 Openstack plugins. 254 11.5 RouteFlow network topology (Courtesy of CPqD). 255 11.6 RouteFlow architecture (Courtesy of CPqD). 256 12.1 CAPEX on network equipment migrates to OPEX. 260 12.2 Agile environment for network administrators. 276 13.1 Gartner hype cycle. ((Courtesy Gartner, Inc.) [1]). 282 List of Tables Number Table Page 3.1 Precursors of SDN 40 3.2 Open Networking Foundation Working Groups 51 5.1 OFPT Message Types in OpenFlow 1.0 92 5.2 Major New Features Added in OpenFlow 1.1 99 5.3 Major New Features Added in OpenFlow 1.2 107 5.4 Major New Features Added in OpenFlow 1.3 110 5.5 OpenFlow Protocol Constant Classes 117 6.1 SDN Technologies Report Card 143 7.1 Comparison of Alternatives in Addressing Data Center Needs 160 7.2 Data Center SDN Implementations 166 9.1 2013 SDN Commercial Product List by Vendor 198 11.1 Open Source Implementations of OpenFlow: Description 245 11.2 Open Source Implementations of OpenFlow: Details 245 11.3 Open Source OpenFlow Switches: Description 246 11.4 Open Source OpenFlow Switches: Details 246 11.5 Open Source Controllers: Description 247 11.6 Open Source Controllers: Details 248 11.7 Open Source SDN Applications: Description 250 11.8 Open Source SDN Applications: Details 250 11.9 Open Source Orchestration Solutions: Description 251 11.10 Open Source Orchestration Solutions: Details 252 11.11 Open Source Test and Simulation: Description 252 11.12 Open Source Test and Simulation: Details 252 12.1 Major VCs Investing in SDN Startups as of 2013 267 12.2 Major SDN Acquisitions in 2012–2013 268 12.3 Startup Landscape in 2013 271 xix Foreword What is Software Defined Networking, and why has it created so much hype in the networking industry? This seems like a simple question to answer, yet I spent nearly three years traveling the world answering that very question for everyone from undergraduate engineering students to chief technol- ogy officers of major networking vendors.