index.md (1895B)
1 +++ 2 title = 'Software defined networking' 3 +++ 4 5 ## Software defined networking 6 Software defined network: 7 - control plane physically separate from data plane 8 - single (logically centralized) control plane controls several forwarding devices 9 10 Abstractions in SDN: 11 12 ![Diagram of abstractions in SDN](abstractions-in-sdn-diagram.png) 13 14 Forwarding abstraction: OpenFlow 15 - intent, independent of implementation 16 - standardized interface to switch 17 - configuration using flow entries: `<header, action>` 18 - match on any header, or new header 19 - action: forward to port(s), drop, send to controller, change header, forward at specific bit-rate 20 - but no support for payload-related functions 21 22 Network state abstraction: "Network Operating Systems" 23 - annotated network graph provided through API 24 - runs on servers in network 25 - information flows from router/switches to form view 26 - configurations flow to routers/switches to control forwarding 27 28 Specification abstraction 29 - control mechanism express desired behavior 30 - not responsible for implementing that behavior on physical network infrastructure 31 - proposed: abstract view of the network 32 33 ### Network testing (slicing) 34 Hard to realistically test new network services. 35 36 So, slice the network: 37 - divide production network into logical slices 38 - users pick which slice controls their traffic (testing is opt-in) 39 - enforce strong isolation between slices 40 41 Slicing policy specifies resource limit for each slice. 42 - FlowVisor can be used to enforce network slicing, by checking policies 43 44 ### Composing network control programs 45 CoVisor is compositional hypervisor for SDN: 46 - clean interface to compose multiple controllers on same network 47 - provides operators: parallel (`+`), sequential (`>>`), override (`▷`) 48 - constraints on individual controllers: 49 - visibility (virtual topology for each controller) 50 - capability (fine-grained access control)