opennf enabling innovation in network function control
play

OpenNF: Enabling Innovation in Network Function Control Aaron - 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 WAN optimizer Caching proxy Intrusion detection system (IDS) 2

  3. NF trends • NFV → dynamically allocate NF instances Xen/KVM 3

  4. NF trends • NFV → dynamically allocate NF instances Xen/KVM 3

  5. NF trends • NFV → dynamically allocate NF instances • SDN → dynamically reroute flows Xen/KVM 3

  6. NF trends • NFV → dynamically allocate NF instances • SDN → dynamically reroute flows Xen/KVM 3

  7. NF trends • NFV → dynamically allocate NF instances • SDN → dynamically reroute flows Dynamic reallocation of packet processing Xen/KVM 3

  8. Example: elastic NF scaling 4

  9. Example: elastic NF scaling 1. Satisfy performance SLAs 4

  10. Example: elastic NF scaling 1. Satisfy performance SLAs CPU Packet loss 4

  11. Example: elastic NF scaling 1. Satisfy performance SLAs CPU Packet loss 4

  12. Example: elastic NF scaling 1. Satisfy performance SLAs 2. Minimize operating costs CPU Packet loss 4

  13. Example: elastic NF scaling 1. Satisfy performance SLAs 2. Minimize operating costs CPU Packet loss 4

  14. Example: elastic NF scaling 1. Satisfy performance SLAs 2. Minimize operating costs 3. Accurately monitor traffic CPU Packet loss 4

  15. Problem: NFV+SDN is insufficient To simultaneously … 1. Satisfy performance SLAs 2. Minimize operating costs 3. Accurately monitor traffic Cannot effectively implement new services or abstractions! 5

  16. Why NFV + SDN falls short Packet loss 1. SLAs 2. Cost 3. Accuracy Reroute new flows [Stratos - arXiv:1305.0209] Reroute existing flows [SIMPLE - SIGCOMM ‘13] Wait for flows to die 6 [Stratos - arXiv:1305.0209]

  17. Why NFV + SDN falls short Packet loss SLA: <1% 1. SLAs 2. Cost 3. Accuracy Reroute new flows [Stratos - arXiv:1305.0209] Reroute existing flows [SIMPLE - SIGCOMM ‘13] Wait for flows to die 6 [Stratos - arXiv:1305.0209]

  18. Why NFV + SDN falls short ? Packet loss SLA: <1% 1. SLAs 2. Cost 3. Accuracy Reroute new flows [Stratos - arXiv:1305.0209] Reroute existing flows [SIMPLE - SIGCOMM ‘13] Wait for flows to die 6 [Stratos - arXiv:1305.0209]

  19. Why NFV + SDN falls short ? Packet loss SLA: <1% 1. SLAs 2. Cost 3. Accuracy Reroute new flows [Stratos - arXiv:1305.0209] Reroute existing flows [SIMPLE - SIGCOMM ‘13] Wait for flows to die 6 [Stratos - arXiv:1305.0209]

  20. Why NFV + SDN falls short ? Packet loss 1. SLAs 2. Cost 3. Accuracy Reroute new flows [Stratos - arXiv:1305.0209] Reroute existing flows [SIMPLE - SIGCOMM ‘13] Wait for flows to die 6 [Stratos - arXiv:1305.0209]

  21. Why NFV + SDN falls short ? Packet loss 1. SLAs 2. Cost 3. Accuracy Reroute new flows [Stratos - arXiv:1305.0209] Reroute existing flows [SIMPLE - SIGCOMM ‘13] Wait for flows to die 6 [Stratos - arXiv:1305.0209]

  22. Why NFV + SDN falls short ? Packet loss 1. SLAs 2. Cost 3. Accuracy Reroute new flows [Stratos - arXiv:1305.0209] Reroute existing flows [SIMPLE - SIGCOMM ‘13] Wait for flows to die 6 [Stratos - arXiv:1305.0209]

  23. Why NFV + SDN falls short ? Packet loss 1. SLAs 2. Cost 3. Accuracy Reroute new flows [Stratos - arXiv:1305.0209] Reroute existing flows [SIMPLE - SIGCOMM ‘13] Wait for flows to die 6 [Stratos - arXiv:1305.0209]

  24. 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 7

  25. Outline • Motivation and requirements • Challenges • OpenNF architecture – State export/import – State operations – Guarantees • Evaluation 8

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

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

  28. 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 11

  29. NF API: export/import state • Functions: get , put , delete Per Scope Multi All Filter NF 12

  30. NF API: export/import state • Functions: get , put , delete Per Scope Multi All Filter get NF 12

  31. NF API: export/import state • Functions: get , put , delete put Per Scope Multi All Filter get NF 12

  32. 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! 12

  33. Control operations: move Control Application Flow Manager move (port=80, Bro 1 , Bro 2 ) NF State Manager Bro 1 Bro 2 13

  34. Control operations: move Control Application Flow Manager move (port=80, Bro 1 , Bro 2 ) NF State Manager get(per, port=80) Bro 1 Bro 2 13

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

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

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

  38. Control operations: move Control Application Flow Manager move (port=80, Bro 1 , Bro 2 ) forward(port=80, Bro 2 ) NF State Manager get(per, port=80) put (per, Chunk1) [Chunk1] del(per, port=80) put (per, Chunk2) [Chunk2] Bro 1 Bro 2 13

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

  40. Lost updates during move detect- MHR Bro 1 Bro 2 14

  41. Lost updates during move detect- MHR R1 B1 Bro 1 Bro 2 14

  42. Lost updates during move detect- move(red,Bro 1 ,Bro 2 ) MHR R1 B1 Bro 1 Bro 2 14

  43. Lost updates during move detect- move(red,Bro 1 ,Bro 2 ) MHR R1 B1 Bro 1 Bro 2 14

  44. Lost updates during move detect- move(red,Bro 1 ,Bro 2 ) MHR Missing R1 state B1 R2 Bro 1 Bro 2 14

  45. Lost updates during move detect- move(red,Bro 1 ,Bro 2 ) MHR Missing R2 R1 state B1 Bro 1 Bro 2 14

  46. Lost updates during move detect- move(red,Bro 1 ,Bro 2 ) MHR Missing R2 R1 state B1 Bro 1 Bro 2 14

  47. Lost updates during move detect- move(red,Bro 1 ,Bro 2 ) MHR Missing Missing R2 R1 state updates B1 R3 Bro 1 Bro 2 14

  48. Lost updates during move detect- move(red,Bro 1 ,Bro 2 ) MHR Missing Missing R2 R1 state updates B1 R3 Bro 1 Bro 2 Loss-free: All state updates should be reflected in the transferred state, and all packets should be processed • Split/Merge [NSDI ‘13] : pause traffic, buffer packets – Packets in-transit when buffering starts are dropped 14

  49. NF API: observe/prevent updates using events NF 15

  50. NF API: observe/prevent updates using events NF 15

  51. NF API: observe/prevent updates using events NF 15

  52. NF API: observe/prevent updates using events NF R1 15

  53. NF API: observe/prevent updates using events NF R1 15

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

  55. Use events for loss-free move R1 Bro 1 Bro 2 16

  56. Use events for loss-free move 1. enableEvents(red,drop) on Bro 1 R1 Drop Bro 1 Bro 2 16

  57. Use events for loss-free move 1. enableEvents(red,drop) on Bro 1 2. get / delete on Bro 1 Drop Bro 1 Bro 2 R1 16

  58. Use events for loss-free move 1. enableEvents(red,drop) on Bro 1 2. get / delete on Bro 1 Drop R2 Bro 1 Bro 2 R1 16

  59. Use events for loss-free move 1. enableEvents(red,drop) on Bro 1 2. get / delete on Bro 1 3. Buffer events at controller Drop Bro 1 Bro 2 R1 R2 16

  60. Use events for loss-free move 1. enableEvents(red,drop) on Bro 1 2. get / delete on Bro 1 3. Buffer events at controller 4. put on Bro 2 R1 Drop Bro 1 Bro 2 R2 16

  61. Use events for loss-free move 1. enableEvents(red,drop) on Bro 1 2. get / delete on Bro 1 3. Buffer events at controller 4. put on Bro 2 5. Flush packets in events to Bro 2 R1,R2 R1 Drop Bro 1 Bro 2 16

  62. Use events for loss-free move 1. enableEvents(red,drop) on Bro 1 2. get / delete on Bro 1 3. Buffer events at controller 4. put on Bro 2 5. Flush packets in events to Bro 2 R1,R2 R1 Drop 6. Update Bro 1 Bro 2 forwarding 16

Recommend


More recommend