9.1-Programming SDNs Flashcards
2 SDN mininet projects
1) write my own virtual switch
2) Use programming language designed for SDN to create a firewall
Consistency problems. Updating switch flow table entries from the controller
1) updates may disrupt packets along an end to end path (Packet level consistency problem)
2) Packets from the same flow may be disrupted (flow level consistency problem)
SDN Programming: Three steps
1) The controller need to Read/monitor network state (as well as various events in the network)
2) To Compute Policy based on state the controller sees on the network (Decision plane… deciding the forwarding behavior)
3) Write policy back to the switches by installing the appropriate flow table state into the switches.
Reading state: extra unexpected events
Solution:
1) Programmer specifies “Limit (1)”
2) Run-time system hides events
Consistency: Reading state
These 3 approaches help guarantee consistency when “reading state”
1) Predicates (i.e “and” and “not”)
2) Dynamically unfold rules as traffic arrives
3) suppression (limit 1 and hide events)
Consistency: writing state
Solution:
Two phase commit
1) Packets are either subjective to the old config on all switches
2) Or to the new configuration on all switches
But packets are not subjective to the new on some switches and the old on others
What problems can arise from inconsistent “writes” of network state?
1) Forwarding loops
2) Security policy violations
3) A flood of traffic at the controller
What are some ways of coping with inconsistency?
1) keeping the old and new state on the routers/switches (two phase state)
Network Virtualization
Abstraction of physical network
Why virtual Networking?
“Ossification” of internet architecture
enables evolution by letting multiple architectures exist in parallel.
Motivations for virtual networking?
1) Facilitating research/evolution by allowing coexistence
2) Adjusting resources to demand
Promise of Network Virtualization
1) Rapid innovation (software speed)
2) New forms of network control
3) (potentially) simpler programming
SDN vs Network Virtualization
SDN helped to allow network virtualization
SDN separates data and control
Network virtualization separates logical and physical
Network virtualization
1) Allowing multiple tenants to share underlying physical infrastructure
2) Separating logical and physical
Design goals for network virtualization
Flexible, manageable, scalable, secure, programmable, able to support different techs (homogeneous)