APP下载

OpenDaylight在跨数据中心网络中的应用

2020-10-26孙祥安朱泓艺

通信电源技术 2020年13期
关键词:网络设备插件链路

孙祥安,朱泓艺

(上海宽带技术及应用工程研究中心,上海 200436)

0 引 言

科学技术的发展加快了社会的节奏,人们期望着即刻响应的服务、即日抵达的物流以及随时随地能够访问与交互信息。从企业角度来看,这一趋势反映在对大数据的高速处理、缓存以及分发的需求等方面,从而带动边缘数据中心的发展。为了降低总成本,建设边缘数据中心的第一步是将大量现有的传统计算基础设施改造为边缘云数据中心,形成分布式跨数据中心网络。这样不仅能够提高计算存储效率,还能有效地提高业务数据的安全性能[1]。传统的数据中心存在部署效率低、交付时间长以及部分设备利用率不足等问题,难以满足建设大规模数据中心网络的需求。

目前,数据中心网络主要为了实现广泛使用的分布式计算,承载着协同与交互功能,使得数据中心的东西向流量占据着大部分数据中心网络资源。软件定义网络(Software Defined Network,SDN)技术通过分离网络设备的控制面与数据面,在控制层实现网络管理的标准化与可编程,从而更有效地分配东西向网络资源。因此,采用SDN技术可以有效配置、监控与管理数据中心网络[2-4]。在通信协议方面,OpenFlow拟定了SDN控制器与网络设备之间信息交互的标准。它创新的网络架构受到了广泛关注与支持,但由于OpenFlow的SDN对于网络架构的改造过于激进,主要仅运用在数据中心内部。在跨数据中心网络以及变更影响较大的场景中,传统的多协议标签交换(Multi-Protocol Label Switching,MPLS)技术更受企业的青睐,是跨数据中心网络升级的主要手段。分段路由(Segment Routing,SR)以MPLS为基础,在SDN网络架构中更进一步地为上层应用提供可编程能力。OpenDaylight控制器是一款支持SR技术的开源SDN控制器,可以提供全方位的网络管理功能。它分为南向协议层、控制层以及北向接口层[5]3层。本文主要介绍OpenDaylight中的几种重要控制层插件,通过这些插件对MPLS网络进行配置和监控。此外,研究OpenDaylight连接两种主流厂商华为与思科网络的设备。其中:使用的华为设备软件版本号为NE20E V800R010C10SPC500,与之连接的OpenDaylight版本为0.11.1;思科模拟器为IOS XR 6.0.1,与之连接的OpenDaylight版本为0.8.4。

1 控制器南向接口应用

南向接口用于控制器与设备的通信。随着网络运维自动化的普及,网络设备不再局限于传统命令行的配置方式。设备厂商会比较关心控制器南向接口的开发,因为南向接口对应着设备的北向接口,即设备的配置管理方式。设备厂商开发了很多更为方便的管理通道,更适合设备的自动化管理。其中,控制器南向插件就是利用设备的各类通道连接设备,对设备进行监控和管理。常见的南向协议有网络配置协 议(Network Configuration Protocol,NETCONF)[6]、边界网关协议(Border Gateway Protocol,BGP)[7]以及路径计算单元通信协议(Path Computation Element Protocol,PCEP)[8]等。

1.1 配置管理协议及其接口应用

配置管理用于设备配置信息的管理,用于替换传统的命令行界面(Command-Line Interface,CLI)的命令行。NETCONF是新一代网管协议,相较与CLI和简单网络管理协议(Simple Network Management Protocol,SNMP),更利于自动化运维,也更安全。它提供了一套全新的网络管理机制,协议号为RFC 6241(是一系列以编号排定的文件)。该标准中定义了它基于可扩展标记语言(Extensible Markup Language,XML)进行网络配置,而后在RFC 6242中规定了NETCONF使用SSH通道进行信息交互。NETCONF协议使用远程过程调用(Remote Procedure Call,RPC)的方式与网络设备通信,是连接OpenDaylight和设备的重要通道。整体架构包含安全传输层、消息层、操作层以及内容层4个层级。安全传输层用来和设备建立安全通信通道,NETCONF协议允许用户使用任意的传输层协议,默认使用SSH协议作为数据加密和数据传输机制;消息层采用RPC机制,提供一种与传输无关的消息封装格式;操作层提供对数据库信息的获取、配置及删除等9种基本操作功能;内容层定义RPC调用的数据内容,即配置数据库。

