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: https://blogs.leifmadsen.com
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: https://dougbtv.com
We’re from the NFV Partner Engineering Team @ Red Hat
@leifmadsen@dougbtv
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. BEGIN THE WHITEBOARD OF
ACRONYMS!
(If we use an acronym you don’t know,
don’t be shy, point at the whiteboard!)
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
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
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
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
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
What is NFV?
new: NFV Infrastructure
= compute, storage and networking
resources and their virtualization
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. 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. 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, Rift.io
virt. infrastructure
abstraction
application
abstraction
composed service
abstraction
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
● 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
● 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
● 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
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
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
● A standard Back2Back User Agent (B2BUA) setup where we generate traffic with SIPp
VNF-Asterisk Architecture
Basic Subsystem
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
● 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
● In our expanded subsystem, we add sipcapture via the HOMER encapsulation protocol
(HEP).
VNF-Asterisk Architecture
Expanded Subsystem
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
● Next step is to start breaking our monolithic deployment into more fungible
components
VNF-Asterisk Architecture
Containerized PoC (e.g. in Docker)
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)
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)
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