国内服务器
亚洲服务器
欧洲服务器
北美洲服务器
南美洲服务器
大洋洲服务器
非洲服务器

首页>>IDC资讯

SDN的基本构件

发表时间:2023-02-01 07:54:35

SDN的基本构件

部署SDN需要的基本构件包括:SDN交换机(如OpenFlow交换机)、SDN控制器、控制器中用于和转发装备通讯的接口、通常的南向接口(OpenFlow)和网络利用接口(北向接口)。在SDN中,由于控制逻辑和算法被卸载到了控制器中,交换机一般被表示为能够通过开放接口访问的基础转发硬件。OpenFlow交换机分为两类:纯洁的OpenFlow交换机(只支持OpenFlow操作)和混合的OpenFlow交换机(可启用OpenFlow操作)。

纯洁的OpenFlow交换机不具有传统交换机的板级控制特性,完全依赖于控制器作转发决策。混合的OpenFlow交换机除支持传统的操作和协议以外,还支持OpenFlow操作。目前大多数商用交换机都是混合型的。OpenFlow交换机包括一个流表,流表负责履行数据包的查表和转发,交换机的每一个流表保存一组流的纪录,流记录中包括:

1.首部字段或匹配字段、数据包首部中提取的信息、输入端口和元数据信息,这些信息用于匹配输入的包。

2.计数器,用于对特定的流进行统计,如统计所接收数据包的个数、字节数和流的延续时间等。

3.一组利用于所匹配的数据包的指令或具体操作,决定如何处理符合匹配条件的数据包。例如,将数据包从指定的端口转发出去。

SDN(和OpenFlow)中分离的系统可以和计算机平台上的利用程序与操作系统类比,在SDN中,控制器(即网络操作系统)提供了网络的可编程接口,通过编写利用程序,可以完成控制和管理任务,实现新的功能。图11给出了该模型的分层视图,在该视图中,控制是集中式的,编写利用程序时,可以把网络视为一个单一的系统,这样虽然简化了策略的履行与管理任务,但控制器和网络转发单元之间的绑定关系一定要随时保持着。如图11所示,担负网络操作系统角色的控制器一定要最少实现两个接口:一个南向接口,支持控制器和交换机之间的通讯;一个北向接口,为控制器和高层的策略利用及服务提供可编程的API。首部字段(匹配字段)显示在图11中,流表中的每条记录包括特定的值或ANY(图11中用*即通配符表示),后者表示能够匹配任何值。

如果交换机处理IP源地址和目的地址字段时支持子网掩码,则能够更精确地定义匹配。端口字段用数字表示交换机的端口(或输入端口),编号从1开始,该字段的长度取决于具体的实现。输入端口字段适用于所有的数据包。交换机有效端口的源和目的MAC(以太网)地址字段也适用于所有数据包,其长度为48比特。以太网类型字段长度为16比特,适用于所有有效端口上的数据包,OpenFlow交换机一定要既能够匹配标准的以太网数据包,也能够匹配带有子网访问协议(SubnetworkAccessProtocol,SNAP)首部和0x000000值的机构唯一辨认符(OrganizationallyUniqueIdentifier,OUI)的IEEE802.2数据包。特定值0x05FF用于匹配所有不带有SNAP首部的802.3数据包。VLANID适用于所有类型为0x8100的以太网数据包。该字段的长度为12比特(即4096个VLAN),VLAN优先级字段长度为3比特,可用于所有类型为0x8100的以太网数据包。IP源和目的地址字段长度为32比特,适用于所有IP和ARP数据包,这些字段可以与子网掩码进行掩码操作。IP报文的协议字段适用于所有IP数据包、以太网帧封装的数据包和ARP数据包。该字段的长度是8比特,如果是ARP数据包,则只使用ARP报文操作码的低8位,IP报文的ToS(TypeofService)字段长度为6比特,适用于所有IP数据包。这个字段的值是8比特,ToS取其中的高6位。源端口和目的传输端口地址(和ICMP的类型和代码字段)长度为16比特,适用于所有的TCP、UDP和ICMP数据包。若只斟酌ICMP的类型和代码,则只需斟酌低8位值的匹配。

每一个表、每一个流、每一个端口和每一个队列都保持一个计数器。计数器循环计数,因此不设进位溢出位,图12给出了所需的计数器集合,图中和本书中提到的字节都是指8比特的组合,延续时间表示某个流在交换机的流表中存在的时间。接收毛病字段包括所有显式定义的毛病:帧毛病、超限、CRC毛病和其他毛病。

每一个流记录都跟0个还是多个具体操作相干联,这些操作唆使OpenFlow交换机如何处理与流记录匹配的数据包。如果没有具体的转发操作,该数据包就被抛弃。具体操作列表一定要依照一定的顺序履行,但是,这其实不确保一个端口上数据包的输出顺序。例如,两个经操作列表处理后所产生的到达同一个输出端口的数据包,极可能会以任意的顺序输出。纯洁的OpenFlow交换机只支持规定的(required)操作,而混合的OpenFlow交换机则可以同时支持常规(NORMAL)操作。两种交换机都能支持FLOOD操作。规定操作是:

转发:OpenFlow交换机一定要能够将数据包转发到物理端口,同时支持向以下虚拟端口的转发:

ALL:将数据包发送到除其输入端口之外的所有接口。

CONTROLLER:封装数据包并将其发送到控制器。

LOCAL:将数据包发送到交换机的本地网络栈。

TABLE(仅用于输出数据包的消息):履行流表中的操作。

IN_PORT:从输入端口输出数据包。

抛弃:表明抛弃所有相匹配的数据包。若流记录中没有定义具体操作,则作抛弃处理。

可选的操作包括:

转发:交换机在进行转发操作时,可以选择支持以下的虚拟端口:

