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

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