SDN Week4 Network Functions Virtualization and docker

NFV

NFV负责各种网元的虚拟化,而SDN负责网络本身的虚拟化(比如,网络节点和节点之间的相互连接)

NFV三大关键

将网络设备的功能从网络硬件中解耦出来;

将电信硬件设备从专用产品转为商业化产品;

数据平面可编程;

适用范围

在这里插入图片描述
SDN主要是优化网络基础设施架构,比如以太网交换机,路由器和无线网络等。

NFV主要是优化网络的功能,比如负载均衡,防火墙,WAN网优化控制器等。

NFV进化

在这里插入图片描述
SDN的转变是从分布式的,采用复杂协议的专用网络设备,用低级的管理工具管理,转变为用高级管理工具管理商用设备组成的集中式架构系统。

现场工程师配置专用设备变为远程工程师配置虚拟化设备。

NFV的好处

在这里插入图片描述
SDN带来的好处:

简化由成千上万来自不同供应商,API接口的物理路由器交换机组成的整个网络的配置过程。

从应用或者策略管理的来看,整个网络大大简化,从而简化了操作。

减少成本,不用再为一些功能强大的贵的硬件花冤枉钱了。

NFV带来的好处:

加快产品和新业务推向市场的速度,因为无需改变硬件,要知道,硬件修改要费尽的多,开发测试周期太长。

由于标准化的作用,带来采购,设计,集成和基础设施的维护的过程大大简化;

由于有了动态分配硬件资源的能力,可以在确定的时间增加网络功能,从而增加了灵活性/扩展;
SDN为数据中心网络架构带来的变化。
在这里插入图片描述
NFV对运营商网络架构带来的变化
在这里插入图片描述
NFV为终端用户网络架构带来的变化
在这里插入图片描述

SDN和NFV以及相关技术组成在网络架构中所处的位置

在这里插入图片描述

Overview

Welcome back. In this lecture, we’ll talk about network functions virtualization, which is a way for network operators to place arbitrary functions in virtual machines and distribute them across the network.

NFV is increasingly taking hold with the rise of light weight containerization.
0:17
I’ll talk a little bit about what NFV is, including various problems and challenges that arise with NFV. I’ll then devote some time to talking about Slick, a system for orchestrating the placement of network functions throughout the network, and steering traffic flows through those network functions based on high-level network control.
To understand NFV, it helps to start by understanding the status quo. When middlebox functions are placed in separate monolithic middleboxes.
In contrast, NFV places these functions in virtual machines or even virtual containers, and distributes these functions across the network. By decoupling these functions from hardware that hosts them, operators gain increased flexibility over how packet processing is performed.

Benefits

在这里插入图片描述
Some of the benefits of NFV include reduced capital expenditures and time to market, ability to scale middlebox functions up and down as network demand changes, developing services that are specialized or targeted for a particular application, and doing so in ways that are independent of individual hardware vendors.
在这里插入图片描述

new user cases

New use cases include virtualized services for enterprise, content distribution, virtualized core networks, and the integration of production and testing.

One way I like to think about NFV is that it makes it possible to create functional elements, sometimes on significantly finer granularity, as opposed to monolithic middleboxes. When we think about various middlebox functions, for example, we can see that each of them is a combination of smaller modular functions.
在这里插入图片描述

One view of NFV is thus that we should be taking these individual functional elements and placing them in virtual containers, rather than deploying monolithic middle box functions.

Challenge

Now the concept of NFV is simple enough, but one of the main challenges that operators face is a problem called orchestration, whereby operators implement modular network functions, and a controller figures out how to place these functions throughout the network. Another challenge is customizability, whereby a network operator might want some very specific middlebox-like functions for specific traffic flows.
在这里插入图片描述# Slick approach

wiki A Slick program merely dictates what processing should be performed on specific traffic flows, without requiring the programmer to specify where in the network specific processing elements are instantiated or how traffic should be routed through them.

在这里插入图片描述
Slick’s approach is to allow a programmer to define functional units called elements that can be reused and composed to create more complex functions. It provides a programming abstraction in a runtime system that supports that extraction. I’ll now talk briefly about both the abstraction and the runtime.

