Controller
Transcription
Controller
The Definitive Software for Software-defined Networks Tim Ogden Arista Networks, Federal togden@aristanetworks.com Flow Granular Service Provisioning Agility Operational Performance Sustainable Scale Agility = Choice of Operating Modes Interoperate with existing network architectures and topologies Transition to and from controllerbased models without hardware changes Significantly improves the reliability and survivability of SDNs by combining the best of protocol and controller based models Low cost ability to shift modes Controller-less Controller Mode Mode Control Layer eAPI or CLI Topology Construction IS-IS BGP OSPF MLAG PIM-SM Pre-SDN Network L2/L3 L4-7 App App Operating System Routers Switches Remote-access devices … Packet-Forwarding Hardware L2/L3 L4-7 App App L2/L3 L4-7 App App Operating System Operating System Packet-Forwarding Hardware Packet-Forwarding Hardware ‘Purist View’ SDN Network App App App App Well-defined Open API Central Network Controller/ Network Operating System OpenFlow OpenFlow compliant OS Packet-Forwarding Hardware OpenFlow compliant OS OpenFlow compliant OS Packet-Forwarding Hardware Packet-Forwarding Hardware Example: A Reactive Packet Flow OpenFlow Controller Arista 7050 2 4 3 12:32:45:67:89:ab | 01:01:01:01:01:01 | 10.0.1.2 | 10.0.1.3 | … “match xyz, rewrite VLAN, forward to port 42” 1 OF Agent in Switch 1. Packet enters first OpenFlow switch 10.0.1.2 10.0.1.2 10.0.1.2 5 Proactive is possible too! Just skip #1 and #2… 2. Packet header forwarded to controller (pkt_in) 3. Controller does a “lookup” based on pkt: Any metadata about src and dst (e.g. tenant)? Are src and dst on same L2 network? What is the best path from src to dst? Any ACLs resolving to ‘drop’? Any tunnel encap or rewrites needed? Any other external software/DBs to use (radius, directory)? 4. Controller sends down flow table entries to all switches on the path (flow_mods) 5. All subsequent matching packets flow at line rate So… What Then? Key functions of the OpenFlow 1.0 API • Controller<->datapath interaction • Add/delete/modify forwarding entries in the datapath (“flow_mod”) • Punt packets up to a controller (“packet_in”) • Send packets to the datapath (“packet_out”) • • • • “Matches” on packet fields (L1-L4) with a variety of “actions” Switching: match L2, forward out port Routing: match L3, decrement TTL, forward out port Network Access Control: match ACL, drop • Query statistics • Interface counters • Flow counters • Forwarding table usage Controller-less alternative - Digging deeper… DirectFlow Action Storm Control STP/VLAN PORT ACL Port ACL Action Permit/Drop DirectFlow Rule Ingress Bridging Egress Bridging Router ACLs L3 Forwarding STP Port State VLAN Membership Rules L2 Forwarding Rules MAC FDB, Static Rules Layer 3 ACLs Permit/Drop Routing Table Next-hop FDB DirectFlow applied after L2 VLAN membership decision in the forwarding pipeline Egress ACLs Controller-less Flow Actions CPU Eth-1 VLAN N, Smac-A, Dmac-B VLAN X, SA, DB DF Rule Eth-2 Po-1 Or all ports in the VLAN VLAN Y, SA, DB VLAN Y, Smac-C, Dmac-B DF Rule VLAN Z, Smac-A, Dmac-D VLAN Z, SA, DB Redirect Traffic to an Interface Change Egress Frame • Single Physical or Port-Channel Interface • Group of Interfaces or the VLANs Flood set • Send to the CPU DF Rule VLAN Z, SA, DB Change QoS Parameters • • • • Change the CoS value of the match flow Change the ToS value of the match flow Change the internal TC for the match fl Change the original Dmac of the frame VLAN X, SA, DB VLAN Y, SA, DB + TOS VLAN X, SB, DA VLAN Z, DA, DB, Internal TC 5 VLAN X, SB, DA VLAN X, SA, DB VLAN N, SA, DB. + Cos 7 VLAN X, SA, DB VLAN Y, SA, DB • Change the egress VLAN of the frame • Change the original Smac of the frame • Change the original Dmac of the frame VLAN X, SA, DB DF Rule VLAN X, SB, DA Mirror Traffic • Mirror specific traffic flows on ingress to a monitor port • Mirror specific traffic flows on egress to a monitor port • Mirror specific traffic flows on ingress and egress to a monitor port Controller-less Flow Matches/Actions Match Fields • Match on one or multiple Fields • • Match on the SRC/DST (IP, mac, Port) Actions on Match • Actions • Action ingress/egress traffic mirror • Action set priority • Action set VLAN <n> • Action set SRC/Dst mac • Action set ip TOS Match on the input (Port or Port-Channel) • Match on Ethertype <0-65535> • Match on cos <0-7> • Match on VLAN ID <0-494> • Match on SRC &/or Dst IP/MASK • Match icmp code/type • Match on protocol number • Match SRC/DST Port numbers • Match on IP TOS • Action output interface <list>, flood, CPU, drop • Action set transmit queue and cos value • Action drop Controller-less Networks - Key Takeaways • Paradigm shift to flow-based traffic programmability • Choice of Controller-less programmatic control of switch behavior • Use dynamic network diagnostic data to programmatically handle specific traffic flows or exception traffic State Database Linux Kernel Extensible Network O/S Systems Integration - F5, Palo Alto, Splunk, etc KVM - Virtual Machine Cloud Orchestration API Multi-device Mgmnt Client LED ASIC Drivers Spanning Tree Command Line interface Interface Manager Routing Protocols Service Excellence – Programmable networks Openflow 1.0/1.3 - multi-vendor services Customized flow pathing JSON Web Services API Local Scripts - Python, TCL, Shell Local Daemons/Extensions - C++, Python, etc Service Excellence – Sustainable Scale Spline™ Servers Server Scale: Middle of Row Layer 2 / MLAG Servers 100 to 2,000 Layer 3 / ECMP L2 over Layer 3 VXLAN Servers Servers Servers 100 to 10,000 100 to 100,000+ 100 to 100,000+ The Definitive Software -Tim Ogden @AristaFederal DirectFlow L2 Feature Interactions DirectFlow Interaction with L2 Forwarding DB DirectFlow Interaction with Spanning Tree • Even when a flow matches on DirectFlow rule, SMAC of the flow is still learned and aged as normal • Operates after STP logic, packets RX/TX to a blocking STP port are dropped by STP • DirectFlow rules have priority over all other MAC tables rules, static/drop entries • BPDUs are always forwarded to the CPU ; can only be acted on by DirectFlow if STP is disabled • DirectFlow alters the VLAN, mac address still learned on the original VLAN • LACP, LLDP, sFlow packets always trapped to the CPU • Egress vlan rules still applicable, so re-write VLAN must exist on the egress port • Support for QinQ traffic with match on outer VLAN TAG Service Excellence – Operational Performance Programmability – open and programmable network operating system – EOS Traffic Engineering – broadest set of controls and options for steering, shaping, redirecting and copying traffic Orchestration – API connections to cloud and virtualization platforms to automate provisioning Network Automation– OpenStack, OpenFlow, VMware Heterogeneous SDN Network App App App Well-defined Open API App Central Network Controller/ Network Operating System APIs L2/L3 L4-7 OpenFlow 1.x Operating System L2/L3 L4-7 OpenFlow 1.x Packet-Forwarding Hardware L2/L3 L4-7 OpenFlow 1.x Operating System Operating System Packet-Forwarding Hardware Packet-Forwarding Hardware Software Defined Cloud Networks Arista DirectFlow Control Enables direct CLI and eAPI control over specific flow switching operations Extends the capabilities of OpenFlow with controller-less operation and enables per-flow pattern-matching with full control Arista eAPI or CLI Enables firewall load balancing, purpose-built backup network consolidation, etc. Available Summer 2013 Software Defined Cloud Networks Traditional Routing/Switching Mode 10.11.11.0/24 via Leaf-B Spine-A 10.11.11.0/24 via Spine-A 10.10.10.2 Leaf-A Leaf-B Spine-B Spine-C 10.11.11.2 Backup HTTP SMTP/Mail SIP/Voice Software Defined Cloud Networks Custom Flow Programming Spine-A 10.11.11.0/24 via Spine-A @1800-2400 Backup via SpineB 10.10.10.2 10.11.11.0/24 via Spine-C @1800-2400 Backup via Spine-C Leaf-A Leaf-B Spine-B Spine-C 10.11.11.2 Backup HTTP SMTP/Mail SIP/Voice EOS API – Sample Show Request/Response Response Request { { "jsonrpc": "2.0”, "result": [ { "Ethernet3" : { 'bandwidth': 10000000, 'description': '', 'interfaceStatus': 'up', 'mtu': 9212, 'physicalAddr': '0000.4401.0001’ } } ], “id”: 1 "jsonrpc": "2.0", "method": "runCli“, "params": { "cmds": [ "show interface Ethernet3“, ], "format": "json" }, "id": 1 } } Software Defined Cloud Networks sysDB - Central State Database KVM - Virtual Machine vCenter API XMPP Client LED ASIC Drivers Spanning Tree CLI Interface Manager Routing Protocols eAPI links Arista to other industry leaders - bringing the best together for our customers eAPI Stock 2.6.31 x64 Linux Kernel EOS - Extensible Network O/S Software Defined Cloud Networks