在我们的 上一篇文章中 ,我们对SDN作为技术,为什么需要,以及IT行业如何采用它们有很好的概述。 现在,让我们深入一层,了解SDN的架构以及Openflow协议在实现该技术中的作用。
SDN广泛地由三层组成:
- 应用层
- 控制层
- 基础设施层
让我们从底到尾的方法来尝试和理解这些层次。
基础设施层 由各种形式的网络设备组成 底层 网络转发网络流量。 它可以是数据中的一组网络交换机和路由器 中央。 该层将是通过控制层(其中SDN控制器将坐下并管理底层物理网络)的网络虚拟化的物理层。
控制层 是控制平面的地面,SDN控制器中的智能逻辑将驻留在控制网络基础设施上。 这是每个网络供应商正在为SDN控制器和框架提供自己的产品的领域。 在这个层面上,正在写入控制器中的很多业务逻辑来获取和维护不同类型的网络信息,状态细节,拓扑细节,统计信息等。
由于SDN控制器用于管理网络,因此它必须具有用于现实世界网络用例(如交换,路由,L2 VPN,L3 VPN,防火墙安全规则,DNS,DHCP和集群)的控制逻辑。 几个网络供应商甚至开放源代码社区正在其SDN控制器中实施这些用例。 一旦实现了这些服务,这些服务将其API(通常基于REST)暴露给上层(应用层),这样一来,网络管理员就可以轻松地使用SDN控制器上的应用程序来配置,管理和监控底层网络。 控制层位于中间,它暴露了两种类型的界面 - 北行和南行。
- Northbound接口 :用于与上层应用层进行通信,通常通过SDN控制器的REST API实现。 S outhbound接口 :用于与较低的基础设施层网络通信,通常通过南向协议实现 - Openflow,Netconf, Ovsdb等
应用层 是通过利用所有网络开发尽可能多的创新应用的开放区域 有关网络拓扑,网络状态,网络统计等信息,可以开发出与网络自动化,网络配置和管理,网络监控,网络故障排除,网络策略和安全相关的几种应用。 这样的SDN应用可以为现实世界的企业和数据中心网络提供各种端到端的解决方案。 网络供应商正在提出他们的SDN应用程序。 例如,博科有以下非常有用的应用程序:
- 博科流优化器
- 博科虚拟 路由器
- 博科网络 顾问
HPE也是一家拥有SDN应用程序的供应商 商店 其中包含许多来自不同公司的SDN应用程序。 例如:
- HPE网络优化器
- HPE网络保护器
- HPE网络 可视化
- NEC UNC的HP SDN VAN控制器
- 爱瑞森特 SDN负载平衡器
- TechM智能流量转向
- TechM服务器负载平衡器
正如我们简短的介绍 OPENFLOW 在 以前 文章中,我们将介绍从控制层到基础设施层(网络交换机)的南向通信的细节 OPENFLOW 协议。
OPENFLOW 在SDN革命中发挥了重要作用 在这个意义上 一直是关键 展会情况 分离 控制 平面从数据平面。 OPENFLOW 是开放网络基金会(ONF)提供的标准规范,随着时间的推移,支持当前世界网络的各种需求。 当前版本的 OPENFLOW 协议是1.5.1。
OPENFLOW 是一个给出的协议 标准 SDN控制器与网络设备(通常为交换机)之间的通信规范。 它允许SDN控制器进行路由决策,并允许转发规则,安全规则被推入交换机 底层 网络。
SDN控制器和交换机需要实现 OPENFLOW 规格,使他们能够理解共同语言 OPENFLOW 消息。 为了控制网络交换机,SDN控制器将把规则推入交换机,以便它们可以占用 决定 当网络流量点击它们时。 交换机需要维护这些规则 OPENFLOW 表。 按照 Openflow,这样的规则称为“流”,它们存储在“流表”中。
一般来说,流量包含三种信息:
- 匹配字段:它们将根据标题字段定义标准以匹配数据包 - L2(源目的地) 以太网络 地址,VLAN ID,VLAN优先级等),L3(IPv4 / IPv6 源目的地 地址,协议类型,DSCP等),L4字段(TCP / UDP / SCTP源目的端口),ARP字段,ICMP字段,MPLS字段等。
- 操作:如果匹配条件,它们将定义如何处理数据包。 行动就像下降,在某些端口向前走 切换,修改数据包(push / pop VLAN ID,push / pop MPLS标签,递增/递减IP TTL),转发到 具体 端口排队等
- 计数器:跟踪与流量匹配的数据包数
成为 具体, 流程包含一些可以进一步检查的信息 OPENFLOW 规格。
OPENFLOW 通道或连接是开关和控制器之间的设置,以便控制器可以进行通信 开关 配置,管理和监控它。 按照 OPENFLOW 规范, OPENFLOW 运行在TCP或TLS连接和控制器监听 连接 在6653端口。 开关 预计将启动连接并应发送 连接 请求 控制器。
(可选) 连接 也可以从控制器端启动,对于这种情况, 开关 将会在 被动 模式听 连接。 无论是从任何一方,它将是正常的TCP或TLS连接设置,一旦建立, OPENFLOW 消息通过TCP或TLS连接进行交换。 例如,下面是 命令 的开源 OPENFLOW 虚拟交换机( OpenVswitch )启动TCP连接 控制器:
ovs-vsctl set-controller <sampleBridgeName> tcp:192.168.56.101:6653
这里,192.168.56.101是控制器IP,6653是它将要监听的控制器端口 连接。
OPENFLOW 定义各种消息,以实现交换机和控制器之间的通信,包括连接建立消息,配置消息,获取交换机统计信息,保持活动消息,异步事件消息,错误消息,实验者消息等。
让我们简单了解一下 OPENFLOW 消息:
- 一旦TCP连接完成, OPENFLOW 两个实体之间交换HELLO消息进行协商 OPENFLOW 版本将进一步沟通。 这是需要的,因为开关和控制器可能运行不同 OPENFLOW 版。 两者将同意支持的最高版本。
- 版本协商完成后, 调节器 先发送 OPENFLOW 功能要求信息主要 得到 的数据路径ID 开关 在 响应 消息并确定交换机支持哪些功能。
- 配置 开关 处理网络流量, OPENFLOW 可以发送诸如流条目的消息 控制器。 这些都保存在交换机内的流表中。
- 要组合流条目,可以通过配置组 调节器 通过可以存储在交换机内的组表中的组消息。
- 从中获取统计资料 开关, OPENFLOW 可以发送消息,如流统计信息,端口统计信息,队列统计信息,组统计信息,表统计信息等 控制器。
- 检查连接活动,回应请求和回复 OPENFLOW 消息可以从控制器或交换机发送。
- 异步 OPENFLOW 消息,如流规则从交换机删除,配置应用失败错误 开关,端口上/下状态 从 开关等可以发送 开关 更新控制器。
到目前为止,我们已经经历了SDN架构,其层次和作用 OPENFLOW 实现SDN核心原理,分离控制平面 数据 平面。 现在我们需要看看如何 调节器 将能够使用 OPENFLOW 配置和管理 底层 网络。
基本上, 调节器 将需要实现一些插件代码 OPENFLOW 通过它可以发送,接收和理解 OPENFLOW 消息往返 OPENFLOW 切换到 底层 网络。
配置 OPENFLOW 开关, 调节器 需要将流程规则推入 OPENFLOW 交换机的表基于后者可以处理网络流量撞击它们。 OPENFLOW 流条目的消息具有大量用于匹配来自网络的数据包的标准(L2,L3,L4字段等)的元组字段,这将有助于配置ACL规则,安全策略规则,QoS速率限制带宽规则,路由规则,端口镜像规则和数据包修改规则。
监视 OPENFLOW 交换机,Openflow提供各种请求和响应消息,以提取交换机和网络统计信息和事件消息,以更新控制器关于在交换机侧发生的手动更改或故障,包括流程删除事件,端口状态UP / DOWN更改等。
执行一些 供应商具体 任务 OPENFLOW 开关,Openflow提供了供应商具有的实验性消息 自由 定义消息体并在控制器和交换机之间交换自定义信息。 就是那样 OPENFLOW 许多SDN应用程序正在使用它来提供方便网络控制和管理的解决方案。
This article is co-authored by Tarun Thakur.
参考文献: