In-band Network Function Telemetry
- 文章名称:In-band Network Function Telemetry
- 发表时间:2018
- 期刊来源:SIGCOMM
I Introduction (介绍)
NFV运行在商品服务器上,在网络功能生命周期管理过程中提供了巨大的灵活性,将逐步代替硬件中间盒设备。现在有很多建立、运行VNF的优秀平台,比如BESS和NetVM,实现VNFs生命周期管理并且提供一个良好的性能保证。
尽管NFV在工业上使用广泛,但是对于NFV在SLA验证、故障检测以及其他第三方应用的重要性却很了解很少。比如当源码是不可知的情况下,实现监测是非常困难的。尽管单独的测量可以进行,但是为VNF遥测设计和实现有限过载的通用架构并非易事。据了解,之前并没有在高效测量VNFs运行时的性能上做相关工作。
为了高效地监控NFs的运行性能,我们引入了带内网络功能遥测(In-band Network Function Telemetry INFT)。INT(in-band network telemetry)是一个在数据平面收集网络状态的架构,引起的开销可以忽略不计,并且不需要与控制器进行交互,同时能够捕获网络上的短暂变化。INFT同样依赖数据平面进行测量,但是旨在中间盒透明。
我们提出NFT,一个轻量级、基于黑盒的高级可配置遥测架构。NFT建立主要在NFV平台之上,并且不需要测量的NFs。遥测仍然主要是INT,通过利用现代CPU的指令级并行性,产生很少的开销并能够监视快速变化的性能。** 我们在网络架构中,添加对于postcard-like report的支持。
贡献如下:
- 一、设计了通用的架构,可以用于测量中间盒的性能而且不导致任何负载。
- 二、为带内遥测报告和postcard-like 报告提出了头部格式。
- 三、进行初步的评估,证明设计引起的微小负载。
II Design (设计)
如图1所示,在NFT中的遥测节点被分为三类:classifier,forwarder,以及sink。classifier是可信任的实体,创建并且插入遥测首部到数据包中,数据包根据顾客/网络配置策略选择出来。Forwards 通过将元数据放进数据包,收集度量信息,另外根据遥测首部(headers)发送post-cards,report metric information(度量信息)。sink 节点提取元数据信息并且将数据包改变为常规数据包。
当一个主机的NIC接收到一个数据包,NIC首先通过底层的路由机制(比如BESS或者Open Vswitch)将数据包发送给NFT classifier(arrow 1)。我们将这样的机制定义为Routing Layer(路由层)。INFT首部被插入到分类为遥测数据包的数据包中。这些数据包接着被发送到NFT forwarder(arrow 2)。转发器(forwarder)依据INFT首部将临时信息(比如时间戳)写入到INFT元数据区域中,然后将这些数据包发送到目的中间盒(arrow 3)。数据包在退出时传输回forwarder(转发器)(arrow 4)。接着,forwarder根据之前写的数据(我们假设为INFT首部和元数据,因此它们不会被中间盒直接移除,在多播的情况下被复制)将遥测结果计算并且写入到数据包中。最后,携带INFT元数据的数据包被发送到sink node(arrow 5)。postcard-like reports是通过forwarders 依据INFT首部生成,同样的,postcard-like reports同样可以直接地发送到sink node 。节点接着提取元数据并且格式化数据包为常规数据包。最后,这些常规数据包通过NIC发送到主机。为了提高架构的性能,某个节点,比如forwarders,可以直接地通过数据平面实现。

INFT协议包括INFT首部和INFT元数据,类似于INT(如图2)。Metric字段决定了放入到每个INFT数据包的元数据的类型。Length 字段指明了下一块元数据插入的位置。设置Postcard 位 表明postcard生成。INFT元数据是紧随在INFT header 之后的4bytes 表项。每个条目包含写入数据的forwarder(转发器)的标识符,数据包进入和离开转发器的端口ID以及收集的度量数据。现在,我们测量延迟,I/O 数据包比特速率,因为它们是最基本最直接的实现。

