SDN中的服务链(SFC)闲聊

在网络场景下,一个数据流通常需要通过多个网络服务设备,例如IDS/IPS,防火墙,LB,等,最终才能到达目的端。这就是服务链(SFC, Service Function Chain)最常用的场景。SFC对于传统硬件网络,或者SDN(什么?你还不知道SDN,那看看这吧SDN闲聊)都是很常见的。但是在传统网络中,SFC存在以下几个问题:

1. 受限于网络拓扑。你的网络服务设备能不能,怎么摆放很大程度上取决于你的网络拓扑。

2. SFC相对固定。一旦设备接好之后,不能轻易改动,改动涉及到重新布线。并且所有的数据流都必须流经固定的Chain。比如说防火墙部署好之后,如果只想让首包过防火墙,其他的包直接进入数据中心。这在传统网络中不太可能,一般情况下,所有的包都会流经防火墙设备。

3. 扩容较为麻烦,已有的拓扑在扩容的时候必须考虑如何不影响现有业务。

如果是基于SDN,那问题都将迎刃而解。SDN的灵活性,能使SFC的作用得到更大的发挥。

之前的文章里说过的,SDN主要提供的服务可以分为两类:

Networking Infrastructure:提供网络基础架构功能。或者说,提供SDN中各个终端设备(例如VM)的网络连通性功能。

Networking Service:提供网络服务功能。向SDN的用户提供网络服务(Networking As A Service),Load Balance,Firewall,QoS等等,都可以认为是网络服务功能。

SFC将会是实现Networking Service的一种很灵活的方式。由云服务运营商提供各种各样的Service Function,由SDN管理SFC,将Service Function加入到网络流量路径中,即能实现Networking Service(L4-L7)。

接下来看一下SFC里面的几个主要概念:

SFC Classifier: 识别网络流量,并将其分配到不同的SFC。Classifier可以运行在任意设备上,并且一条SFC中可以有多个Classifier,通常情况下,Classifier存在于SFC的头结点。SFC Classifier还将给网络流量包加上SFC识别符。具体的说,它会在网络包里加上一个SFC Header,也就是说它会改变包的结构。这个Header包含一个SFC的唯一识别ID。

SFI(Service Function Instance):一个Service Function的实例,可以是个进程,也可以就是一个server。最近很火的NFV也可以认为是一个SFI(2017-04-09纠正,SFI 对应的应该是NFV中的VNF概念)。

SFF(Service Function Forwarder):提供服务层的转发。SFF接收带有SFC Header的网络包,利用SFC Header,将网络包转发给相应的SFI。在某些场合,SFF也可以不基于SFC Header,例如基于五元组。

SF Proxy:任何不能理解SFC的设备,在SFC中都必须配合proxy使用。因为传统的SF设备没有SFC的概念,proxy将会把网络包中的SFC Header去掉,并把原始的数据包转发给传统的SF设备,当网络包处理完之后,proxy还将负责把SFC Header加回到网络包中,并发回到SFC中。

SFF与SFI的连接:

SFF可以是与SFI独立的设备,也可以是两者集成在一起。SFF与SFI的连接方式,可以是以下两种:

单臂模式(one-armed):在这种模式下,SFF将网络流量包转发给SFI,SFI处理完成之后再转发回给SFF,由同一个SFF发送回SFC。

串联模式(bump-in-the-wire):这种模式下,SFI处理完成之后,会将网络流量包转发给SFC中的下一个SFF。

综合看起来SFC的逻辑抽象如下图所示:

绿线和蓝线的路径分别是两个SFC,Classifier负责识别网络流量,并分发给不同的SFC,SFF负责将网络流量转发至SFI。为什么会有多个SFF?因为SFI可能连接在不同的交换设备上,每个交换设备可能都需要一个SFF做转发。图中SFI和SFF的连接都是one-armed模式。其实标题配图也能从逻辑上很好的说明SFC。

SFC Header

这个可以说是SFC的Magic所在了。SFC Header的意义是:在网络包遍历整个Chain时,携带的以供Service Function使用的的信息。 SFC Header可以是基于现有的网络协议中的Header,例如IPv4 header中的DSCP bits,或者是MPLS labels。据说IETF也正在制定为SFC专用的header,以期实现更多的功能。

SFC、SDN、NFV:

NFV就是将网络服务部署成VM,这样的虚机可以认为是一个SFI。SDN可以方便的将SFC需要的网络控制功能下发到Classifier,SFF和SFI。这三者是共同发展的,可以说SFC是一种实现Networking Service的标准方式,借助SDN和NFV能更好的实现SFC。尤其是在公有云场景中,用户对L4-L7服务的需求是多种多样的,如果都由SDN实现,将加大SDN的复杂性,借助NFV和SFC,能够更加灵活实现Networking Service。

OpenStack有一个专门的SFC项目,networking-sfc in Launchpad。以后有机会结合这个项目讲一些SFC更实际的东西。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容