网管人员重点关注的是内容层的定义。内容层是整个NETCONF的核心所在。网管对网络设备进行操作管理时,主要工作也是关于内容层。NETCONF本身并没有对内容层作限定,其规范表现为YANG模型的建模,其中YANG是NETCONF访问设备的数据建模语言。RFC 6020中规定了YANG模型的各种元素和使用方法,NETCONF用它对各种操作、数据以及通知进行建模。YANG模型具有良好的可读性和可扩展性。客户端与设备之间使用NETCONF刚建立连接时会相互发送消息,设备发送的消息中会携带设备自身的capabilities。capabilities包含设备所支持的配置能力,规定了具体的配置该如何使用,可进一步获取YANG模型,并通过RFC 6022定义的方法获取YANG文件内容。

OpenDaylight中使用NETCONF协议连接网络设备的插件是odl-netconf-connector-all,这里并不关注该插件的内部实现,重点在于如何安装使用。在不对控制层插件做任何修改的情况下进行网络设备管理,有利于管理人员集中精力于业务功能的维护。设备与控制器可以通过CallHome由设备发起连接,也可以配置设备挂载信息由控制器发起连接,其中通过控制器发起连接的方式适用性更广。通过控制器发起连接需要配置设备IP、设备port、用户名以及密码等信息,通过put方式增加设备挂载点。挂载点增加后通过控制器提供的接口查看连接状态,如图1所示,其中与上文中NETCONF的报文中的capabilities相对应。

图1 通过OpenDaylight查看设备状态

1.2 网络信息搜集及其接口应用

控制器对网络信息的搜集主要由BGP协议完成。BGP是自治系统之间传输路由的动态路由协议,当前使用BGP-4版本,协议标准为RFC 4271。BGP协议设计之初主要用来传输自治域间的路由信息,具有非常友好的扩展机制。BGP自身不具备在不同自治系统之间提供节点、链路状态的功能,也没有提供与应用流量工程相关的信息。若要使用PCE等协议作为不同自治域中节点之间的路径计算机制,需要掌握所有自治域网络拓扑。到目前为止,PCE还不能计算出通过另一个自治系统的网络全局最优路径。为了搜集各个自治域的流量工程信息,研究人员提出了一种BGP扩展方案,即BGP-LS(RFC 7752)。在BGP-LS中,路由器维护一个或多个数据库,用以存储来自给定区域的链路状态信息。这些信息包括本地/远端IP地址、本地/远端接口ID、链路metric、TE metric、链路吞吐量、可用链路吞吐量、每个服务等级的资源预留以及抢占共享风险链路组。BGP进程可以从数据库中检索共享信息,并通过另一个BGP路由器直接或间接地将其传递给控制器接收者。在TLV(Type/Length/Value)字段中包含有关链路状态和流量工程的信息,主要包含NLRI(Network Layer Reachability Information)和BGP-LS属性两种格式。其中,NLRI描述从域间路由协议获得的链路、节点以及前缀,BGP-LS属性则携带有关链路、节点以及属性(如链路或前缀metric、router ID)的信息。

OpenDaylight中 的BGP-LS插 件 为odl-bgpcepbgp。为了方便使用,控制器还提供了一个示例插件odl-bgpcep-bgp-config-example,只需对提供的实例做简单修改即可。首先需要配置控制器的BGP属性,修改控制器的BGP端口为179。其次,在控制提供的示例基础上加以修改,将BGP的本地地址、AS号以及远端地址修改为自身的配置,示例文件的路径为“etc/opendaylight/bgpcep/protocols-config.xml”。最后,控制器配置完成后,在设备上配置对应的BGP功能即可。网络设备将路由信息同步反馈到控制器,控制器可以通过API获取的BGP-LS信息还原出拓扑、网络流量等特征。图2为通过控制器获取的BGP-LS信息。

1.3 动态隧道管理及其接口应用

目前使用最广的动态隧道管理协议为PCEP。PCEP负责PCE服务器与客户端或位于不同域中服务端之间的通信,标准为RFC 5440。PCE可分为有状态和无状态两种模式。在有状态PCE中,PCE模块与网络保持完全同步,从而了解网络拓扑结构、链路容量、已建立的LSP和资源预留(带宽);而无状态PCE不知活动的LSP,每个路径发送请求都是独立处理的。在有状态模式中,PCE能充分了解和高效优化网络过程并获得其结果,因此可以作为使用所有可用资源的最佳解决方案。

图2 通过BGP-LS获取网络状态

