Table Of ContentSoftware-Defined Networking
(SDN) with OpenStack
Leverage the best SDN technologies for your OpenStack-
based cloud infrastructure
Sriram Subramanian
Sreenivas Voruganti
BIRMINGHAM - MUMBAI
Software-Defined Networking (SDN) with
OpenStack
Copyright © 2016 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or
transmitted in any form or by any means, without the prior written permission of the
publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the
information presented. However, the information contained in this book is sold without
warranty, either express or implied. Neither the authors, nor Packt Publishing, and its
dealers and distributors will be held liable for any damages caused or alleged to be caused
directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the
companies and products mentioned in this book by the appropriate use of capitals.
However, Packt Publishing cannot guarantee the accuracy of this information.
First published: October 2016
Production reference: 1211016
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78646-599-3
www.packtpub.com
Credits
Authors Copy Editor
Sriram Subramanian Safis Editing
Sreenivas Voruganti
Reviewer Project Coordinator
Alberto Morgante Medina Sheejal Shah
Commissioning Editor Proofreader
Kartikey Pandey Safis Editing
Acquisition Editor Indexer
Prachi Bisht Rekha Nair
Content Development Editor Production Coordinator
Divij Kotian Melwyn Dsa
Technical Editor Cover Work
Shivani K. Mistry Melwyn Dsa
About the Authors
Sriram Subramanian is an experienced professional with over 19 years' experience of
building networking and network management products. Since 2011, Sriram has been
working with Juniper Networks, leading engineering teams responsible for OpenStack
Neutron plugins, VMware integration, and network management products. He is a
technologist with a passion for virtualization and cloud networking. Sriram blogs regularly
at http://www.innervoice.in/blogs and loves experimenting with new technologies and
programming. He is the author of OpenStack Networking Cookbook, Packt.
I would like to dedicate this book to my family. I want to thank my wife, Kala, for her
support during this entire project. Her "give your best" attitude motivates me to strive
harder in managing my time and energy effectively. I also want to thank Appa and Amma
for their patience and blessings. And a special thank you to my daughter Navya and our
labrador Neige for the joie de vivre they bring to my life.
I extend a special thank you to my employer, Juniper Networks, and specifically my
manager, Rakesh Manocha. The leadership team at Juniper has created an environment
where individuals can pursue excellence through innovation. It has helped me expand my
knowledge and capabilities beyond my imagination.
I would like to express my gratitude to my publishers, Packt and the reviewers, who
provided invaluable feedback. Thanks to Divij Kotian, our editor, who played a crucial role
keeping this book project on track. Finally, a big thank you to Sreeni for being a great co-
author and partner on this exciting book journey.
Sreenivas Voruganti is presently driving IoT solutions at Aricent. He previously led
engineering teams responsible for building networking, wireless LAN, and SDN products
at Juniper Networks. He has contributed to building a range of IP and ATM-based Telco
products at Lucent Technologies, Tellabs, and BHEL.
He is an avid student of emerging trends in networking and virtualization technologies and
is passionate about integrating them to deliver solutions. His current interests include IoT,
SDN, and NFV.
He is an inventor and has US Patent grants on networking, QoS, and wireless.
What started as an idea over coffee has come to form thanks to Sriram's drive and
insightful ideas on book writing. Thanks, Sriram, for all the fun times working together.
I would like to dedicate this book to my parents for their blessings and wishes, to my wife,
Nimmi, and sons, Aaditya and Arjun, for unstinting support through this endeavor.
Thanks to Alberto for valuable review comments, Divij Kotian, our editor, for fantastic
support, Shivani for great job in editing the content, and our publishers Packt.
Finally, a big thank you to all the folks who contributed to the SDN open source
implementations and friends who helped refine my understanding.
About the Reviewer
Alberto Morgante Medina is an engineer who's passionate about cloud computing. He
loves new technologies, and he thinks that SecDevOps is the way to improve and apply
them. He's always looking for new challenges. He has been working on OpenStack, several
SDN solutions, information security, and other related IT areas since 2010. He is currently
working at BBVA Bank as an innovation engineer. Before that, he worked at Telefónica as a
cloud computing and security engineer.
www.PacktPub.com
For support files and downloads related to your book, please visit www.PacktPub.com.
Did you know that Packt offers eBook versions of every book published, with PDF and
ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a
print book customer, you are entitled to a discount on the eBook copy. Get in touch with us
at service@packtpub.com for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a
range of free newsletters and receive exclusive discounts and offers on Packt books and
eBooks.
https://www.packtpub.com/mapt
Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt
books and video courses, as well as industry-leading tools to help you plan your personal
development and advance your career.
Why subscribe?
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Table of Contents
Preface
1
Chapter 1: OpenStack Networking in a Nutshell
6
Virtual and physical networking 7
Tenant isolation 10
Layer 2 (L2) capabilities in OpenStack 11
Creating a network using OpenStack CLI 11
Creating a subnet using OpenStack CLI 12
Associating a network and subnet to a virtual machine 12
Layer 3 (L3) capabilities in OpenStack 14
Creating a router using OpenStack CLI 15
Associating a subnetwork to a Router 15
Securing network traffic in OpenStack 16
Using security groups to secure traffic within a network 18
Using firewall service to secure traffic 19
Advanced networking services 21
Load Balancing as a Service (LBaaS) 21
Virtual Private Network as a Service (VPNaaS) 22
OpenStack and SDN context 22
Choice of technology 22
OpenStack API for networking 22
Summary 23
Chapter 2: Introduction to Software-Defined Networking
24
Components of traditional networks 25
Key aspects of the networking planes 26
Challenges faced by traditional networks 27
Control plane challenges 27
Management plane challenges 28
SDN reference architecture 28
Control plane improvements with SDN 29
Management plane improvements with SDN 30
SDN and OpenStack 30
OpenStack and Network abstractions 31
OpenStack and RESTful API 31
OpenStack and centralized management 31
Summary 31
Chapter 3: SDN Protocols
32
Getting familiar with SDN protocols 32
Open vSwitch 33
Configuration management protocols 36
Protocols 37
YANG 37
YIN 37
pyang 38
NETCONF 40
Netopeer 41
OF-CONFIG 43
OVSDB 44
JSON-RPC transport 44
OVSDB schema 45
OF-CONFIG server for Open vSwitch 47
Understanding OpenFlow 51
OpenFlow as an API 52
OpenFlow as a control plane 52
OpenFlow tables 52
OpenFlow matching 53
OpenFlow actions and instructions 54
OpenFlow Wireshark Dissector 55
Summary 57
Chapter 4: SDN Networking with Open vSwitch
58
OVS Networking with Linux Network namespace 59
OVS networking with SDN controller 64
OVS and Mininet 66
OVS connected to virtual machines 69
OpenStack Neutron 73
Neutron services layout 75
Open vSwitch (OVS) plugin and agent 75
Summary 76
Chapter 5: Getting Started with OpenDaylight
77
Introduction to OpenDaylight 78
Architecture of OpenDaylight 78
REST API 79
Controller platform 80
[ ii ]