Software Defined Networking, Concepts and Practical Implementations

bdnog 144 views 36 slides Jul 15, 2024
Slide 1
Slide 1 of 36
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36

About This Presentation

This presentation about Software Defined Networking including Understanding the problem, Traditional network vs. SDN,Basic Concepts,Role of OpenFlow Protocol


Slide Content

Software Defined Networking Concepts and Practical Implementations Hasan-Uz-Zaman Ashik Fiber@Home Limited.

Agenda Understanding the problem Introduction Traditional network vs. SDN Basic Concepts of SDN The Role of OpenFlow Protocol in SDN SDN controller-data plane interaction Key Tools Utilized in SDN Implementations In-Depth Look at the OpenDaylight (ODL) Controller Implementation of Mininet, ODL, and BGP-LS 2

Understanding the problem The Internet (from outside) • Tremendous success – From research experiment to global infrastructure • Brilliance of under-specifying – Network: best-effort packet delivery – Programmable hosts: arbitrary applications • Enables innovation – Apps: Web, P2P, VoIP, social networks, … – Links: Ethernet, fiber optics, Wi-Fi, cellular, … • Changes are easy at the edge! 3

Understanding the problem(Cont.) The Internet (from inside) Closed equipment – Software bundled with hardware – Vendor-specific interfaces Over specified – Slow protocol standardization Few people can innovate – Equipment vendors write the code – Long delays to introduce new features Lots of domain details – Whole bunch of protocols and header formats – Lots of boxes (Routers, Switches, Firewalls) and tools Impacts performance, security, reliability, cost… 4

Understanding the problem(Cont.) Lack of centralized management Inflexible and difficult to program Device-specific configurations limiting scalability, maintenance Inefficiency in dynamic, large-scale environments Difficulty in rapid service creation and delivery Challenges in adapting BYOD growth and enterprise agility 5

Introduction to SDN (Software-Defined Networking) SDN Solution: Coined in 2009 Concept: Separates the control plane from the data plane Uses a logical "centralized" controller to manage network devices' processing functionalities Results: Improved Scalability Enhanced Management Enhanced Visibility of Network Resources Reduced Manual Intervention Increased Control Over the Network Enhanced Security And much more... Applications: Data centers Wide-area backbone networks Enterprise networks Internet exchange points Home networks 6

Traditional network vs. SDN Many complex functions backed into infrastructure OSPF, BGP, Multicast, differentiated services, Traffic engineering, NAT, firewall, MPLS… Devices acts based on flows installed by controller 7

Basic Concepts of SDN 8

Basic Concepts of SDN(Cont.) 9

Basic Concepts of SDN(Cont.) Control & Data Planes Control plane : Makes decisions about where traffic is sent Data plane : Forwards traffic to the selected destination. Data Plane Switches Control Plane: SDN controller Fast, simple, commodity switches implementing generalized data-plane forwarding in hardware Maintain network state information Switch flow table computed, installed by controller Interacts with network control applications “above” via northbound API API for table-based switch control (e.g., OpenFlow) Interacts with network switches “below” via southbound API Protocol for communicating with controller (e.g., OpenFlow) Implemented as distributed system for performance, scalability, fault-tolerance, robustness 10