OpenDaylight实现PCEP功能的插件为odlbgpcep-pcep。控制器中PCEP的初始化配置文件为“etc/opendaylight/bgpcep/network-topology-pcep-config.xml”,默认不需要修改。完成控制器配置后,设备作为PCC端配置并连接控制器上的PCEP服务端,连接状态以及上报信息在控制器上查看,还可以进行隧道信息的增、删、改等操作,如图3所示。

2 控制器北向接口应用

图3 查看PCEP连接状态

北向接口用于网管人员与OpenDaylight交互。控制器开放北向接口用以向外部各种应用程序提供设备信息获取和配置下发等功能[9]。RESTCONF是一种重要的控制器北向接口技术,而OpenDaylight采用的MD-SAL使得设备资源可以通过YANG模型直接转换为RESTCONF API。

2.1 RESTCONF协议介绍

RESTCONF(RFC 8040)是基于HTTP的协议。该协议基于NETCONF定义的数据存储概念,为访问YANG中定义的数据提供编程接口。RESTCONF协议使用HTTP方法标识特定资源请求的增、删、改、查操作。表1显示了RESTCONF操作如何与NETCONF协议操作相关联。

表1 RESTCONF与NETCONF操作的对应关系

RESTCONF协议使用HTTP协议,单个HTTP协议对应单个协议方法。大多数协议可以在单个资源上执行单个任务,如检索资源或编辑资源。PATCH方法例外,它允许在单个消息中进行多个数据存储区的编辑。RESTCONF协议与其他REST协议类似,一个RESTCONF操作是由HTTP方法和被请求资源的URI构成,如图4所示。

图4 URL结构

(1)method:客户端发送HTTP请求时,标识RESTCONF操作,请求操作作用于被请求URI指定的目标资源之上,可选操作有GET、PUT、DELETE、PATCH以及OPTIONS。

(2)entry:HTTP服务器端配置的RESTCONF API的根。

(3)resource:标识RESTCONF操作正在访问的资源路径表达式,若不存在该字段,则目标资源就是API本身。

(4)query:与RESTCONF消息相关联的参数集合,以键值对的形式存在。

2.2 基于北向接口的应用层编程

OpenDaylight中实现RESTCONF的插件为odlrestconf,需结合之前的南向插件执行配置管理。如图5所示,挂载NETCONF设备后获取隧道接口配置,需要注意url中键值的写法,且键值的顺序需正确。可以在YANG文件中查看键值的定义和定义顺序。

图5 通过OpenDaylight获取配置

在1.2节中已经展示了使用BGP-LS获取网络拓扑,这里主要介绍拓扑还原方法。获取的拓扑可以有多种还原方法,可以自己写也可以使用一些现有的工具。这里使用思科提供的一个开源小程序对拓扑进行还原,如图6所示。

网络设备的PCC端通过PCEP通道将隧道信息上报控制器的有状态PCE端,因此隧道的每条LSP信息都可以通过RESTCONF获取并还原以进行可视化展示。图7为获取上报的SR隧道信息以及可视化展示,LSP路径为R1-R3-R4-R2。

3 结 论

OpenDaylight控制器支持SR与MPLS技术,通过衔接RESTCONF/HTTP和NETCONF/SSH,实现跨数据中心网络设备的多层多域编排、多供应商部署以及流量工程等功能。本文重点讲述了OpenDaylight控制器南北向接口的功能与应用,可以更好地了解OpenDaylight的网络架构与关键部件的功能。模型驱动的服务抽象层MD-SAL统一了南北向接口以及所有模块的数据结构,YANG模型起到了协调接口调用的关键作用。RESTCONF实现了外部应用程序与内部模块的交互功能。基于OpenDaylight研发成果进行网络应用层面的编排管理,可以大幅提升多数据中心部署运维的效率。

图6 通过BGP-LS进行拓扑还原

图7 PCEP获取的隧道路径展示

猜你喜欢

网络设备插件链路
网络设备的安装与调试课程思政整体设计
天空地一体化网络多中继链路自适应调度技术
基于星间链路的导航卫星时间自主恢复策略
一种基于C# 的网络设备自动化登录工具的研制
自编插件完善App Inventor与乐高机器人通信
浅析民航VHF系统射频链路的调整
基于OSGi的军用指挥软件插件机制研究
一种IS?IS网络中的链路异常检测方法、系统、装置、芯片
基于jQUerY的自定义插件开发
地铁通信网络设备的维护