* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download SDN and Mininet - CSE Labs User Home Pages
Network tap wikipedia , lookup
Spanning Tree Protocol wikipedia , lookup
TCP congestion control wikipedia , lookup
Internet protocol suite wikipedia , lookup
Parallel port wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Deep packet inspection wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Real-Time Messaging Protocol wikipedia , lookup
Recall: Logically Centralized Control Plane A distinct (typically remote) controller interacts with local control agents (CAs) in routers to compute forwarding tables Remote Controller control plane data plane CA CA CA CA CA 1 Software Defined Networking (SDN) Why a logically centralized control plane? • easier network management: avoid router misconfigurations, greater flexibility of traffic flows • table-based forwarding (OpenFlow API) allows “programming” routers – centralized “programming” easier: compute tables centrally and distribute – distributed “programming” more difficult: compute tables as result of distributed algorithm (protocol) implemented in each and every router • open (non-proprietary) implementation of control plane 2 Generalized Forwarding and SDN Each router contains a flow table that is computed and distributed by a logically centralized routing controller logically-centralized routing controller control plane data plane local flow table headers counters actions 1 0100 1101 3 2 values in arriving packet’s header 3 OpenFlow Data Plane Abstraction • flow: defined by header fields • generalized forwarding: simple packet-handling rules – Pattern: match values in packet header fields – Actions: for matched packet: drop, forward, modify, matched packet or send matched packet to controller – Priority: disambiguate overlapping patterns – Counters: #bytes and #packets Flow table in a router (computed and distributed by controller) define router’s match+action rules 4 OpenFlow Data Plane Abstraction • flow: defined by header fields • generalized forwarding: simple packet-handling rules – Pattern: match values in packet header fields – Actions: for matched packet: drop, forward, modify, matched packet or send matched packet to controller – Priority: disambiguate overlapping patterns – Counters: #bytes and #packets * : wildcard 1. src=1.2.*.*, dest=3.4.5.* drop 2. src = *.*.*.*, dest=3.4.*.* forward(2) 3. src=10.1.2.3, dest=*.*.*.* send to controller 5 OpenFlow: Flow Table Entries Rule Action Stats Packet + byte counters 1. 2. 3. 4. 5. Switch VLAN Port ID Forward packet to port(s) Encapsulate and forward to controller Drop packet Send to normal processing pipeline Modify Fields MAC src MAC dst Link layer Eth type IP Src IP Dst IP Prot Network layer TCP sport TCP dport Transport layer 6 Examples Destination-based forwarding: Switch MAC Port src * * MAC Eth dst type * * Switch MAC Port src * IP Dst IP Prot TCP TCP Action sport dport * 51.6.0.8 * * * * port6 IP datagrams destined to IP address 51.6.0.8 should be forwarded to router output port 6 Firewall: * VLAN IP ID Src MAC Eth dst type * * VLAN IP ID Src IP Dst IP Prot TCP TCP Forward sport dport * * * * * 22 drop do not forward (block) all datagrams destined to TCP port 22 Switch MAC Port src * * MAC Eth dst type * * VLAN IP ID Src * 128.119.1.1 IP Dst IP Prot TCP TCP Forward sport dport * * * * drop do not forward (block) all datagrams sent by host 128.119.1.1 7 OpenFlow Abstraction match+action: unifies different kinds of devices Router • match: longest destination IP prefix • action: forward out a link Switch • match: destination MAC address • action: forward or flood • Firewall –match: IP addresses and TCP/UDP port numbers –action: permit or deny • NAT –match: IP address and port –action: rewrite address and port 8 OpenFlow Example match Example: datagrams from hosts h5 and h6 should be sent to h3 or h4, via s1 and from there to s2 action IP Src = 10.3.*.* forward(3) IP Dst = 10.2.*.* Host h6 10.3.0.6 1 s3 controller 2 3 4 Host h5 10.3.0.5 1 s1 s2 1 2 Host h1 10.1.0.1 4 2 3 ingress port = 1 IP Src = 10.3.*.* IP Dst = 10.2.*.* action forward(4) Host h4 10.2.0.4 3 Host h2 10.1.0.2 match 4 match Host h3 10.2.0.3 action ingress port = 2 forward(3) IP Dst = 10.2.0.3 ingress port = 2 forward(4) IP Dst = 10.2.0.4 9 Simple SDN Network L2 Forwarding Controller APIs POX, Floodlight, … Controller Communication Protocol Software or Hardware Switch Ethernet,IP,ARP,TCP,HTTP,… Host1 Host2 10 Communication Protocol (OpenFlow) 11 OpenFlow (Main Components) • Flow tables – Matching – Manipulation – Counters Controller • Communication messages – Controller to switch – Asynchronous – Symmetric Secure Channel Flow Table Flow Table Pipeline 12 Flow Tables (Structure) • A flow-table consists of – a set of flow entries Match fields Counters Instructions – a table miss configuration • Drop packet • Send to controller • Process using the next flow-table 13 Flow Tables (Matching) • • • • • Physical Ingress port Metadata L2 MAC src/dst, EtherType, VLAN, MPLS L3 IP src/dst, IP proto, IP ToS, ARP code L4 TCP/UDP src/dst, ICMP 14 Flow Tables (Counters) • Table counters – e.g. Packet lookups/matches • Flow counters – e.g. packets/bytes received • Port counters – e.g. packets/bytes transmitted/received, drops 15 Flow Tables (Actions) • Output – IN_PORT send packet to ingress port – CONTROLLER encapsulate and send to controller – FLOOD send packet to ports except ingress port • Drop • Push/Pop VLAN/MPLS tag • Set-Field – IPv4 src/dst addresses – MAC src/dst addresses – TCP src/dst ports 16 Communication Messages (Controller to Switch) • Features Switch replies with list of ports, ports speeds, supported tables and actions • Modify state Add, delete, or modify flow tables • Read state Controller queries table, flow, or port counters • Packet out Used by controller to send packets out of a specified port on the switch 17 Communication Messages (Asynchronous) • Packet in All packets that do not have a matching flow entry are encapsulated and sent to the controller • Flow removed Sent to controller when flow expires due to idle or hard timeouts • Port status Generated if a port is brought down 18 SDN Controller (POX) 19 POX • SDN controller written in Python • Many build-in modules • Python APIs to enable user extensions 20 POX (Built-in Modules) • Hub flood packets • L2 forwarding MAC learning • L3 forwarding IP learning • … 21 POX (Python APIs) • Publish-Subscribe system • A module can raise events • A module can register for events provides by other modules • A module must have a launch function 22 POX (Python APIs) 23 POX (Python APIs) 24 Software Switch (Open vSwitch) 25 Open vSwitch (Features) • Features – – – – – – – – – L2-L4 matching VLANs with trunking Tunneling protocols such as GRE Remote configuration protocol Multi-table forwarding pipeline Monitoring via NetFlow, sFlow Spanning Tree Protocol Fine-grained QoS OpenFlow support • Runs in either – Standalone mode – OpenFlow mode 26 A Network in a Laptop (Mininet) 27 Mininet • Mininet is a system for rapidly prototyping large networks on a single laptop • Lightweight OS-level virtualization – Isolated network namespace – Constrained CPU usage on isolated namespace • CLI and Python APIs • Can – Create custom topologies – Run real programs – Custom packet forwarding using OpenFlow 28 Mininet API Basics net = Mininet() h1 = net.addHost( 'h1' ) h2 = net.addHost( 'h2' ) s1 = net.addSwitch( 's1' ) c0 = net.addController( 'c0' ) net.addLink( h1, s1 ) net.addLink( h2, s1 ) net.start() CLI( net ) net.stop() # # # # # # net is a Mininet() object h1 is a Host() object h2 is a Host() s1 is a Switch() object c0 is a Controller() creates a Link() object c0 s1 h1 h2 10.0.0.1 10.0.0.2 Performance Modeling in Mininet # Use performance-modeling link class net = Mininet(link=TCLink) # Limit link bandwidth and add delay net.addLink(h2, s1, bw=10, delay='50ms') controlle r s1 h1 h2 10.0.0.1 10.0.0.2 Mininet (Examples) 31 References • OpenFlow http://www.openflow.org • Open vSwitch http://www.openvswitch.org • POX https://openflow.stanford.edu/display/ONL/POX+Wiki • Mininet http://mininet.org • Floodlight OpenFlow Controller http://www.projectfloodlight.org/floodlight/ 32 Data Center Networks • 10’s to 100’s of thousands of hosts, often closely coupled, in close proximity: – e-business (e.g. Amazon) – content-servers (e.g., YouTube, Akamai, Apple, Microsoft) – search engines, data mining (e.g., Google) challenges: multiple applications, each serving massive numbers of clients managing/balancing load, avoiding processing, networking, data bottlenecks Inside a 40-ft Microsoft container, Chicago data center 33 Data Center Networks load balancer: application-layer routing receives external client requests directs workload within data center returns results to external client (hiding data center internals from client) Internet Border router Load balancer Access router Tier-1 switches B A Load balancer Tier-2 switches C TOR switches Server racks 1 2 3 4 5 6 7 8 34 Data Center Networks rich interconnection among switches, racks: • increased throughput between racks (multiple routing paths possible) • increased reliability via redundancy Tier-1 switches Tier-2 switches TOR switches Server racks 1 2 3 4 5 6 7 8 35