为classifiers 插入INFT协议并且读取数据 的确切位置可以由操作员配置,消除在不同中间设备添加INFT协议的影响。 默认的,我们建议在IP 选项字段中插入头信息,因为大多的NFs自动跳过IP 项。forwarders (转发器)同样的可以将INFT协议移数据包别的位置上,在数据平面支持更加灵活的测量。然而,正如在评估一节提到,这样的重写操作可能是昂贵的,导致性能下降并,因此应该小心使用。Postcard reports 在源数据包头之前包含一个Postcard header。首部有一个Next Protocol 字段指示数据包首部内的第一层。Sequence 字段和 Left Time 字段用于侦测数据包以及丢弃数据包。
III EVALUATION (评估)
我们在BESS上实现了这个架构,比如,在数据平面,与其他模块处理每个数据包速率的性能进行对比(Time Stamp Counter 的区别取决于进入和退出)。所有模块运行在单个的Inter Xeon E5-2620(2.40GHz).
结果如图3所示,Classifiers可以基于简单规则(比如5元组)相当快的速度(相当ACL模块)执行分类。forwarders写INFT数据的重要性能同样值得关注。我们根据INFT头和入口id选择遥测数据,通过使用条件移动而不是条件跳转来避免CPU气泡,从而开发现代CPU的指令级并行性。
然而,fowarders 花费更长的时间来移动INFT协议到数据包别的位置,因为forwards需要更长的时间来复制动作(actions)。这样的复制可以通过利用BESS预留的buffer来避免。Postcard的产生很缓慢,因为新的数据包需要分配。尽管如此,当postcard 速率低的时候,这样的开销是可接受的。

