OpenStack 业务链networking-sfc介绍 (1) - 概述
原文链接:https://blog.csdn.net/bc_vnetwork/article/details/65630355
1. Service Function Chain概述
Neutron的SFC (Service Function Chaining, SFC, 业务链)是由华为主导并开发的一个neutron下的服务框架。
其目的是动态建立服务链使不同租户的流量可以按照不同顺序导向不同的服务功能模块。其概念类似于策略路由, 即SFC使网络报文流量走特定的路径,而不是通过IP目的地址来查看路由表得最终目的地。
SFC主要应用于SDN网络技术中, 通常用来联同NetworkFunction Virtualization(网络功能虚拟化)来实现特定功能。举个例子, 我们可以强制某流量从A到B必须经过中间的防火墙, 或者不经过防火墙,而不管当前的路由表。
2. Service Chain操作和API
Service Function:服务功能, 在这里可以认为就是提供业务的虚拟机。虚拟机上会有1个或多个的网络端口(port)。
Port chain(即Service Function Path)包括:
1.neutron ports的列表, 用于定义服务功能的顺序
2.flow classifiers(流分类器)的列表, 指定分类后的流进入哪个port chain
如果一个service function有1对port,那么第一个port为入口, 第二个port为出口。
Port Pair: port chain在实际使用中会以一连串port-pair(端口对)来呈现。 如下图:
SF1,SF2, SF3为三个不同的Service Function, 其port chain可以表示为: [{'p1': 'p2'}, {'p3':'p4'}, {'p5': 'p6'}]
{'p1','p2'}即为一个port-pair, 其中第1个端口为入端口, 第2个端口为出端口。
p1为整条port-chain的头部, 而p6为port-chain的尾部。
|
+------+ +------+ +------+ | SF1 | | SF2 | | SF3 | +------+ +------+ +------+ p1| |p2 p3| |p4 p5| |p6 | | | | | | ->---+ +---------+ +-----------+ +----> |
Port Pair Group: 在实际使用中, port-chain较多较复杂的时候, 为了简化操作, 把某些可以复用的多个port-pair定义为 port-pair-group, 类似于防火墙或qos中的policy。
同时,port-pair-group可指定lb_fields, 用来做多条业务链的负载均衡。
如: 有2条port-chain, port-chain-1定义为[{'p1': 'p2'}, {'p3': 'p4'}, {'p5': 'p6'}, {'p7': 'p8'}]
port-chain-2定义为[{'p5': 'p6'}, {'p7': 'p8'},{'p1': 'p2'}, {'p3': 'p4'}]
我们可以把其中相同部分: [{'p1': 'p2'}, {'p3': 'p4'}]定义为一个port-pair-group:port-pair-group-1
[{'p5':'p6'}, {'p7': 'p8'}]定义为一个port-pair-group:port-pair-group-2
那么: port-chain-1可以简化为: [port-pair-group-1,port-pair-group-2]
port-chain-2可以简化为: [port-pair-group-2, port-pair-group-1]
Flow classifier: 其作用在于选择能够访问port-chain的流量, 只要有流量匹配到了flow classifier则会被重定向到 port-chain的第 1个端口。
目前可以匹配的报文字段有: ethertype, protocol, source-port, dest-port. source-ip-prefix, dest-ip-prefix, logical-source-port(neutron中的port端口),logical-dest-port(neutron中的port端口), L7层某些字 段。
目前在openstack client上已经可以使用SFC相关命令行:
|
创建port-pair openstack sfc port pair create [-h] [--description DESCRIPTION] --ingress INGRESS --egress EGRESS [--service-function-parameters [correlation=CORRELATION_TYPE, weight=WEIGHT]] PORT-PAIR-NAME * 注: --service-function-parameters可指定参数: correlation:默认none,目前还可选择mpls。由用户定义该port-pair上的报文与业务链的关联机制, 即底层如何实现业务链封装。 weight:经过该port-pair的流量权重, 默认1, 可以配置正整数 创建port-pair group openstack sfc port pair group create [-h] [--description DESCRIPTION] [--port-pairs PORT-PAIR] [--port-pair-group-parameters [lb_fields=LB_FIELDS]] PORT-PAIR-GROUP-NAME * 注: --port-pairs可连续指定多个port-pair --port-pair-group-parameters可指定参数: 默认空列表,可选择loadbalance的报文字段: eth_src, eth_dst, ip_src, ip_dst, tcp_src, tcp_dst, udp_src, udp_dst, 可自由组合, 通过'&'连接。如eth_src&tcp_src。 创建flow-classifier openstack sfc flow classifier create [-h] [--description DESCRIPTION] [--protocol PROTOCOL] [--ethertype {IPv4, IPv6}] [--source-port SOURCE_PORT] [--destination-port DESTINATION_PORT] [--source-ip-prefix SOURCE_IP_PREFIX] [--destination-ip-prefix DESTINATION_IP_PREFIX] [--logical-source-port LOGICAL_SOURCE_PORT] [--logical-destination-port LOGICAL_DESTINATION_PORT] [--l7-parameters type=TYPE[,url=URL_PATH]] FLOW-CLASSIFIER-NAME * 注: --logical-source-port必须要指定 --l7-parameters目前还未实现。估计以后可指定http报头中的相关字段, 如: uri path, cookie, hostname, file_type, header中的字段等等。 从实际行为上来看, flow classifier会应用在每一跳的入口处 创建port-chain openstack sfc port chain create [-h] [--description DESCRIPTION] --port-pair-group PORT-PAIR-GROUP [--flow-classifier FLOW-CLASSIFIER] [--chain-parameters [correlation=CORRELATION_TYPE, symmetric=BOOLEAN_TYPE]] PORT-CHAIN-NAME * 注: --port-pair-group可连续指定多个 --chain-parameters可指定参数: correlation:默认: mpls,目前只能选择mpls。由用户定义该port-chain上的报文与业务链的关联机制, 即底层如何实现业务链封装。 symmetric:是否为对称port chain,默认False。如果为symmetric, 则该业务链底层的数据层面会自动双向都打通, 否则只打通单个方向。 |
c) API规范
由于篇幅限制, API规范不再详细列出, 与命令行对应, 可参考官方文档: https://docs.openstack.org/developer/networking-sfc/api.htm
OpenStack 业务链networking-sfc介绍 (1) - 概述的更多相关文章
- HINOC2.0标准介绍(1):概述
本文首发于'瀚诺观察'微信公众号 摘要: 2016年3月18日,国家新闻出版广电总局批准发布了行业标准GY/T 297-2016<NGB宽带接入系统HINOC2.0物理层和媒体接入控制层技术规范 ...
- OpenStack 业务链networking-sfc介绍 (2) - 底层原理
原文链接:https://blog.csdn.net/bc_vnetwork/article/details/65630475 1. SFC底层实现原理 port chain和ovs driver/ ...
- Openstack 网络服务 Neutron介绍和控制节点部署 (九)
Neutron介绍 neutron是openstack重要组件之一,在以前是时候没有neutron项目. 早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个 ...
- Openstack 网络服务 Neutron介绍和控制节点部署 (十)
Neutron介绍 neutron是openstack重要组件之一,在以前是时候没有neutron项目. 早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个 ...
- Openstack Basic Networking 翻译
自己翻译,加强理解.并学习英文和写作. 英文地址:http://docs.openstack.org/networking-guide/intro_basic_networking.html 目录: ...
- OpenStack 存储服务 Cinder介绍和控制节点部署(十五)
Cinder介绍 OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷.此服务也会激活管理卷的快照和 ...
- OpenStack 计算服务 Nova介绍和控制节点部署(七)
介绍 Nova是openstack最早的两块模块之一,另一个是对象存储swift.在openstack体系中一个叫做计算节点,一个叫做控制节点.这个主要和nova相关,我们把安装为计算节点nova-c ...
- OpenStack Object Storage(Swift)概述
概述 OpenStack Object Storage(Swift)是OpenStack开源云计算项目的子项目之一,被称为对象存储,提供了强大的扩展性.冗余和持久性. Swift并不是文件系统或者实时 ...
- OpenStack 存储服务 Cinder介绍和控制节点部署 (十三)
Cinder介绍 OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷.此服务也会激活管理卷的快照和 ...
随机推荐
- 自动把\r\n 替换成<p></p>
function nl2p($string, $line_breaks = true, $xml = true) { // Remove existing HTML formatting to avo ...
- linux 同步IO: sync、fsync与fdatasync
[linux 同步IO: sync.fsync与fdatasync] 传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行.当将数据写入文件时,内核通常先将该数据 ...
- cookie的长度和限制数量
一.浏览器允许每个域名所包含的 cookie 数 Microsoft 指出 Internet Explorer 8 增加 cookie 限制为每个域名 50 个,但 IE7 似乎也允许每个域名 50 ...
- 基于分布式思想下的RPC解决方案--笔记
分布式: RPC可以提高系统稳定性,比如说,我们的订单服务程序更新出BUG,导致内存溢出,是这台服务器宕机了,但是它只会影响的整个系统的订单业务部分,对于用户注册登录等业务没有影响,同样对于系统的日志 ...
- PropertySheet
---------------------------------include----------------------------------- E:\OpenSourceGraph\OSG_i ...
- Linux下patch的制作和应用
转自:http://blog.chinaunix.net/u3/100239/showart_1984963.html 首先介绍一下diff和patch.在这里不会把man在线文档上所有的选项都介绍一 ...
- C#获取mp3文件时长、解决发布到服务器无法使用问题
首先引用COM组件:Microsoft Shell Controls And Automation,需要引用1.2版本的,1.0的会出问题. 这里需要注意DLL的属性Embed Interop Typ ...
- Linux命令:cp (copy)复制文件或目录
复制文件,只有源文件较目的文件的修改时间新时,才复制文件 cp -u -v file1 file2 .将文件file1复制成文件file2 cp file1 file2 .采用交互方式 ...
- Java 设计模式系列(八)装饰者模式
Java 设计模式系列(八)装饰者模式 装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案.Decorator 或 Wrapper 一.装饰模 ...
- thinkphp 调用wsdl接口实例化SoapClient抛出异常
异常:Message:SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://*****?wsdl' : failed to load externa ...