Basic Concepts of SDN(Cont.) Programmability of the Control Plane Moving the control plane to software (instead of firmware) allows for more flexible and dynamic access to network resources and administration Network administer can control traffic, manage resources, reconfigure network devices, without having to touch “individual” devices! The SDN controller will update tables, computes least cost paths, react to events (link/node failures, nodes joining in, perform load balancing (especially in locations close to data centers), implement network policies, etc … SDN controller needs to establish connectivity with every device in network • Problem of Single point of failure in centralized control??? SDN suggests multiple “standby controllers” 11

Basic Concepts of SDN(Cont.) Standardization of APIs With a programmable centralized control plane, the network can be partitioned into several virtual networks (all sharing the same hardware infrastructure), each with different polices Above is possible through the creation of standard APIs SDN allows applications to interact with the network through the control plane. They can direct the configuration of networks, optimize resource allocations, etc … Southbound API: Communications between the control plane and the data plane. Example: Open Flow Northbound API: Communications between applications and the control plane 12

The Role of OpenFlow Protocol in SDN Operates between controller, switch TCP used to exchange messages Three classes of OpenFlow messages: Controller to Switch Asynchronous (Switch to Controller) Symmetric (miscellaneous) The switch is represented by a logical abstraction of a single flow table that performs packet lookup (header matching) and forwarding. OpenFlow does NOT dictate any hardware implementation or architecture of Switches. OpenFlow exploits the fact that Ethernet switches and routers contain flow-tables that run at line-rate to implement firewalls, NAT, QoS, and to collect statistics . While each vendor’s flow-table is different, there is common set of functions that run in these switches and routers. 13

Open Flow: Flow Tables Entries Packets are matched against flow entries based on prioritization. An entry that specifies an exact match (i.e., it has no wildcards) is always the highest priority. All wildcard entries have a priority associated with them. Higher priority entries must match before lower priority ones. If multiple entries have the same priority, the switch is free to choose any ordering. 14

SDN controller-data plane interaction S1, experiencing link failure using OpenFlow port status message to notify controller SDN controller receives OpenFlow message, updates link status info Dijkstra’s routing algorithm application has previously registered to be called when ever link status changes . It is called. Dijkstra’s routing algorithm access network graph info , link state info in controller, computes new routes Link state routing app interacts with flow-table-computation component in SDN controller, which computes new flow tables needed. Controller uses OpenFlow to install new tables in switches that need updating. 15

Key Tools Utilized in SDN Implementations OpenFlow Manager (OFM) Mininet S-Flow 16

OpenDaylight Controller 17

Implementation of Mininet, ODL, and BGP-LS Built Mininet topologies Linked Mininet with OpenDaylight (ODL) Controlled devices using custom flows Generated and passed payloads in the topology Measured parameters by varying intensity Collected data from controller using REST API (Java) Compared obtained results Established BGP-LS peering with Cisco router Collected LSAs of IGP 18

OFM Topology View 19

Ping Test 20 All hosts can ping each other At this stage all hosts can get access to all hosts as in the flow table ODL informed nodes to forward all packets rather than host mac/ ip based filtering.

Block Ping Direction 21 Now let’s block host 8 towards host 6 direction. We will do this in s8_edge device in host connected port eth3.

Block Ping Direction ( Cont ) 22 Add a flow that will block ICMP echo request. sudo ovs-ofctl add-flow s8_edge priority=2000,in_port="s8_edge eth3",dl_type=0x0800,nw_proto=1,icmp_type=8,icmp_code=100,actions=drop --protocols OpenFlow13 Here, ethernet type is dl_type =0x0800, icmp_type =8 for echo request. Now, need to add another flow that will block ICMP echo reply towards destination host H8 ip 20.0.0.8 sudo ovs-ofctl add-flow s8_edge priority=2000,in_port="s8_edge-eth3",dl_type=0x0800,nw_proto=1,icmp_type=0,nw_dst=20.0.0.8/32,actions=drop --protocols OpenFlow13

Block Ping Direction( Cont ) 23 Finally, let’s do ping test. H8 is not getting ping to H6. H6 can ping to H8 and all other hosts.

Traffic generation & measure parameters Generated Data Center like payload from given CDF Built Data Center Network in Mininet, link capacity 20 mbps Passed the traffic among randomly selected two hosts by varying generated workloads Increased link capacity • links between edge switch & aggregation switches: 80 Mbps • links between core switch & aggregation switches: 160 Mbps 24

Mininet Dashboard 25

Mininet Dashboard Traffic Flow 26

27 Source to destination traffic send using D-ITG tool

28 Generated log file for each flow

Analysis of time requirement before and after capacity increment Intensity Total time 20 Mbps link 29 Increased capacity 160 and 80 Mbps Total time Intensity Total time requirement decreased after incrementing capacity

K-4 ary tree topology using Mininet 30

BGP-LS Cisco-XR router configuration 31

BGP peer with controller 32

How BGP-LS Works Collection of Link-State Information : Routers collect link-state information through Interior Gateway Protocols (IGPs) like OSPF or IS-IS. Advertisement via BGP-LS : This information is then advertised using BGP-LS to other routers or SDN controllers. Topology Database : The received link-state information is stored in a topology database which is then used to make routing decisions and optimize network traffic. 33

How BGP-LS Works 34 Example of BGP-LS Database V – Node Descriptor E – Link Descriptor T – Prefix Descriptor

BGP Link-State Information 35

36