本文部分内容来源于《现代网络技术:SDN,NFV,QoE、物联网和云计算:SDN,NFV,QoE,IoT,andcloud》
SDN控制平面体系结构
SDN控制层将应用层服务请求映射为特定的命令和正式指令并送达数据平面交换机,并且向应用程序提供数据平面拓扑和活动性的信息。控制层作为服务器或服务器的协同操作集合来实现,称之为SDN控制器。
控制平面功能
控制平面的功能可以通过以下几项来理解:
- 最短路径选择:控制平面负责选择数据包的最短传输路径,并进行优化,从而确保数据传输的高效性。
- 通信管理:控制平面处理与网络设备之间的通信事务,包括事件的触发与响应,确保网络的正常运行。
- 安全机制:控制平面用于管理网络的安全性,处理防御性措施和状态变化,包括检测和防止网络攻击等。
- 拓扑管理:它对网络的拓扑结构进行管理,通过收集信息来维护网络状态和设备配置。
- 统计管理:控制平面通过监控和收集网络流量数据,帮助网络管理员进行流量分析和决策。
- 设备管理:管理所有设备的配置和状态,确保网络设备的正常运行。
在SDN中,控制平面常通过网络操作系统(Network Operating System,NOS)来实现。NOS不仅提供了这些功能的支持,还允许网络管理员通过一个API接口来管理整个网络。控制平面能够通过不同的软件平台(如OpenDaylight、ONOS等)来实现这些网络管理功能,并且根据网络拓扑和流量需求进行动态调整。
OpenDaylight:开源的SDN控制器,它基于Java开发,旨在提供一个统一的控制平台。OpenDaylight支持多种协议,如OpenFlow,并且能够管理不同类型的网络设备。通过开放的API提供灵活的功能,支持多种网络应用的开发,并且可以跨越不同的网络硬件和虚拟化环境。
ONOS (Open Network Operating System):由AT&T和NTT等公司联合开发的一个开源网络操作系统。ONOS被设计用来支持分布式的SDN控制,特别适合大规模网络的管理。通过提供高性能和可靠性,帮助运营商和企业构建灵活、可扩展的网络架构。它支持多种协议(如OpenFlow)并通过其API接口允许开发者创建定制化的网络应用。
Onix:VMware、Google和NTT公司共同开发的SDN控制器。它是一个高可扩展的控制平台,适用于大规模数据中心网络管理。Onix提供了一个分布式的控制框架,可以有效地管理大规模的SDN网络。它支持OpenFlow协议,并且具有强大的扩展能力。Onix的设计特别注重在大规模数据中心的应用,它能够处理大量的网络流量和多个设备的协调工作。
南向接口
南向接口提供了SDN控制器与数据交换机(如交换机、路由器等)之间的逻辑连接,控制器通过南向接口向数据交换设备发送控制指令,并从这些设备获取反馈信息。这些信息可以帮助控制器做出决策,从而实现对网络流量的管理与控制。
OpenFlow是最常用的南向接口协议,尤其是在SDN架构中。OpenFlow允许控制器直接控制网络设备(如交换机和路由器)的流表,控制器可以通过OpenFlow协议配置设备,控制数据包的流向。OpenFlow协议广泛用于支持SDN的交换机,并允许流量控制和网络策略的动态调整。
北向接口
北向接口(Northbound Interface, NBI)用于实现控制平面和应用程序之间的交互。与南向接口不同,北向接口的主要目的是支持外部应用程序访问和操作SDN控制器的功能。具体来说,北向接口提供了控制平面与上层应用之间的通信通道,允许应用程序管理和配置网络资源。
-
访问控制平面的功能和服务: 北向接口使得应用程序能够访问控制平面的功能,不仅能够对网络进行管理,还能利用控制平面的智能决策进行优化。
-
不同于南向接口: 北向接口通常被看作是一个软件API,而不是协议。它的功能不同于南向接口,后者主要用于控制平面与数据平面之间的通信,而北向接口则与网络应用层进行交互。
-
适应不同应用的需求: 北向接口设计上考虑到了不同类型应用程序的需求,比如虚拟化网络管理、QoS控制、网络流量分析等功能。它支持多种API规范,如RESTful API、OpenStack等。
北向接口的协议和标准
- RESTful API:广泛用于与SDN控制器进行交互,RESTful API以其简洁和灵活性受到青睐,允许应用程序通过HTTP协议调用控制器的功能。
- OpenStack:作为一个开源的云计算平台,OpenStack能够通过北向接口与SDN控制器进行集成,实现虚拟网络的管理。
- QoS控制:北向接口支持应用层进行流量质量(QoS)的管理,确保网络资源的高效利用。
从图示中可以看出,北向接口连接了SDN控制器与应用层。应用层通过API接口调用控制器的功能,这些API可以是自定义的,也可以是标准的(如OpenFlow)。不同的北向接口协议,如OpenStack、REST、QoS等,提供了灵活的网络管理功能。通过北向接口,管理员可以通过应用程序来管理整个网络的状态,调整流量策略,监控设备健康等。开发者可以利用北向接口开发专门的网络应用,满足特定的需求,比如基于网络流量的自动化决策或跨网络服务的协调。
路由选择
在SDN架构中,路由选择不仅仅依赖传统的协议,而是可以通过控制器对网络中的数据流进行动态和灵活的控制。控制器根据当前的网络拓扑和流量需求来决定最佳的路由路径。
在SDN中,路由选择功能要求SDN控制器具备相应的路由选择能力。这些能力包括选择最优路径、灵活调整网络流量以及优化整个网络的流量分布。
IRP (Inter-domain Routing Protocol) 和 ERP (Enterprise Routing Protocol):
- IRP:通常在自治系统(AS)之间的网络中使用,它帮助SDN网络选择到其他网络或自治系统的最短路径。
- ERP:它是SDN中局部网络内部的路由选择协议,帮助选择在本地自治系统内最佳的数据转发路径。它侧重于在单个AS内优化路由,而不涉及跨AS的路径选择。
OSPF (Open Shortest Path First) 协议 和 EIGRP (Enhanced Interior Gateway Routing Protocol):
- OSPF 是用于实现最短路径的协议,通常用于SDN控制器内部的路由选择。
- EIGRP 主要用于优化网络中路由的流量,这两个协议可以与IRP配合使用以提供最佳路径选择。
BGP (Border Gateway Protocol): BGP是广泛使用的跨AS的路由协议。在SDN中,BGP通常配合ERP一起工作,用于决定数据包如何跨越不同的自治系统传输。
ITU-T模型
ITU-T模型(ITU-T Y.3300模型)是为定义SDN体系架构而提出的一种标准模型。它描述了SDN架构中应用层、控制层和数据层之间的相互作用与职责。
应用程序层:
应用程序层提供了对SDN网络资源的访问接口,主要功能是向SDN控制器提供需求。这些需求可以包括网络资源的请求、配置、管理等操作。
SDN控制器通过应用程序接口(API)与上层的应用层进行交互。应用程序层通过SDN应用程序API,执行网络资源管理、调度、配置等任务。
SDN控制层:
控制层是SDN体系的核心,它负责从应用程序层接收指令,并对网络进行管理和调度。控制层根据应用程序层的请求,使用API与网络设备交互,配置网络资源。
控制层的作用是提供网络资源的抽象视图,并通过与底层网络设备的交互来实现网络流量的控制和管理。通过控制层的支持,网络可以实现动态优化和实时调整。
数据层(资源层):
数据层负责实际的数据传输。它是物理网络的底层,实现了数据的转发功能。
数据层通过交换机、路由器等设备提供数据的交换和转发功能。SDN控制器通过控制层与数据层交互,动态调整数据流向和路径,从而确保网络资源的高效利用。
根据ITU-T模型,SDN体系架构包含了几个主要功能模块,它们分别负责不同的网络资源管理和控制任务:
-
应用程序支持:这一功能提供了应用程序通过API与控制层交互的机制,允许应用程序访问网络资源并获取网络控制信息。
-
编排:编排功能通过动态管理网络资源的分配和调度,支持网络设备的配置管理。这一功能确保了网络拓扑的动态调整,适应不同的网络需求。
-
抽象:抽象层通过提供网络资源的视图,使得应用程序不需要关心底层硬件的具体细节。网络资源的虚拟化和抽象使得上层应用可以通过统一的接口管理和调度网络资源。
-
资源管理:资源管理功能负责对SDN网络中的资源进行监控和管理。它处理来自应用程序的请求,确保资源的分配和使用满足应用需求。
-
数据转发是SDN网络中非常关键的部分,它与网络的性能和稳定性密切相关。
-
控制支持:为控制层提供必要的支持和资源,确保控制器能够高效运行并处理来自应用层的请求。通过控制层的支持,SDN网络能够实现更高效的流量调度和路径选择。
OpenDaylight
OpenDaylight 是一个开源的SDN控制器平台,旨在提供开放和可扩展的解决方案,支持各种SDN协议和网络服务。它是由Linux基金会主导的项目,专注于将SDN技术推广到各个网络设备和应用程序中。OpenDaylight的架构和设计充分考虑了灵活性和可扩展性,允许用户通过API访问控制层的各种功能,并且支持与不同网络设备和协议的兼容。
网络应用、编排和服务:
- 网络应用:在OpenDaylight平台中,网络应用负责请求和管理网络资源。应用层通过控制层来获取网络资源,并使用SDN控制器提供的功能进行网络的配置和管理。
- 编排:编排功能提供了网络资源的自动化管理,包括网络设备的管理、流量控制和网络拓扑调整等。这些功能确保了网络资源在整个SDN架构中的高效利用。
- 服务抽象层(SAL):提供了对网络资源的统一抽象视图,使得上层应用能够通过一个标准化的接口与网络设备进行交互,而无需关心底层的硬件细节。SAL帮助实现了网络服务的标准化和互操作性。
OpenDaylight API:
OpenDaylight通过API与上层应用进行交互,提供了REST(基于Web)和其他API接口,允许应用通过控制器获取网络资源和流量信息。OpenDaylight支持基于REST的API,使得开发者可以使用标准的HTTP协议与控制器进行通信,这简化了集成过程。
南向接口协议:
OpenDaylight支持与各种底层协议进行交互,包括OpenFlow,这使得它能够与支持OpenFlow协议的网络设备进行数据流的控制。OpenDaylight也支持其他标准协议(如ONF, IETF等),这些协议确保OpenDaylight能够与不同供应商的设备进行互操作。
插件架构:
OpenDaylight采用了模块化的插件架构,这意味着用户可以根据需求灵活地添加或移除不同的功能模块。它支持Java编写的插件,允许开发者扩展平台的功能,并且与其他系统进行集成。
控制功能和服务:
OpenDaylight的控制功能和服务包括流量管理、设备管理、网络拓扑管理等。控制器通过与网络设备的交互,确保网络流量的有效控制,同时提供网络拓扑和设备状态的实时更新。
OpenDaylight的服务抽象层(SAL)提供了对网络资源的抽象,使得上层应用可以通过统一的接口来进行网络管理,而无需关心具体的硬件配置。
开放性和可扩展性:
OpenDaylight作为一个开源平台,支持灵活的开发和扩展。它不仅支持标准化的网络协议,还允许通过开放的API进行二次开发,用户可以根据实际需求定制自己的SDN应用。
面向服务的架构:
OpenDaylight采用了面向服务的架构(SOA),这意味着它的各个组件之间通过标准的接口进行交互,确保系统的灵活性和可扩展性。每个模块都可以独立扩展和替换,避免了对整个系统的依赖性。
REST
REST(Representational State Transfer)是一种常用于网络架构的设计风格,广泛应用于SDN控制器的API设计。它并不是一个具体的协议,而是一种设计原则和约束,它通过HTTP协议(超文本传输协议)来传输数据。REST风格的API广泛应用于Web服务和分布式系统,特别是在SDN中,REST使得控制器与应用程序之间的交互变得简洁和高效。
REST的基本原则(六个约束)
客户端-服务器架构:
REST设计模式要求应用程序的客户端和服务器分开,它们之间的通信是通过HTTP请求和响应进行的。客户端负责向服务器发送请求并接收响应,而服务器则负责处理请求并返回相应的资源。
无状态性:
每个请求都必须包含执行该请求所需的所有信息。每次请求都是独立的,服务器不会存储客户端的状态信息,因此每个请求都包含客户端所需的所有数据。这意味着服务器不需要保存客户端的状态,这提高了系统的可扩展性和灵活性。
高缓存性:
在REST架构中,响应可以被缓存,这对性能的提升非常重要。特别是对重复性请求,如果响应中表明该数据是可以缓存的,客户端可以缓存数据并减少后续的请求,提高系统的响应速度。
一致的接口:
REST要求系统使用一致的接口,这使得API的设计更加简洁和规范。在SDN中,REST API用于操作控制层的功能,并且REST接口通常使用标准的HTTP方法如GET、POST、PUT和DELETE来执行资源的增删改查。
分层系统:
REST的设计要求架构是分层的,客户端不需要知道应用程序的具体结构和内部实现。各层可以独立运行并且彼此之间通过明确定义的接口进行交互。这使得系统更易于维护和扩展。
按需代码:
客户端可以根据需要临时下载执行代码。该约束允许客户端动态地加载和执行代码,以扩展应用程序的功能。
REST API的组成
资源的统一标识符(URI): 每个资源(例如,网络设备、流量控制规则等)都有一个唯一的URI来标识。通过访问不同的URI,客户端可以操作不同的资源。
HTTP方法: REST的操作通过标准的HTTP方法来实现:
- GET:获取资源。
- POST:创建资源。
- PUT:更新资源。
- DELETE:删除资源。
这些操作通过HTTP协议完成,REST并不依赖于具体的协议栈,而是通过标准的HTTP通信来实现数据的交换。
REST在SDN中的应用
在SDN架构中,REST常用于控制层与应用层之间的通信。例如,应用程序通过REST API向SDN控制器发出请求,控制器根据请求的内容进行网络配置和流量控制。REST API的优势在于其简洁性和易于集成的特点,支持各种网络服务(如流量调度、设备管理等)的自动化控制。
- 资源管理:通过REST API,用户可以管理SDN网络中的各种资源(如交换机、流表、端口等)。
- 网络配置:控制器可以根据客户端发出的REST请求,动态调整网络配置,实施网络策略。
- 系统扩展性:由于REST使用HTTP和标准的接口,它可以与不同平台的网络设备进行通信,从而提供跨平台的支持。
控制器间的合作和协调
除了北向接口和南向接口之外,典型的SDN控制器有一个东向/西向接口,该接口使得它能够与其他 SDN控制器和其他网络通信。到现有为止,在开源或标准化的东西向接口协议或接口方面还没有取得重要的进展。本节将回顾与东西向接口相关的设计问题。
集中式与分布式控制器
集中式控制器是将所有网络控制和管理任务集中到单一控制器上。这个控制器负责管理整个网络的所有数据流、设备配置和网络拓扑信息。集中式控制器可以确保网络状态的一致性,因为所有的决策和控制都在同一个地方进行。
优点:
- 集中管理:简化了网络的管理工作,所有的决策和控制都由单一的控制点进行,便于配置和监控。
- 统一视图:控制器对整个网络的状态有全局视图,可以更好地优化和调整网络流量。
- 简化的控制:在网络出现问题时,集中式控制器能够快速做出决策,简化故障处理和网络调整。
缺点:
- 可扩展性问题:随着网络规模的扩大,集中式控制器可能成为瓶颈,无法处理大量设备的管理和控制请求。
- 单点故障:如果集中式控制器出现故障,整个网络的控制和管理会受到影响,导致网络不可用。
分布式控制器则是将控制功能分散到多个控制器中,每个控制器只负责管理网络的一个特定区域或子网。通过这种分布式设计,控制器之间可以互相协作,共同管理网络的不同部分。
优点:
- 高可扩展性:分布式控制器能够处理更大规模的网络,因为它将管理负担分散到多个控制器中。每个控制器只负责管理一定区域的网络,避免了集中式控制器的瓶颈问题。
- 容错性:由于控制任务分布在多个控制器之间,当一个控制器出现故障时,其他控制器可以继续运行,确保网络的持续可用性。
- 灵活性:分布式控制器可以根据网络的不同需求,动态分配任务和控制功能,提高网络管理的灵活性。
缺点:
- 复杂的管理:虽然每个控制器管理的范围较小,但多个控制器之间的协作和同步变得更加复杂。需要有效的协调机制来确保网络的整体性和一致性。
- 通信延迟:分布式控制器之间需要频繁地进行通信和数据交换,这可能会增加网络控制的延迟,影响网络的性能。
在大型的SDN网络中,分布式控制器通常采用SDN域(或称为SDN岛)的方式进行部署。每个SDN域内部拥有一个或多个控制器,负责局部区域的控制和管理。通过不同的控制器协调和配合,各个SDN域能够共同协作,管理整个网络。在不同的SDN区域中,可以实现不同的隐私策略。例如,一个SDN区域可以实施更高的隐私保护措施,确保网络数据的安全性。分布式控制器还支持动态增加新的控制器,进一步扩展网络管理的能力。
总结:集中式控制器适用于规模较小、管理需求简单的网络环境,因为它提供了简单的一体化管理和决策。分布式控制器适用于大规模、复杂的网络环境,通过多个控制器的协作来实现更高的扩展性和容错性,但其管理和协调的复杂性较高。
高可用集群
高可用网络集群(High Availability Cluster, HA Cluster) 是网络中用于提升可靠性和服务连续性的设计模式。它通过冗余的硬件、软件和服务,使得网络能够在出现故障时继续运行,确保网络服务的不中断。
冗余配置:
在高可用集群中,通常使用多个控制器节点来保证服务的高可用性。每个节点可能拥有相同的功能和配置,通过共享资源实现负载均衡。每个节点可以被认为是独立的,具有自己的IP地址,但它们共同管理网络资源。
这些控制器节点通过冗余连接方式来避免单点故障。当一个控制器节点出现故障时,其他节点能够继续工作,确保整个控制系统不受影响。
故障转移机制:
高可用集群的关键功能之一是故障转移。如果集群中的一个节点失败,另一个节点能够自动接管工作,恢复服务。这种机制确保了即使部分硬件或软件发生故障,网络服务依然能够保持在线。
自动切换:高可用性集群会监控节点的运行状态,确保它们正常工作。如果发现某个控制器节点无法继续工作,系统会自动将其任务转移到其他健康的节点上,以实现业务的无缝切换。
数据同步和负载均衡:
数据同步:为了保证集群中的每个控制器节点都有相同的网络状态信息,所有控制器之间通常需要进行数据同步。数据同步确保了每个节点都能实时获取网络的最新状态,不会发生信息不同步的情况。
负载均衡:控制器节点通常通过负载均衡机制来分担工作负载。负载均衡不仅可以提高系统的性能,还能确保当某些节点超负荷时,其他节点可以接手部分任务,从而避免单点过载。
高可用集群的构成:
多个控制器节点:多个控制器节点协作工作,每个节点通常具备相同的控制功能。通过冗余配置,它们共同维持整个网络的状态,确保网络的可靠性。
IP地址共享:为了保证故障切换的平滑进行,控制器节点常常共享一个虚拟IP地址。当节点发生故障时,其他节点通过虚拟IP继续工作,避免了网络服务中断。
一个例子是IBM SDN虚拟环境产品,它就使用了两个结点。为了数据复制和共享外部IP地址,每个结点被认为是集群中其他结点的对等方。当高可用性的集群运行时,主结点负责响应被发送到集群外部IP地址的所有流量并且保存配置数据的读写拷贝。与此同时,第二个结点作为备份运行,具有一份配置数据的只读拷贝,它保持了当前主结点的拷贝。从结点监视外部IP的状态。如果从结点确定主结点不再响应外部IP了,它会触发失效备援,将其模式改变为从结点模式。它假定具有响应外部IP和将其配置数据的拷贝改变为读/写的责任。如果先前的主结点重新创建连接,自动还原过程触发器以将旧的主结点转换为从状态,使得在故障备援期间的配置改变不会丢失。
联邦的SDN网络
联邦的SDN网络(Federated SDN Networks)是指多个SDN区域控制器之间的协作与联合管理。每个SDN区域控制器(SDN域)负责管理各自的网络资源和设备,同时可以与其他SDN区域进行通信和协作,从而共同管理一个大的SDN网络。这种架构通常用于大规模网络和跨域的应用场景中,例如跨数据中心、跨地域的网络管理。
多个SDN区域: 在联邦SDN网络中,整个网络被分为多个SDN区域,每个区域由一个或多个控制器管理。每个SDN区域控制器负责其区域内所有设备的配置、监控和流量管理。
区域控制器之间的协作: 各个SDN区域控制器通过标准化的协议(例如,南向接口和北向接口)进行协作。它们共享网络信息、路由表和状态更新等,以便实现跨区域的流量管理。
通过接口实现联邦合作: SDN控制器之间可以通过接口进行联邦协作。每个控制器负责其所在区域的网络管理,但同时可以通过接口协议与其他控制器进行互动。
跨区域数据交换与共享: 在联邦SDN网络中,数据中心网络和接入网络等组件会通过SDN控制器进行交互。例如,用户的设备可能位于不同的网络区域,但它们依然可以共享资源、进行数据交换和享受无缝的网络连接。
边界网关协议
BGP(边界网关协议) 是用于自治系统(AS)之间交换路由信息的协议,广泛应用于互联网的核心路由。BGP是一个外部网关协议(EGP),它允许不同自治系统之间进行通信,交换路由信息并选择最佳路径。已经成为首选的外部路由器协议。
BGP协议使用TCP(通常是端口179)来确保传输的可靠性。通过这种方式,BGP能够保证路由更新信息的可靠传输。
BGP的主要功能流程:
- 邻居发现:在BGP协议中,首先需要建立邻居关系,即邻居发现过程(neighbor acquisition)。BGP邻居之间建立TCP连接,并交换BGP路由更新信息。如果BGP路由器没有找到邻居,它将继续寻求与其他路由器建立连接。
- 网络可达性:BGP通过传播网络可达性信息来保证路由器之间能够正确选择转发路径。每个路由器会通过不断更新路由信息来优化网络流量。BGP在选择路径时,会考虑多个因素,如路径的长度、AS的数量、延迟等。
- 路由信息交换:BGP通过不断地交换路由信息来维持和更新路径,确保数据流能够根据最新的网络状态进行转发。如果一个路径变得不可用,BGP会更新路由表,确保流量通过可用的最佳路径。
在BGP协议中,信息交换的单位是路由更新(Update)。每个BGP更新消息包含了网络的可达信息以及选择该路径的标准,例如AS路径(AS path)、网络前缀(prefix)、下一跳地址(next-hop)等。BGP并不是选择最短路径,而是根据多种标准选择最适合的路径。例如,它可以优先选择路径长度最短、AS数量最少或者延迟最小的路径。
域间的路由选择和 QoS
在非SDN自治系统中,内部路由选择使用OSPF,在SDN域中不需要OSPF。相反,每个数据平面交换机使用南向接口协议(在这种场合是OpenFlow)向集中式控制器报告必需的路由选择信息。在每个SDN 域和AS之间,使用BGP来交换如下信息。
-
可达性更新:可达性信息的交换促进了SDN域间的路由选择。这允许单流流经多个SDN并且每个控制器能够选择网络中最适当的路径。
-
流建立、拆除和更新请求:控制器协同流建立请求,这些请求包括路径要求、QoS等信息,跨越多个 SDN 域。
-
能力更新:控制器交换网络相关能力的信息,如带宽、QoS等,除了系统和域内可用的软件能力外。
对于上图,将AS描述为一个包括多台互联路由器的云,在SDN域的场合,包括一台控制器。该云表示一个互联网,因此任何两台路由器之间的连接是互联网中的一个网络。类似地,两个邻接自治系统之间的连接是一个网络,该网络可能是两个邻接自治系统之一的一部分,或者是一个单独的网络。
对于一个SDN域,BGP功能实现在SDN控制器中而不是在数据平面路由器中。这是因为控制器负责管理拓扑和做出路由选择决定。
该图显示了自治系统1和自治系统3之间的一条BGP连接。这可能是不直接通过单一的网络直接连接的网络。然而,如果两个SDN域是一个单一SDN系统的一部分,或者如果它们结成联邦,它们可能具有交换其他的SDN相关信息的意图。
为QoS管理使用BGP
在传统的互联网中,BGP主要用于自治系统(AS)之间的路由选择,而在SDN中,BGP被进一步扩展,用于处理QoS(服务质量)信息,确保流量能够按优先级进行路由选择。
BGP可以用来传递不同的流量标记,从而确保不同类型的数据流(例如,语音流、视频流、文件传输等)得到不同的处理和优先级。SDN控制器利用BGP来交换和控制不同SDN域之间的网络流量,保证这些流量遵循指定的QoS要求。
IETF正在为BGP引入QoS标记的标准化方法。这些方法能够使BGP能够携带更多的QoS信息,如带宽需求、延迟要求等,以便对流量进行优化调度。
BGP通过交换包含QoS信息的路由更新,来管理网络流量。每个自治系统(AS)将网络流量的标识与QoS要求结合,在路由决策中考虑这些信息。
BGP在SDN中的实现步骤
SDN控制器与BGP的协作:SDN控制器首先需要确保其BGP协议能够与其他SDN域的BGP协议进行有效协作。在这一过程中,SDN控制器需要确保它能够获取与相邻的BGP节点相应的网络信息。
BGP连接的建立:SDN控制器与BGP协议的通信通过建立TCP连接完成。控制器通过BGP协议交换更新信息,这些信息包括流量的标记以及相关的QoS要求。 这些信息帮助SDN控制器做出路径选择,确保网络流量在不同的SDN域之间流动时,符合所定义的QoS标准。
QoS信息的传播:通过BGP协议,SDN控制器能够传播QoS相关的更新消息(Update),并使用这些消息来选择路径。通过路由表的更新,SDN控制器确保流量得到优先处理。
使用NLRI进行QoS更新: BGP通过 Network Layer Reachability Information(NLRI) 进行QoS更新。在更新中,SDN控制器会指示如何通过网络中不同的路径转发流量,并将带宽和延迟等QoS信息嵌入到路由信息中,从而帮助路由器选择最合适的路径。
路由路径选择:BGP根据流量的QoS需求来调整路径选择。通过确保流量得到优先级别的处理,BGP在多SDN域间实现了路径的动态优化,使得各类流量得以根据需求优先经过相应的路径。