** 个人 **
In-band:频内,指那些数据控制已经被固定的网络协议,In-band 控制的控制数据通常和主要的传输数据公用同样的连接链路(以太网通道),属于应用层管理。被管理设备只有处于开机状态并进入作业系统的情况下,才能进行管理。像SNMP(Simple Network Management Protocol)都是属于In-band协议。SNMP使用方便,但是存在一个固有的缺陷:SNMP 管理信息总是和网络数据使用同样的网络路径。它使用相同的WAN和LAN路由、中继器和连接链路。当网络中断或是严重受损的时候,SNMP流量就不能在向量的管理设备或是工作站中流通。当网络组件中断时,In-band失去网络连接,不能使用。
Out-band:频外,又被称为熄灯(Lights Mangement,LOM)管理,弥补了In-band的缺点,是指那些数据传输信道独立于正常的网络传输,被管理设备即使在关机状态甚至故障的状态下,都可以进行修复重开机或是日志监控等管理作业。这对于分离两种不同类型的数据是十分有用的。Out of band 管理指那些通过拨号电话线允许技术人员连接到网络组件(防火墙、路由器、网桥、交换机、服务器等)。在电话系统中,当用于建立语音通信的设备分离时,就使用Out of band通信建立语音通信。
In-band管理相对于Out-band管理更廉价,但是在计算机网络中它不能够接触固件(BIOS和URFI),也不能够远程重新安装操作系统,不能修复系统booting的问题。在网络中,不允许独立于当前网络组件的网络组件进行远程管理。看数据传输是否通过独立的数据链路传输判断是否为Out-band network。
In-band Network Function Telemetry的更多相关文章
- NFV-Bench A Dependability Benchmark for Network Function Virtualization Systems
文章名称:NFV-Bench A Dependability Benchmark for Network Function Virtualization Systems 发表时间:2017 期刊来源: ...
- Improving the Safety, Scalability, and Efficiency of Network Function State Transfers
Improving the Safety, Scalability, and Efficiency of Network Function State Transfers 来源:ACM SIGCOMM ...
- Network Function Virtualization for a Network Device
An apparatus for performing network function virtualization (NFV), comprising: a memory, a processor ...
- Network Function Virtualization: Challenges and Opportunities for Innovations
年份:2015 ABSTRACT 最近提出了网络功能虚拟化,以提高网络服务供应的灵活性并减少新服务的上市时间. 通过利用虚拟化技术和通用的商用可编程硬件(例如通用服务器,存储和交换机),NFV可以将网 ...
- Predictive Analysis in Network Function Virtualization
摘要 网络功能虚拟化(NFV)体系结构的最新部署获得了极大的关注.虚拟化虽然带来了诸如降低成本和简化网络功能部署之类的好处,但它增加了附加层,从而降低了较低层故障的透明度.为了改善虚拟网络功能(VNF ...
- How to implement a neural network
神经网络的实践笔记 link: http://peterroelants.github.io/posts/neural_network_implementation_part01/ 1. 生成训练数据 ...
- 服务链(Service Chaining,or Service Function Chaining,SFC,功能服务链)
Software-configured service chaining provides the capability to dynamically include best-of-b ...
- 论文阅读:Elastic Scaling of Stateful Network Functions
摘要: 弹性伸缩是NFV的核心承诺,但在实际应用中却很难实现.出现这种困难的原因是大多数网络函数(NFS)是有状态的,并且这种状态需要在NF实例之间共享.在满足NFS上的吞吐量和延迟要求的同时实现状态 ...
- 从个人的角度谈谈本次GNTC大会的收获
GNTC资料:from sdnlab 从个人的角度谈谈本次大会的收获 从本次大会的主题演讲来看,目前SDN.NFV的最前沿已经不再像五年前持观望态度以及探讨,各大运营商.各大厂商已经将SDN.NFV具 ...
随机推荐
- 【OC底层】KVC原理
定义 KVC的全称是Key-Value Coding,俗称“键值编码”,可以通过一个key来访问某个属性 常见的API有: - (void)setValue:(id)value forKeyPath: ...
- python新手第一天学习笔记-python循环控制和第一个python小游戏
Python的三种逻辑控制 1.python语法. python 是以缩进作为基本判断的.同一代码缩进需要保持一致.否则会报错 1.if 的三种循环 _age = 53 # 注意,input接受的都是 ...
- #leetcode刷题之路18-四数之和
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满 ...
- Kali-linux本地权限提升
上一节介绍了窃取目标系统令牌,现在来介绍窃取令牌后如何提升在目标系统上的权限.提升本地权限可以使用户访问目标系统,并且进行其他的操作,如创建用户和组等.本节将介绍本地权限提升. 同样的实现本地权限提升 ...
- 20155318 2016-2017-2 《Java程序设计》第七学习总结
20155318 2016-2017-2 <Java程序设计>第七学习总结 教材学习内容总结 学习目标 了解Lambda语法 了解方法引用 了解Fucntional与Stream API ...
- Noip前的大抱佛脚----赛前任务
赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...
- sklearn常见分类器的效果比较
sklearn 是 python 下的机器学习库. scikit-learn的目的是作为一个“黑盒”来工作,即使用户不了解实现也能产生很好的结果. 其功能非常强大,当然也有很多不足的地方,就比如说神经 ...
- 深度学习与计算机视觉(12)_tensorflow实现基于深度学习的图像补全
深度学习与计算机视觉(12)_tensorflow实现基于深度学习的图像补全 原文地址:Image Completion with Deep Learning in TensorFlow by Bra ...
- Python day1 ---python基础1.1
1.模块初识2..pyc是个什么鬼?3.数据类型初识 4.数据运算5.入门知识拾遗 1.模块初识 sys模块 import sys print(sys.path) #打印环境变量 'D:\\Pycha ...
- $watch和$observe的使用
$observe 是Attribute对象的一个方法,用来监听DOM中属性值的变化.比如 attr1="{{name}}" Attribute定义在directive中的link函 ...