network function control
play

Network Function Control Aaron Gember-Jacobson , Chaithan Prakash, - PowerPoint PPT Presentation

OpenNF: Enabling Innovation in Network Function Control Aaron Gember-Jacobson , Chaithan Prakash, Raajay Viswanathan, Robert Grandl, Junaid Khalid, Sourav Das, Aditya Akella 1 Network functions (NFs) Perform sophisticated stateful actions


  1. OpenNF: Enabling Innovation in Network Function Control Aaron Gember-Jacobson , Chaithan Prakash, Raajay Viswanathan, Robert Grandl, Junaid Khalid, Sourav Das, Aditya Akella 1

  2. Network functions (NFs) • Perform sophisticated stateful actions on packets/flows • Important goals: 1. Satisfy SLAs 2. Minimize costs 3. Act correctly 2

  3. NF trends • Network Functions Virtualization (NFV) WAN optimizer Caching proxy Intrusion detection system (IDS) 3

  4. NF trends • Network Functions Virtualization (NFV) → dynamically allocate NF instances Hypervisor 3

  5. NF trends • Network Functions Virtualization (NFV) → dynamically allocate NF instances • Software-defined Networking → dynamically reroute flows Hypervisor 3

  6. NF trends • Network Functions Virtualization (NFV) → dynamically allocate NF instances • Software-defined Networking → dynamically reroute flows Dynamic reallocation Hypervisor of packet processing e.g., elastic NF scaling 3

  7. Why NFV + SDN falls short Packet loss 1. SLAs 2. Cost 3. Accuracy Reroute new flows Reroute existing flows Wait for flows to die 4

  8. Why NFV + SDN falls short Packet loss SLA: <1% 1. SLAs 2. Cost 3. Accuracy Reroute new flows Reroute existing flows Wait for flows to die 4

  9. Why NFV + SDN falls short ? Packet loss SLA: <1% 1. SLAs 2. Cost 3. Accuracy Reroute new flows Reroute existing flows Wait for flows to die 4

  10. Why NFV + SDN falls short ? Packet loss SLA: <1% 1. SLAs 2. Cost 3. Accuracy Reroute new flows Reroute existing flows Wait for flows to die 4

  11. Why NFV + SDN falls short ? Packet loss 1. SLAs 2. Cost 3. Accuracy Reroute new flows Reroute existing flows Wait for flows to die 4

  12. Why NFV + SDN falls short ? Packet loss 1. SLAs 2. Cost 3. Accuracy Reroute new flows Reroute existing flows Wait for flows to die 4

  13. Why NFV + SDN falls short ? Packet loss 1. SLAs 2. Cost 3. Accuracy Reroute new flows Reroute existing flows Wait for flows to die 4

  14. SLAs + cost + accuracy: What do we need? • Quickly move, copy, or share internal NF state alongside updates to network forwarding state • Guarantees: loss-free, order- preserving, …    … 1 2 3 … Also applies to other scenarios 5

  15. Outline • Motivation and requirements • Challenges • OpenNF architecture • Evaluation 6

  16. Challenges 1. Supporting many NFs with minimal changes 2. Dealing with race conditions 3. Bounding overhead 7

  17. OpenNF overview Control Application move/copy/share state OpenNF NF State Manager Flow Manager Controller export/import State 8

  18. NF state taxonomy State created or updated by an NF applies to either a single flow or a collection of flows Multi-flow state Per-flow state TcpAnalyzer Connection HttpAnalyzer ConnCount Connection TcpAnalyzer All-flows state HttpAnalyzer Statistics 9

  19. NF API: export/import state • Functions: get , put , delete put Per Scope Multi All Filter get NF No need to expose/change internal state organization! 10

  20. Control operations: move Control Application Flow Manager move (port=80, IDS 1 , IDS 2 ) NF State Manager IDS 1 IDS 2 11

  21. Control operations: move Control Application Flow Manager move (port=80, IDS 1 , IDS 2 ) NF State Manager get(per, port=80) [Chunk1] [Chunk2] IDS 1 IDS 2 11

  22. Control operations: move Control Application Flow Manager move (port=80, IDS 1 , IDS 2 ) NF State Manager get(per, port=80) [Chunk1] del(per, port=80) [Chunk2] IDS 1 IDS 2 11

  23. Control operations: move Control Application Flow Manager move (port=80, IDS 1 , IDS 2 ) NF State Manager get(per, port=80) put (per, Chunk1) [Chunk1] del(per, port=80) put (per, Chunk2) [Chunk2] IDS 1 IDS 2 11

  24. Control operations: move Control Application Flow Manager move (port=80, IDS 1 , IDS 2 ) forward(port=80, IDS 2 ) NF State Manager get(per, port=80) put (per, Chunk1) [Chunk1] del(per, port=80) put (per, Chunk2) [Chunk2] IDS 1 IDS 2 Also provide copy and share 11

  25. Lost updates during move Malware hash move(red,Bro 1 ,Bro 2 ) check R1 B1 IDS 1 IDS 2 12

  26. Lost updates during move Malware hash move(red,Bro 1 ,Bro 2 ) check R1 B1 IDS 1 IDS 2 12

  27. Lost updates during move Malware hash move(red,Bro 1 ,Bro 2 ) check Missing R1 state B1 R2 IDS 1 IDS 2 12

  28. Lost updates during move Malware hash move(red,Bro 1 ,Bro 2 ) check Missing R2 R1 state B1 IDS 1 IDS 2 12

  29. Lost updates during move Malware hash move(red,Bro 1 ,Bro 2 ) check Missing R2 R1 state B1 IDS 1 IDS 2 12

  30. Lost updates during move Malware hash move(red,Bro 1 ,Bro 2 ) check Missing Missing R2 R1 state updates B1 R3 IDS 1 IDS 2 12

  31. Lost updates during move Malware hash move(red,Bro 1 ,Bro 2 ) check Missing Missing R2 R1 state updates B1 R3 IDS 1 IDS 2 Loss-free: All state updates should be reflected in the transferred state, and all packets should be processed 12

  32. NF API: observe/prevent updates using events NF R1 Only need to change an NF’s receive packet function! 13

  33. Use events for loss-free move R1 IDS 1 IDS 2 14

  34. Use events for loss-free move 1. enableEvents(red,noproc) on IDS 1 R1 NoProc IDS 1 IDS 2 14

  35. Use events for loss-free move 1. enableEvents(red,noproc) on IDS 1 2. get / delete on IDS 1 NoProc IDS 1 IDS 2 R1 14

  36. Use events for loss-free move 1. enableEvents(red,noproc) on IDS 1 2. get / delete on IDS 1 NoProc R2 IDS 1 IDS 2 R1 14

  37. Use events for loss-free move 1. enableEvents(red,noproc) on IDS 1 2. get / delete on IDS 1 3. Buffer events at controller NoProc IDS 1 IDS 2 R1 R2 14

  38. Use events for loss-free move 1. enableEvents(red,noproc) on IDS 1 2. get / delete on IDS 1 3. Buffer events at controller 4. put on IDS 2 R1 NoProc IDS 1 IDS 2 R2 14

  39. Use events for loss-free move 1. enableEvents(red,noproc) on IDS 1 2. get / delete on IDS 1 3. Buffer events at controller 4. put on IDS 2 5. Flush packets in events to IDS 2 R1,R2 R1 NoProc IDS 1 IDS 2 14

  40. Use events for loss-free move 1. enableEvents(red,noproc) on IDS 1 2. get / delete on IDS 1 3. Buffer events at controller 4. put on IDS 2 5. Flush packets in events to IDS 2 R1,R2 R1 NoProc 6. Update IDS 1 IDS 2 forwarding 14

  41. Use events for loss-free move 1. enableEvents(red,noproc) on IDS 1 2. get / delete on IDS 1 3. Buffer events at controller 4. put on IDS 2 5. Flush packets in events to IDS 2 R1,R2,R3 R1,R2 R1 NoProc 6. Update IDS 1 IDS 2 forwarding 14

  42. Implementation • Controller ( 3.8K lines of Java ) • Communication library (2.6K lines of C) • Modified NFs (3-8% increase in code) Bro IDS iptables Squid Cache PRADS 15

  43. Evaluation: benefits for elastic scaling • Bro IDS processing 10K pkts/sec – At 180 sec: move HTTP flows (489) to new IDS – At 360 sec: move back to old IDS • SLAs: 260ms to move (loss-free) • Accuracy: same log entries as using one IDS – VM replication: incorrect log entries • Cost: scale in after state is moved – Wait for flows to die: scale in delayed 25+ minutes 16

  44. Conclusion • Realizing SLAs + cost + accuracy requires quick, safe control of internal network function state • OpenNF provides flexible and efficient control with few modifications to NFs Learn more and try it! http://opennf.cs.wisc.edu 17

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend