Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Asterisk as a Virtual Network Function Part 1


Published on

AstriCon 2017 Presentation. Workshop discussing NFV and using Asterisk as a VNF (Virtual Network Function)

Published in: Technology
  • Be the first to comment

Asterisk as a Virtual Network Function Part 1

  1. 1. For Astricon 2017 Doug Smith & Leif Madsen Red Hat, Inc. Intro to NFV & VNF-Asterisk
  2. 2. 2 Leif Madsen ● DevOps team lead of the NFVPE team, working with strategic NFV partners to help them understand how to automate and test deployments using common open source tools. ● Blog: Who are these guys!? Doug Smith ● Member of the NFVPE DevOps team with a focus on analyzing gaps in containerized workloads for NFV, including container networking & orchestration (e.g. Kube & OpenShift) ● Blog: We’re from the NFV Partner Engineering Team @ Red Hat @leifmadsen@dougbtv
  3. 3. 3 10:45 - Intro to NFV & VNF-Asterisk 11:30 - A VNF-Asterisk Demo 1:45 - Infrastructure Deployment 2:30 - Application Deployment TODAY’S AGENDA
  4. 4. 4 VNF-Asterisk is a VNF utilizing Asterisk (an Open Source telephony framework) and intended to be used for validating environments, and exploring topics such as: ● VNFs in Kubernetes / OpenShift ● Container Networking ● Scale ● High Availability ● And more. SO, WHAT IS VNF-ASTERISK? A demo VNF in Kubernetes that YOU can try out! redhat-nfvpe/vnf-asterisk
  5. 5. BEGIN THE WHITEBOARD OF ACRONYMS! (If we use an acronym you don’t know, don’t be shy, point at the whiteboard!)
  6. 6. 6 VNF-Asterisk High level overview (illustrating planned/future network segments) Public network Inter-machine trunk Management network Network Segments Analytics Controller SIPp SIPp Asterisk (A) Asterisk (B) sipcapture (homer)
  7. 7. 7 High Level pod layout (plan) voip/asterisk homer/capt-agent Asterisk A voip/asterisk homer/capt-agent Asterisk B homer/capture-server homer/mariadb homer/web-ui Homer SIPp voip/sipp SIPp voip/sipp Controller management/controller
  8. 8. 8 Actual pod layout Asterisk (VoIP) Capture Agent (packet sniffer) Asterisk config Environment config etcd vnf-asterisk controller (API) vnf-asterisk UI (nginx) API config nginx config MySQL MySQL storage Bootstrap semaphor Kamailio (SIP Proxy) Homer API Homer Web app (monitoring / analytics) Environment config Vnf-asterisk homer At least as of today.
  9. 9. 9 VNF-Asterisk High level overview (illustrating planned/future network segments) Public network Inter-machine trunk Management network Network Segments Analytics Controller SIPp SIPp Asterisk (A) Asterisk (B) sipcapture (homer)
  10. 10. 10 ● Purpose is to take your traditional hardware network devices (routers, switches, firewalls, etc) and deploy them virtually, like a computer running as a virtual machine. ● Defined by ETSI in September 2012 via seven of the world’s largest telecommunication network operators. ○ Conceived by the world’s seven largest telecommunications operators in 2012, lead to the creation of ETSI NFV in January 2013; ETSI NFV would create the momentum and hype in the industry. ● Telecommunications operators vendors historically would ○ develop, ○ test, ○ and schedule deployment of ASICs on a multiple year trajectory ○ ROI heavily factored into the development and deployment of new hardware. What is NFV? Network Functions Virtualization
  11. 11. 11 What is NFV?
  12. 12. 12 What is NFV?
  13. 13. 13 What is NFV? Virtualized Network Function = an application stack :) Often delivered as virtual appliance forklifted from a physical appliance. Often a distributed application running across dozens of different processing blades VMs.
  14. 14. 14 What is NFV? Element Manager = an application that does FCAPS (Fault, Config, Accounting, Performance, Security) management for one or more (V)NFs. Many EMs PXE-booted the OS on all blades, installed/upgraded software, then provided standard north-bound interface for FCAPS.
  15. 15. 15 What is NFV? Business Support System(s) and Operations Support System(s) = handle business resp. operations logic for fulfilling and assuring services end-to-end Offer, e.g., product and service catalogs, service and resource orchestration, resource inventory, workflow engine, policy engine, root-cause analysis & analytics, ...
  16. 16. 16 What is NFV? new: NFV Infrastructure = compute, storage and networking resources and their virtualization
  17. 17. 17 What is NFV? new: Management & Orchestration (MANO) stack
  18. 18. INSERT DESIGNATOR, IF NEEDED18 What is NFV? new: Virt. Infrastructure Manager = manage the lifecycle of compute, storage and (data center) network infrastructure resources e.g. OpenStack, VMware, RHEV virt. infrastructure abstraction
  19. 19. INSERT DESIGNATOR, IF NEEDED19 What is NFV? new: VNF Manager = provisions and manages the lifecycle of one or more VNF applications e.g. OpenStack Tacker, Cloudify, K8s virt. infrastructure abstraction application abstraction
  20. 20. INSERT DESIGNATOR, IF NEEDED20 What is NFV? new: NFV Orchestrator = provisions and manages the lifecycle of one or more Network Services e.g. OpenStack Tacker, virt. infrastructure abstraction application abstraction composed service abstraction
  21. 21. 21 What is NFV?
  22. 22. 22 ● A VNF, or Virtualized Network Function, is made up of one or more components inside an NFV-based (or SDN-based) network. What is a VNF? A VNF is a Virtual Network Function
  23. 23. 23 ● An example of a virtualized network function might be a virtual router (vRouter), virtualized network switch (vSwitch), deep packet inspection (vDPI), virtual firewall, etc ○ It’s the virtualized version of a dedicated physical component in your network ○ Only the most simple VNFs, such as vRouters, vDPI, etc are single component/single-VM ○ More interesting deployments contain multiple components (load-balancer component, signaling-processor component, data-plane processor component); each of which can independently scaled by instantiating more instances. ○ A VNF can be made up of one or more components (VNFCs) What is a VNF? A VNF is a Virtual Network Function
  24. 24. 24 ● Software Defined Networking is a way of programmatically defining your network from a central location, and disseminating that definition to your networking nodes ● The idea is to separate the control plane (where you program how you want the network to be designed) from the data plane (where the actual networking data flows) ● By separating the control plane from the data plane, you’re able to more centrally control the definition of the network (what you would typically do from, say, a Cisco router CLI) from the physical hardware that performs the packet processing and forwarding What is SDN? SDN is Software Defined Networking
  25. 25. 25 ● With a centralized control plane, you can scale it independent of the data plane, and build additional functionality, like programming it through an API ● Forwarding tables and data plane information is then compiled out of the control plane, and pushed down into the data plane, that then is able to act on the packets without the overhead of also dealing with the control plane. What is SDN? SDN is Software Defined Networking
  26. 26. 26 1There are several definitions of cloud nativeness. We chose the CNCF to use here for two reasons: What is cloud native? This definition fits best to the examples we would like to share here. The CNCF’s definition represents a wide body of professionals. 2 The following Cloud Native definition is used in the Cloud Native Computing Foundation Charter
  27. 27. 27 1 What is cloud native? Container packaged. Running applications and processes in software containers as an isolated unit of application deployment, and as a mechanism to achieve high levels of resource isolation. Improves overall developer experience, fosters code and component reuse and simplify operations for cloud native applications. Dynamically managed. Actively scheduled and actively managed by a central orchestrating process. Radically improve machine efficiency and resource utilization while reducing the cost associated with maintenance and operations. 2 Cloud native systems will have the following properties 3Micro-services oriented. Loosely coupled with dependencies explicitly described (e.g. through service endpoints). Significantly increase the overall agility and maintainability of applications. Uses ubiquitous and easily available through reliable interfaces.
  28. 28. 28 ● A standard Back2Back User Agent (B2BUA) setup where we generate traffic with SIPp VNF-Asterisk Architecture Basic Subsystem
  29. 29. 29 ● Extending the basic subsystem to start building out a control and data plane ● Controller pushes configuration into newly instantiated Asterisk instances ● (Enter Sorcery) VNF-Asterisk Architecture Extended Basic Subsystem
  30. 30. 30 ● In the initial implementation of this demonstration VNF, our “controller” may be so primitive as to be a script that pushes a simple configuration into our Asterisk instances VNF-Asterisk Architecture Extended Basic Subsystem
  31. 31. 31 ● In our expanded subsystem, we add sipcapture via the HOMER encapsulation protocol (HEP). VNF-Asterisk Architecture Expanded Subsystem
  32. 32. 32 ● One of the more interesting tidbits of information we’re hoping to tease out is metrics ● Understanding our baseline metrics will allow us to determine what happens as we start changing the infrastructure ● If our metrics get significantly worse as we containerize the system, we’ll be better armed to understand ○ if it’s the containerization ○ our network ○ architecture ○ other unknown issues VNF-Asterisk Architecture Expanded Subsystem
  33. 33. 33 ● Next step is to start breaking our monolithic deployment into more fungible components VNF-Asterisk Architecture Containerized PoC (e.g. in Docker)
  34. 34. 34 ● Controller may be expanded to include dynamic configuration through service discovery (such as etcd) ● Pave the way for using discovery services to find and configure the containers VNF-Asterisk Architecture Containerized PoC (e.g. in Docker)
  35. 35. 35 VNF-Asterisk Architecture Orchestrated PoC (e.g. in Kubernetes)
  36. 36. 36 ● Orchestrating the pods using Kubernetes (optionally, on top of OpenShift) and validating that all our components are still operating ● Breaking the containers into pods ● Getting ready to change the underlying network VNF-Asterisk Architecture Orchestrated PoC (e.g. in Kubernetes)
  37. 37. 37 VNF-Asterisk Architecture Service Networking & Networking Topology
  38. 38. 38 ● Start splitting the components into their own related networks ● Gives network separation between the various planes ● Kubernetes currently only allows for a single interface ○ CNI ○ Multus-CNI VNF-Asterisk Architecture Service Networking & Networking Topology