游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

OVS的隐藏设计原则

  引言
  OpenvSwitch(以下简称OVS)的代码,从软件架构上来讲还是很清晰的。但是笔者在工作中,了解到很多同学感觉,OVS的代码非常难懂,和传统的网络处理代码很不一样,难以理解。社区也没有文档对其内部的代码进行分析。本文试图将这个理解上的鸿沟填平,将OVS设计中的隐藏原则揭示出来。快慢路径与转发等价类(ForwardingEquivalenceClass)转发等价类
  我们先从传统包处理软件,比如NAT和LoadBalancer的架构说起。这两类包处理软件都属于有状态(stateful)软件。他们的基本架构,一般是包含了慢速路径(slowpath),和快速路径(fastpath)的两个部分。快速路径本质上是利用数据包五元组(指数据包的源目的IP、源目的端口号、协议号)缓存进行数据包的快速查找,慢速路径则一般是包含各种查找表,比如路由表、ACL表的查找等。处理流程一般是首包MISS快速路径之后,会一次经历慢速路径的各种查找,并最终生成五元组插入到快速路径。下面这个图,我相信很多有Stateful网关开发经验同学已经看过了无数次了。
  有的时候出发的太久就忘了了为什么出发。我们回想一下,为什么快速路径一定是五元组哈希表呢?本质上NAT和LoadBalancer处理的都是传输层的流量,TCPUDP是一个端到端的协议,其基本单位就是一条流(五元组)。为什么快速路径是五元组,本质原因是,对于这类网关而言,五元组是一个转发等价类(ForwardingEquivalenceClass)。这里借用了MPLS的术语,意思就是说,在这类网关上,如果一个数据包的五元组相同,那么他们一定有着相同的处理转发动作。
  那么,是否所有的网关的转发等价类都是五元组呢?答案是否定的。比如一个路由器,他所关心的,仅仅是数据包的目的IP地址,那么他的快慢路径就可以是以下这个图。
  由此可见,fastpath缓存的是转发等价类(FEC),只要命中一条FEC,包就自动满足了slowpath多个表的查找结果,也就可以直接执行转发动作了。FEC是从多个表计算出来的,同时,当这些表的规则发生变更时,FEC也会跟着发生变化。也就是,快慢路径这种设计的本质,就是计算出转发等价类,便利底层的查找。
  这里引出了一个问题,也就是当规则发生变化的时候,我们如何保证fastpath所缓存的转发等价类依旧符合slowpath的转发语义呢?这里有一个参考设计,即引入一个Revalidator。Revalidator
  Revaldiator,顾名思义就是重新validatefastpath的FEC是否符合slowpath的转发语义。怎么做呢,很简单。
  首先,把触发生成每个FEC的原始数据包记录下来,比如路由器,记录下触发生成当前FEC的IP地址记录下来。
  然后,当规则发生变化时,Revalidator将这个数据包,重新计算一遍FEC,和当前的FEC对比,如果一样,就保持不变,如果发生变化,则删掉以前的FEC,新增一个新的FEC。
  Revalidator一般是一个独立于slowpath和fastpath的单独线程,因此,当规则发生变化时,Revalidator会并行的更新fastpath的FEC记录。
  因为Revalidator是一个独立的线程,能够周期性的做一些事情,因此能扩展出除了计算FEC以外的其他任务。
  看到这里,有的同学可能会疑惑,为何NAT和LoadBalancer里没见到这个Revalidator?因为,他们不需要。连接跟踪和五元组查找
  我们在上面的描述中,为了简便,把连接跟踪(connectiontracking)和转发等价类的缓存的概念混淆了。在有状态网关软件中,快速路径并不仅仅是五元组哈希表查找,而是连接跟踪。从查找的角度上看,这两者是等价的,本质上,两者的转发等价类都是五元组。而实际上,当规则发生变化时,LoadBalancer和NAT不能立马改变已有流的转发动作,这个原因还是因为,网络中的流是符合端到端原则的,建立起来的流,必须等待流的生命期终止才能改变。试想,如果从一个LB中摘掉一个RS(RealServer),LB是不能将已有的TCP连接流量直接导入到其他RS的,因为就算你导入了,那些TCP连接也是建立在这个摘掉的RS上的,而不会是其他的RS上的。
  如果我们关注的是流的生命周期,那么已经建立的流的转发动作是不能变的。如果我们是从转发等价类的角度看,当规则发生变化,底层的缓存应该跟着变化,以符合slowpath的转发语义。交换机配置、规则的包处理语义
  讨论完了转发等价类,我们再来看看视角。我经常感觉,网络处理有两类视角,一个是网络工程师的视角,一类是软件工程师视角。
  在网络工程师的视角里,包处理和Interface(网口)的概念息息相关。他关注的是Interface是一个二层口还是三层口,一组口在哪一个域里,是一个二层域(bridgedomain),还是一个三层域(VirtualRoutingandForwarding,VRForRoutingtables)。
  在软件工程师的视角里,数据包从一堆接口上收到,查找了MAC表,IP表,对端MAC表之后,转发到另一堆接口里。从某种程度上讲,网络工程师使用的declarativelanguage(声明式语言)来表示网络处理,而软件工程师的视角,是一个Imperativeprogramming(指令式编程)的视角。
  严格意义上讲,一个二层域并不仅仅代表数据包处理需要经过MAC表查找,他还隐式声明了,这个二层域内的接口上的数据包都需要进行MACLearning(MAC地址学习)。OVS设计原则一:把一切都等价为MatchActionRevalidation
  终于到了要讲OVS的架构了,现在再看OVS的架构,一切都是水到渠成的自然。
  OVS的架构大体上可以看成是三个部分:1)ofproto,对外提供一个OpenFlowSwitch的抽象,OpenFlow规则存储在ofproto层,OpenFlow交换机的端口抽象也在这一层,这个可以同时也可以被理解为慢速路径;2)datapath,用于连接底层的所有口,并实际进行转发,这个同时可以被理解为快速路径;3)revalidator,用于维护上下层转发语义的一致性。
  以一个常见的VXLAN网关的配置来看:brex管理eth0和brex口,是underlay的网关brint管理vxlan0和vhostuser口,是overlay的网关
  从图中可以看出,在slowpath,不仅仅OpenFlow会表示转发语义,配置也会表示,比如brex是一个网桥,那么就自带了二层域的概念,因此隐含了MACLearning的概念。
  而在fastpath,一切都是MatchAction,端口上的其他所有属性都被剥夺了。下面举个例子,看看OVS是如何实现二层域的转发的。例子:OVS怎么实现网桥?
  当你在OVS里配置一个网桥的时候,你实际上不需要配置任何OpenFlow规则。OVS默认给每个网桥配置一个动作为Normal的规则,意思就是按照Bridging的方式处理数据包。
  那么OVS怎么实现网桥?很简单,套公式一样的设计:慢速路径:MacLearning
  这里无需多言。当fastpathMISS之后,数据包会上送到slowpath,slowpath执行MACLearning的操作,然后下发Flooding的action。当这个MAC后续在其他口上被学习到时,Revalidator会把fastpath里Flooding的动作改成单播转发。快速路径的FEC是MAC地址
  Bridge的转发依据是每个数据包的二层地址。Revalidtor
  周期性的收集FEC的命中的统计信息,用于更新slowpath的MAC表,让MAC表的表项不要超时。一切都是MatchAction,配合Revalidation
  不知道读者看到这里,是否会觉得OVS的设计其实挺自然的。OVS的设计,无非就是超越了MAC,IP,三层,二层,所有的协议,都基于这个套路去设计。结语
  本期仅介绍了MatchActionRevalidator的套路设计,下一期介绍下OVS下一些高级概念如Recirculation,Tunnel,Conntrack的一些具体实现。如果读者对OVS如何生成FEC感兴趣,可以去看看OVS的论文:TheDesignandImplementationofOpenvSwitch。
  原文链接:https:zhuanlan。zhihu。comp426498593

丹参滴丸和速效救心丸的区别丹参滴丸和救心丸一样吗丹参滴丸和速效救心丸是两种很常见的药品,而且这两者治疗的疾病也是差不多的,因为被多人弄混,但其实它们的适用人群还是有一定区别的,一起来了解下吧。丹参滴丸和速效救心丸的区别……硝酸甘油是速效救心丸吗?很多人都说硝酸甘油就是速效救心丸,这两个是一个东西,那么这个说法是否正确呢,它们真的是一种物品吗,下面介绍硝酸甘油是速效救心丸吗?硝酸甘油是速效救心丸吗速效救心丸和硝酸甘……硝酸甘油和速效救心丸哪个好?硝酸甘油和速效救心丸是同类型的药品,都是治疗心脏疾病的,关于这两款药品一直都很有争议,到底是哪款比较好呢,下面介绍硝酸甘油和速效救心丸哪个好?硝酸甘油和速效救心丸哪个好传……地球潘多拉魔盒打开了?北极挖出史前生物尸体,为何会让人不安?2022年6月,加拿大育空地区的政府发表了一则声明,指出有人在当地的金矿区的永久冻土当中,发现了一具颇为完整的幼年猛犸象遗骸。根据照片,我们可以明显看出这头小象的基本特征。……氨糖有什么作用?什么人适合吃氨糖?氨糖是一种单糖,是形成软骨细胞的重要营养素之一,也是软骨基质和关节液的基本成分,补充氨糖可以养护关节。氨糖具体作用有以下几个部分1。修复磨损关节软骨组织:氨糖能够修……swisse补铁片成分swisse补铁片孕妇可以吃吗很多人可能都有体内缺铁的问题存在,缺铁如果严重的话还是有很大影响的,而swisse补铁片是一款可以帮助我们补贴的产品,下面我们一起来看看swisse补铁片的主要成分吧。swis……swisse补铁片怎么吃swisse补铁片一天服用几粒swisse补铁片是一款口碑很不错的补铁产品,其实人体如果缺铁的话,对健康的影响还是比较大的,那么这款swisse补铁片的正确吃法是怎样的呢?swisse补铁片怎么吃sw……逢人少说自己的三件事,为自己留下了口德,人缘会越来越好常言道:饭可以乱吃,话不可乱说。在职场上,在生活中,说错一句话而给自己带来不良后果的事例比比皆是。因此,一个人说话要有分寸,绝不能口无遮拦,否则只会惹火上身,给自己带来麻烦。……swisse清肺片价格swisse清肺片禁忌人群swisse清肺片是一款网上口碑很好的保健品,它的成分十分健康,对于肺不好的人来说,坚持服用是可以改善的,下面我们一起来了解下swisse清肺片多少钱一瓶吧。swisse清肺片……swisse清肺片成分swisse清肺片有副作用吗swisse清肺片是一款专门针对肺部健康的产品,这款产品对于肺功能不太好的人来说,效果会十分明显,下面我们一起来了解下swisse清肺片里面的主要成分吧。swisse清肺片成分……swisse清肺片有效果吗swisse清肺片怎么样swisse清肺片是一款对肺部保养有很好的功效的产品,肺对于我们来说是十分重要的,但是很多人却因为一些不好的生活习惯而影响到肺部健康,那么swisse清肺片真的有效果吗?swi……swisse清肺片怎么吃swisse清肺片一天吃几粒swisse清肺片是swisse家比较火的一款产品,现在由于吸烟以及雾霾等环境的影响,很多人的肺部可能都不太健康,我们一起来看看swisse清肺片怎么吃吧。swisse清肺片怎……
适合13岁孩子看的绘本有哪些?这3本,每一本都很经典文婷妈哈喽,大家好,我是婷妈。今天有妈妈私信我,问我有哪些绘本适合13岁孩子看。很多妈妈都很重视孩子的早期阅读习惯培养,但是,他们在选择童书的时候又会充满困惑……谁才是驯龙高手,手机发热排行榜,小米确定为发烧而生?今年最尴尬的芯片厂商是高通,全球芯片份额被联发科超越,高端旗舰芯片又变成了火龙,无论是功耗还是发热都无法让人满意,为了驯龙,不少手机厂商都把自家的芯片降频。最开始小米为了释放骁……这些所谓的网红打卡地方,请不要再自欺欺人了今天还是想聊一聊虚幻的网络时间,我有段时间沉迷于在某乎看一个问题,照骗能骗到什么程度,怎么说呢,大开眼界。比如我们熟悉的李云龙能给P成这样:你以为漂亮的模特,其实她……1973年,伟人为何要对调八大军区司令?邓公主席真高瞻远瞩1973年12月,在毛主席的一声令下,原本在各自军区待了几十年的8个军区司令快速完成了对调。这一巨大的改变快速引起了世界各国的关注,对此众人猜测纷纷,甚至表示这将会是中国走向衰……大学物理实验二8。光电效应与普朗克常量的测量光电效应与普朗克常量的测量光电效应在证实光的量子性方面有着重要的地位。当光照射金属表面时,在某些情况下,有些电子可以从金属中释放出来,形成光电流。当照射在金属上的光的强度……英特尔收购威盛X86业务兆芯何去何从日前,英特尔公司以1。25亿美元收购威盛麾下Centaur公司的x86业务。Centaur是威盛的一家子公司,20多年前,威盛依靠数笔收购获得了x86授权,开发了数款X86芯片……86岁影星确诊肺癌,3个月后去世!医生这5类人肺癌高发著名影星因肺癌去世据新闻报道:香港演员谭炳文因病逝世,享年86岁。谭炳文是香港配音界的始祖人物,曾配音过《蓝精灵》《圣斗士星矢》《龙珠》《建元风云》《水浒传》《包青……人到晚年才会明白,活着就是活着,人生原来本无意义人到晚年才会明白,活着就是活着,人生原来本无意义。少年时,对人生懵懵懂懂,青年时不顾一切往前冲,中年时放佛清醒了许多,老年时一切已经看的云淡风轻。有时候人们忙碌一番后,偶然间脱……一年两送航天员入驻空间站将成为常态今年6月17日,神舟十二号三名航天员进入太空,实现太空驻留三个月。今天(10月16日),神舟十三号三名航天员再次飞天,将驻留太空六个月。有着神箭美誉的长二F火箭,首次实现了一年……戴珂从服务的角度看SaaS,我们能看到什么?本文由36氪企服点评专家团戴珂原创。36氪企服点评专家团戴珂正文在IT和互联网的产品开发和生产领域,从业人员已经饱和,所以IT行业才会出现35岁现象。事……果然有花样!当她在奥运会上拿出一个麻将,我就觉得这事并不简单在北京2022年冬奥会迎来开幕倒计时100天之际北京冬奥会奖牌同心正式亮相(详情见)奖牌由圆环加圆心构成形象来源于中国古代同心圆玉璧共设五环……快船惜败勇士,揪出三大罪人!没有伦纳德退出争冠行列快船113115惜败勇士,无缘赛季开门红!这场比赛他们是有机会拿下的,虽然开局挖坑,一度落后19分,但是凭借着乔治,布莱德索以及祖巴茨的发挥,他们将这个填平了。并且在最后还剩2……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网