NORMAL:采取交换机所支持的常规转发途径转发数据包(即常规的第2层、VLAN,还是第3层处理)。

FLOOD:沿最小支持树以洪泛的方式向除输入接口之外的端口转发数据包。

进入队列(Enqueue):通过端口的队列转发数据包,转发行动由所配置的队列策略决定,通常被用来提供基本的QoS支持。

修改字段(Modifyfield):可选的字段修改操作有:

设置VLANID:若没有定义VLAN,则增加一个新的首部,在其中定义VLANID(12比特的数据),并把优先级设为0;若原来已存在VLAN首部,则用新的定义值取代原来的VLANID。

设置VLAN优先级:若没有定义VLAN,则增加一个新的首部,在其中定义优先级(3比特的取值),并把VLANID设为0;若原来已存在VLAN首部,则用新的定义值取代原来的优先级字段值。

剥离VLAN首部:若存在VLAN首部,则将其剥离。

修改源或目的以太网MAC地址:用新的取值(48比特)替换原来的源或目的以太网MAC地址。

修改源或目的IPv4地址:用新的取值(32比特的数据)替换原来的源或目的IPv4地址,并更新IP报文的校验和(一样适用于TCP/UDP的校验和)。该操作只针对IPv4数据包。

修改IP报文的服务类型(ToS)字段值:用新的取值(6比特的数据)替换原来的ToS字段值,该操作只针对IPv4数据包。

修改传输层的源或目的端口号:用新的取值(16比特的数据)替换原来的源或目的端口号,并更新TCP或UDP的校验和。该操作只针对TCP或UDP数据包。

每当有一个数据包到达OpenFlow交换机时,数据包的首部便被提取出来,跟流记录中的匹配字段进行比对,查找匹配从流表的第一个记录开始,顺次往下进行,当发现一个相匹配的记录,交换机将使用该流记录所关联的一系列操作对数据包进行处理。每当发现一个和流记录匹配的数据包,就会更新这个流记录所对应的计数器值。如果查表结果没有发现匹配记录,交换机将根据流表的失配(tablemissing)记录中的指令决定采取相应操作。流表中一定要包括一个失配记录,以便应对找不到匹配的情况,在这个特殊的记录中定义一组操作,用于处理找不到匹配的输入数据包,这些操作包括:抛弃该数据包、向所有的接口发送该数据包,还是通过安全的OpenFlow信道向控制器转发该数据包。查表时使用的首部字段取决于数据包的类型,具体描写以下:

将流的有关输入端口的规定与接收数据包的物理端口进行比对。

所有数据包的以太网帧首部(如图11中所定义的源MAC地址、目的MAC地址、以太网的类型字段等)都用于查表匹配。

如果是一个VLAN数据包(以太网类型字段值为0x8100),其VLANID和VLAN优先级(PCP)字段用于查表匹配。

如果是IP数据包(以太网类型字段值为0x0800),IP首部包括的字段(源IP地址、目的IP地址、协议字段、ToS等)均用于查表匹配。

如果IP数据包封装的是TCP或UDP(IP报文首部的协议字段值为6或17),则查表比对的信息包括传输层端口号(TCP/UDP源或目的端口)。

如果IP数据包封装的是ICMP报文(IP报文首部的协议字段值为1),则查表时会包括ICMP的类型和代码字段。

如果数据包的IP报文分片的偏移量字段是非零值,还是否是最后一个分片(morefragment标志位为1),查表时把传输层端口号设为0。

对ARP数据包(以太网类型字段值等于0x0806),可以根据情况,选择把其中的源IP和目的IP地址字段值包括到查表的字段中。

数据包跟流表记录的匹配依照优先级进行,精肯定义了匹配规则(即没有使用通配符)的流记录总是具有最高的优先级,全部采取通配符的流记录具有与其相干联的优先级,具有高优先级的流记录总是先于具有低优先级的流记录进行匹配。如果多个流记录具有相同的优先级,则交换机可以选取任意的匹配顺序。编号越大,优先级越高。图13表示OpenFlow交换机中的数据包处理流程。需要注意的很重要的一点是:如果一个流表的字段值是ANY(*,通配符),则它就可以够匹配首部中的任何可能取值。

以太网的帧有各种类型(如EthernetII、带有还是不带有SNAP的802.3帧等),如果数据包是EthernetII格式的帧,则以太帧的类型字段依照预期的方法处理;如果数据包是802.3格式的帧,带有SNAP首部,OUI的值等于0x000000,则用SNAP协议ID来比对流的以太网帧类型字段。如果一个流记录中规定以太帧类型为0x05FF,那它就可以够匹配所有不带SNAP首部的802.2以太网帧,和虽然带有SNAP首部,但是OUI取值不等于0x000000的以太网帧。

上一篇 下一篇
最新文章

如何提高云服务器的安全系数

香港独立IP空间有什么优势

香港空间影响百度收录吗

为啥要租用美国VPS

VPS的缺点有哪些

香港vps作用在哪里

VPS的优点有哪些

外贸网站为啥选择美国vps

VPS能建多少个网站

VPS要如何选择位置

相关文章

用宝塔搭建网站简单易学稳定高效

高性能日本服务器价格及其优势分析

取得托管网站的利器宝塔面板在Linux系统上的安装和使用

香港Linux主机怎样样

如何选择IDC机房进行托管?

如何选择美国VPS服务器有哪些有优势?

建站选虚拟主机还是云主机

怎样在ubutu中安装vmware tools

云硬盘和服务器地域是一样的吗 云硬盘的性能如何?

香港服务器哪家利害?探讨香港服务器行业领军企业

X

截屏,微信识别二维码

微信号:muhuanidc

(点击微信号复制,添加好友)

打开微信

微信号已复制,请打开微信添加咨询详情!