没有合适的资源?快使用搜索试试~ 我知道了~
IP v6现场操作:Linux内核的第一个ioam实现和用例讨论
软件影响6(2020)100036原始软件出版物IP v6现场操作、管理和维护J. 尤尔曼湾唐内比利时列日大学蒙特菲奥里学院A R T I C L E I N F O保留字:IPv6Linux遥测A B标准现场操作、管理和维护(IoAM)目前正在IETF进行标准化。它允许在数据包内沿着路径收集遥测和操作信息,作为现有(可能额外)报头的一部分。本文介绍了在Linux内核中使用Ipv6作为封装协议的第一个ioam的实现,并讨论了IOAM可以找到合适用法的几个用例代码元数据当前代码版本v1.1用于此代码版本的代码/存储库的永久链接https://github.com/SoftwareImpacts/SIMPAC-2020-37可复制胶囊法律代码许可证GPL v2.0使用git的代码版本控制系统软件代码语言、工具和服务使用C编译要求、操作环境依赖性Linux内核v4.12如果可用,链接到开发人员文档/手册https://github.com/iurmanj/kernel_ipv6_ioam/blob/master/README.md问题支持电子邮件justin. uliege.be软件元数据当前软件版本1.1此版本可执行文件的永久链接https://github.com/iurmanj/kernel_ipv6_ioam/blob/master/kernel_4_12.patch可复制胶囊法律软件许可证GPL v2.0计算平台/操作系统Linux kernel v4.12安装要求依赖关系Linux内核v4.12如果可用,请链接到用户手册-如果正式出版,请在参考列表中引用该出版物https://github.com/iurmanj/kernel_ipv6_ioam/blob/master/README.md问题支持电子邮件justin. uliege.be1. 介绍操作、管理和维护(Operations,Administration,and Maintenance,OAM)是指用于执行故障检测和隔离以及用于性能测量的一组技术和机制。多年来,已经为协议中的各个层开发了多个操作工具栈[1],从基本跟踪路由[2]到双向转发-检测(BFD[3])。最近,奥姆被进一步推到了[4]《易经》云:“君子之道,焉可诬也?有始有卒者,其惟圣人乎。术语IOAM业务嵌入在数据业务中,但不是分组有效载荷的一部分∗ 通讯作者。电子邮件地址:benoit. uliege.be(B. Donnet)。https://doi.org/10.1016/j.simpa.2020.100036简而言之,IOAM在数据包内沿着路径收集遥测和操作信息(参见图1),作为现有(可能附加的)报头的一部分。它被包括在IPv6分组中作为IPv6HopByHop扩展报头[6,7]。通常,在给定域中、在网关与网关之间或在域内的所选设备之间部署IOT。在IOAM中涉及的每个节点可以插入、移除或更新扩展报头。在进入域时将IOAM数据添加到分组,并且在退出域时将IO AM数据从分组移除。存在四种IoAM类型,针对这些Io am类型定义了不同的IoAM数据字段。(1)预分配跟踪选项,其中为IOAM数据预分配空间;(2)增量跟踪选项,其中没有任何接收日期:2020年8月20日;接收日期:2020年9月24日;接受日期:2020年10月3日2665-9638/©2020作者。由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表软件影响杂志 首页:www.journals.elsevier.com/software-impactsJ. Iurman和B.多内软件影响6(2020)1000362图二. 使用IO AM进行故障检测。Fig. 1. O AM数据包内的数据。被预先分配,并且每个节点在扩展分组的同时也添加IO_AM数据;(可选)传输证明(POT)和(可选)边缘到边缘(E2 E)选项。���������Trace和PoT选项都嵌入在HopByHop扩展报头中,即,它们由路径上的每个节点处理。相反,E2E选项嵌入在目的地扩展报头中,即,它仅由目的地节点处理IoAM数据字段在IoAM命名空间内定义,由16位标识符标识。他们允许设备是木卫一我能力以确定例如IO_AM选项报头是否需要被处理或忽略。IOAM命名空间可以被操作者用来区分不同的操作域。它们还为IoAM数据字段提供了额外的上下文,确保IoAM数据在几个相同的IoAM选项的情况下是唯一的,并允许识别不同的设备集。我们提供了IoAM的第一个Linux内核实现,可以在线获得[8],主要基于以下两个草案:(1)IoAM IP v6草案[7],定义了IoAM如何由IP v6携带;(2)IoAM数据草案[5],定义了IoAM的可用数据字段。该实现符合RFC8200 [6],因为它同时处理IOAM的封装和内联插入。 它也是面向每个Linux网络命名空间的,即,它与容器一起工作(例如,Docker,Kubernetes)和虚拟机(VM)。第一个官方版本和最新版本[9]已在上游发布。这是一个改进的版本的实现建议在这里,作为一种尝试, 让木卫一成为内核的一部分木卫一对行业的关键影响有可能是巨大的。事实上,通过IoAM,运营商现在有机会受益于一个高效且轻量级的工具,帮助他们快速检测和应对网络问题[10]。在本文中,通过多个用例场景(参见第2节),我们描述了这些好处和对行业的影响2. 有趣的IOAM用例IoAM可以在多个场景中找到合适的用法,对行业的影响[10]。 其中,我们可以引用SLA验证,运输证明和地理定位。在本节中,我们将特别讨论三个特定用例:故障检测(第2.1节)、服务选择(第2.2节)和跨层遥测(第2.3节)。2.1. 智能跟踪路由:故障检测传统上,为了检测和隔离网络故障,使用ping和traceroute,甚至BFD。但在具有微服务或大量不等/多径(U/E-CMP)可用,将难以检测和分离这样的缺点。目前,在大型网络中,故障检测需要几十秒,而故障隔离(使用ping和traceroute)需要几分钟[11,12]。事 实上,基于traceroute的探测慢是因为它通常需要2 ×(N-1)个分组用于N个节点(即,对于每个TTL值生成两个分组,一个来自发送方,一个来自沿着路径的中间节点)。因此,一个关键的影响是通过有效的网络探测显著提高故障检测和隔离,特别是对于超级巨型分发网络(HGDN,如Facebook、Google或Netflix)和大型数据中心网络(DCN)。这正是依赖于具有IoAM的UDP探测的主动网络探测可以找到合适用途的上下文如果在各个节点之间遇到连接问题,则可以在这些节点之间启用IoAM跟踪,以了解哪里出了问题。使用IoAM,可以以低探测成本识别确切的路径[10],因为它只需要用于多个节点的多实际上,IO AM在网络中向目的地注入单个分组,而沿着路径的每个中间节点在返回路径上发送回副本。2说明了这一点。节点A通过路径A-向节点发送具有IoAM的分组。每个人依次(见步骤1)和(见步骤2)将一个副本发送回A。由于和之间存在链路故障,因此A不会从接收任何内容。此时,检测到故障。要隔离它,请对其他路径重复相同的过程(请参见步骤3第5步允许A检测到健康,因此排除节点故障,从而得出结论,故障是链路故障,可以在和之间隔离。2.2. M-Anycast:服务选择另一个重要影响是提供智能服务选择的可能性。让我们以高度冗余的微服务为例(例如,视频块服务器)作为容器被托管在多个公共云中,每个服务具有IPv6地址并共享相同的辅助任播地址。访问延迟、服务器负载、服务负载、服务活跃度等彼此不同。因此,客户端需要选择一个合适的服务来连接。由于M-Anycast [13],如图所示。第三,客户不再需要选择。实际上,在那个精确的时刻,最好的服务是由服务器作为代理提供给客户机的,分段路由[14]以引导流量和IOAM以优化服务选择。这是ping,traceroute甚至BFD无法做到的,因为IoAM也携带有用的数据,并且是为此目的而设计的[10]。作为第一步,客户端启动与服务的TCP会话通过启动TCP三向握手(TCPSYN分组),由任播地址表示。一旦被M-Anycast服务器接收到,分组就被增强有IoAM元数据并被复制到子集可用的服务实例。这样,遥测信息可以被测量并传播回M-Anycast服务器。 在第二J. Iurman和B.多内软件影响6(2020)1000363图三. 服务选择和负载平衡与IOAM。图四、跨层遥测与Io AM.每个服务都通过TCP三次握手(TCPSYN+ACK)进行响应。然后,在接收到元数据M-Anycast服务器是然后负责将分组从所选择的服务转发回客户端。所有其他半开放连接都将被丢弃,连接状态将被清除。第三,客户端接收到一个包含分段路由策略的数据包,该策略揭示了数据包的源(在本例中为服务4),从而避免了随后的常规流量通过M-Anycast服务器然后,客户端直接与选定的服务(TCPACK)完成三次握手过程.最后,一旦TCP三次握手完成,在服务4和客户端之间直接建立2.3. 跨层遥测跨层遥测(CLT)旨在使整个网络栈(L2→ L7)对于分布式跟踪工具可见(例如,Jaeger),而不是通常的L5→ L7可见性,这对行业产生了很大的影响,因为它允许更有效的应用程序调试。图4说明它是如何工作的。IP v6 IoAM域是魔法发生的地方当一个客户端请求到达时,Io AM报头被“API入口点”插入到Io AM域流量中(见图1)。4)服务器并由路径上的每个IO AM节点处理。跟踪工具中的跟踪ID和跨度ID都被注入到IoAM头中,以便将来进行关联。然后,在端点服务器上运行的IoAM代理负责收集IoAM数据,并将所有内容发送到IoAM收集器,该收集器将通过IoAM将高级跟踪和网络数据包关联起来,并将结果发送到跟踪收集器。轨迹存储在数据库中,操作员可以通过图形用户界面对其进行监控。通过CLT,操作员现在能够检测较低级别的问题。 举一个SQL请求的例子,它需要很长时间,而服务操作员想要调试。 多亏了CLT,运营商现在能够检测例如与该SQL请求问题相关联链路故障、接口错误配置、队列上的为此,IoAM用于在数据平面,这样网络数据包和高级OpenTelemetry [15]跟踪之间的相关性就可以发生。CLT代码可以在网上找到[16],还有一个视频可以演示它的实际效果。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作确认Iurman先生附录A. 补充数据与 本 文 相 关 的 补 充 材 料 可 以 在 网 上 找 到在https://doi.org/10.1016/j.simpa.2020.100036。引用[1]T. Mizrahi,N. Sprecher,E.贝拉甘巴岛Weingarten,操作、管理和维护(OAM)工具概述,RFC 7276,互联网工程任务组,2014年。[2]V.Jacobson 等 人 , Traceroute , unix , 1989 , 参 见 源 代 码 :ftp://ftp.ee.lbl.gov/traceroute.tar.gz。[3]D. 卡 茨 , D. Ward , Bidirectional Forwarding Detection ( BFD ) , in : RFC5880,Internet Engineering Task Force,2010.[4]F. Brockners , S. Bhandari , D. Bernier , In-situ OAM deployment , draft-brockners-opsawg-ioam-deployment-01(Internet Draft),Internet EngineeringTask Force,2020.[5]F. Brockners,S.班达里T. Mizrahi,现场OAM的数据字段,在:draft-ietf-ippm-ioam-data-10(互联网草案),互联网工程任务组,2020年。[6]S.迪林河Hinden,互联网协议,版本6(IPv6)规范,在:RFC8200,互联网工程任务组,2017年。[7] S. Bhandari,F.布罗克纳角Pignataro,H. Gredler,J. Leddy,S. Youell,T. 米兹拉希湾一、G. B、P. Lapukhov,S. M.,K.美国,A. R.,原位OAM ipv6选项, 在 :draft-ietf-ippm-ioam-ipv6-options-02(互联网草案),2020。[8] J. Iurman , Linux 内 核 v4.12 的 IPv6 IOAM 补 丁 , 2019 , 请 参 阅 https ://github。com/iurmanj/kernel_ipv6_ioam。[9] J.尤尔曼,数据平面 支持 为 IOAM 预先分配微量 与 IPv6,2020,见https://lore.kernel.org/netdev/20200624192310.16923-1-justin.uliege.be/。[10] J. Iurman,B. Donnet,F. Brockners,在Linux内核中实现IPv6 IOAM,在:Proc.Linux网络技术会议(Netdev0x14),2020,https://netdevconf.info/0x14/pub/papers/32/0x14-paper32-talk-paper.pdf。[11] Facebook,UdpPinger,见https://github.com/facebook/UdpPinger。[12] Facebook、fbtracert,见https://github.com/facebook/fbtracert。[13] 思科,M-Anycast,2017,请参见https://github.com/CiscoDevNet/iOAM/tree/master/M-Anycast。[14] C. Filsfils,S.普雷维迪湖金斯伯格湾Decraene,S.利特科夫斯基河Shakir,SegmentRoutingArchitecture,RFC 8402,Internet Engineering Task Force,2018。[15] OpenTelemarket,供应商中立的API和分布式跟踪工具,2020年,https://opentelemetry.io。[16] J. Iurman,跨层遥测,2020,参见https://github.com/iurmanj/cross-layer-telemetry。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功