且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《软件定义网络:基于OpenFlow的SDN》一一1.1 理解软件定义网络——OpenFlow特色

更新时间:2022-09-30 22:04:51

本节书摘来自华章计算机《软件定义网络:基于OpenFlow的SDN》一书中的第1章,第1.1节,作者:Siamak Azodolmolky,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.1 理解软件定义网络——OpenFlow特色

软件定义网络(Software Defined Networking,SDN)通常被认为是计算机网络领域中的创新概念,其目标是极大地简化网络控制和管理,通过网络的可编程性引导创新。通常,计算机网络的建设依赖于大量的网络设备(如交换机、路由器、防火墙等),以及在设备中嵌入实现的复杂网络协议(软件)。网络工程师负责配置各种策略,以应对各种各样的网络事件和应用场景。他们需要手工地将这些高层策略转换为低层的配置命令,这些繁杂的任务通常只能通过有限的工具完成,使得网络管理控制和性能调优任务总是带有挑战性并易于出错。
另一个网络工程师和研究人员常常提到的挑战是因特网的固化机制。庞大的因特网基础设施和它对我们生活诸多方面所带来的影响,使得因特网无论是在物理基础设施方面,还是在相关的协议及性能方面,都极难发展进步。随着因特网上新兴的强大应用越来越趋于复杂化,现有的因特网机制在应对这些新的挑战时便显得力不从心。
可编程网络的概念是作为一种促进网络进化的途径而提出的,特别是SDN,它是一种新的网络模式,把执行转发的硬件部分(例如专用的包转发引擎)从控制决策部分(如协议和控制软件)中分离出来。这种控制逻辑的迁移,使得下层网络互连基础设施能够从应用层面上抽象出来,而以前的控制逻辑是紧密集成到网络设备(如以太网交换机)中的,现在则转变为逻辑上集中的可访问的控制器。这一分离提供了一个更灵活的、可编程的、与厂商无关的、高性价比的创新网络架构。除了网络的抽象化,SDN架构也将提供一组应用编程接口(Application Programming Interface,API),使得常用网络服务的实现更为简便,这些服务涉及路由、多播、安全、访问控制、带宽管理、流量工程、QoS、能效管理以及各种策略管理等。从逻辑意义上看,SDN中的网络智能被集中到了基于软件的控制器(在控制平面)中,而网络设备变成了简单的数据包转发设备(数据平面),并可以通过开放接口对它进行编程。这种开放编程接口的早期实现之一便是OpenFlow。
将转发硬件从控制逻辑中分离出来,能够简化新型协议和应用的部署,直接进行网络的虚拟化和管理,并且能够把各种中间构件整合到软件实现的控制中。通过精简网络,简化了转发硬件和负责决策的网络控制器,而不用在错综复杂的分散的设备中去实施策略和执行协议。
负责转发功能的硬件包含以下两部分:

  1. 一个包含流记录(flow entry)的流表(flow table),流记录由用于匹配当前流的规则和所采取的具体操作构成。
  2. 一个传输层协议,用于与控制器进行安全传输,以传递没有记录在当前流表中的新记录。