The Slick programming abstraction allows an operator to define applications and elements. Network operator writes the application using an existing repository of elements, and defines how different flows should be forwarded through chains of these elements. The runtime then handles when and where to install the elements, as well as how to send the traffic through specific instances of these elements.
在这里插入图片描述

For example, ordinary network traffic might be forwarded along one path, but an operator might specify that each flow to port 80 should be sent through some logger element. The controller is then responsible for both placing that element on a particular node in the network, and installing forwarding entries in the switches, so that traffic destined for port 80 is forwarded through the appropriate elements.

Slick

在这里插入图片描述
Here’s some example code for corresponding Slick application. The code defines an element that logs HTTP traffic. A network operator defines this function and which flows the function should be applied on, and the runtime then subsequently determines where to place the element in the network.

  • 首先定义元素
  • network operator定义函数并指定什么时候调用这个函数
  • runtime 决定在网络中的什么位置放置元素

Slick elements

在这里插入图片描述
Slick elements are the basic functional unit in the Slick environment and are inspired by the Click programming model. They expose a uniform interface for writing functions. A specification file allows an element to describe its properties to the Slick controller.

Slick runtime

replacement

在这里插入图片描述
The Slick runtime determines how to place these functional elements in a network, given a specified mapping between flow space and sequences of elements. The goal of this placement is to do so in a way that satisfies specifications about the sequences of elements and functions, and yet achieves the desired operational objectives, such as minimizing network congestion.
One way to perform this placement is to place elements that increase traffic volume, such as decompression, closer to the traffic destination, and place those that decrease traffic volume, such as firewalling, closer to the source.

Slick runtime
功能:指定 functional elements放置在网络什么地方
实现方式:建立流空间和元素序列的映射关系
目的:实现想要的操作,例如减轻网络拥塞

steering

在这里插入图片描述
The other aspect of the runtime for orchestrating network functions virtualization is steering. This is the process of routing traffic flows that belong to certain portions of flow space through sequences of functional elements that have been placed in the network.
功能:路由特定流空间的流经过一系列网络中功能性元素
在这里插入图片描述
在这里插入图片描述
One way to do this is to represent each element instance as a node in an overlay graph. Elements in each tier of the graph represent a particular functional element, and multiple nodes in the same tier represent instances of the same element. The steering problem considers this overlay graph for each source destination pair, and computes a path for each flow that must traverse this sequence of elements, that achieves the desired network objective.
实现方式:建立图模型,每一层代表一个功能,每一个节点代表一个元素实例
tier应该是列
每个节点是一个元素实例
每一tier上的元素代表了一个特定的功能,一条tier上的node是相同element的实例
目的:为每一条流计算经过elements序列路径,以达到想要的网络目标

future work

在这里插入图片描述
Significant future work remains in NFV, including better algorithms for placement and steering, faster data plane forwarding for elements, better ways to resolve policy conflicts, and ways to verify network policies that a network operator might specify.

In conclusion, NFV is an approach for deploying middlebox-like functions on virtual appliances in the network, often on a finer granularity that monolithic middleboxes.

Two important aspects of orchestrating these network functions involve developing a high level programming abstraction for defining these functions, and how they should be applied to network flows, and developing a runtime that adequately implements the specified abstractions. Slick is one way of addressing these challenges, but significant work still remains.

在这里插入图片描述

Containers

是什么

操作系统级别的虚拟化

  • 在一台主机上跑多个虚拟OS,一般是Linux
  • 允许用户不连接硬件跑软件

代表实例有:docker、OpenVZ、Linux vServer

好处

  • Portability 在容器主机中开发应用(application developers and service providers )
  • Isolation shared hardware isolated name spaces and environments

和虚拟机的区别

在这里插入图片描述

  • Lower overhead 直接使用OS,减少了低效的模拟调用
  • less flexibility guest OS必须和host OS一样,虚拟机可以是完全不同的OS
  • file-level copy on write easier backup and simpler caching behavior

用处

  • 部署分布式应用
  • 持续集成和交付多层服务 continuous integration and delivery of multi-tiered services
  • platform as a service deployments
  • application deployment

Networking in Docker

一系列docker的操作并不想学orz
在这里插入图片描述
在这里插入图片描述
emm,对于minimize network load 感到疑惑
本来选了finding the best location

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
默认外网无法访问

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值