CN105634923B - 基于sdn控制器的以太网广播优化处理方法 - Google Patents
基于sdn控制器的以太网广播优化处理方法 Download PDFInfo
- Publication number
- CN105634923B CN105634923B CN201511006019.8A CN201511006019A CN105634923B CN 105634923 B CN105634923 B CN 105634923B CN 201511006019 A CN201511006019 A CN 201511006019A CN 105634923 B CN105634923 B CN 105634923B
- Authority
- CN
- China
- Prior art keywords
- terminal
- message
- packet
- interchanger
- sdn controllers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/32—Flooding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/806—Broadcast or multicast traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/829—Topology based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/06—Message adaptation to terminal or network requirements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于SDN控制器的以太网广播优化处理方法,终端接入网络时,广播发送GARP或DHCP请求报文,宣告自身IP地址或请求IP地址;SDN控制器实时解析交换机的packet‑in消息,提取其中终端信息,执行终端接入处理:以key‑value形式存储终端和交换机之间信息映射关系;并对终端通信的ARP请求报文构造ARP应答包,封装成packet‑out消息作为应答回送终端。同时执行环路避免处理:根据从广播报文中提取的key和value映射关系查询节点信息字典,保证同一个交换机接收到的广播报文只有一个接入端口,同时丢弃来自其他不同交换机接入端口的相同的广播报文,以避免因网络中形成广播环路而触发广播报文的洪泛。本发明降低网络控制器、交换机和终端的负担和资源浪费,避免广播报文转发环路。
Description
技术领域
本发明涉及一种改进以太网广播的优化处理方法,确切地说,涉及一种基于SDN控制器的以太网广播优化处理方法,属于计算机网络通信的技术领域。
背景技术
当今世界的网络技术日新月异,基于传输控制协议TCP/互联网协议IP(Transmission Control Protocol/Internet Protocol)等技术的传统互联网在服务质量体验、业务部署、业务适应等许多方面都遇到越来越多的问题和挑战。斯坦福大学提出的软件定义网络SDN(Software Defined Network)逐渐成为下一代互联网发展的重要技术方向,已经受到学术界和产业界的广泛关注。
SDN网络主要包括两部分:网络控制器组成的控制网络和底层交换机组成的数据网络。它将传统网络中的智能控制的功能集中在控制器组成的控制网络中,底层交换机不具有网络智能功能,其仅仅按照控制器的指令转发数据。其中SDN网络通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能化。图1所示为SDN的网络架构图。图中的控制层和数据转发层分别为控制网络和数据网络,两者之间通过控制/数据的接口平面(如OpenFlow协议)构成通路。
由于SDN架构的特性,采用OpenFlow协议能够在一定程度上解决传统网络中地址解析协议ARP(Address Resolution Protocol)广播风暴的问题,但是,目前的SDN架构对于广播报文的处理方式,通常仍采用了传统以太网处理网络广播报文的方法。例如采用基于生成树协议STP(Spanning Tree Protocol)的模型消除环路问题。然而,这种模型会造成根节点交换机的流量负载呈指数级增大,无法利用网络中可能存在的多路径传输优势。因此,如何改进广播报文的处理方法,并解决环路问题就成为业内科技人员关注的一个焦点。
在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目标主机的IP地址。于是需要一种方法用于根据目标主机的IP地址来获得其对应的MAC地址,即进行地址解析。地址解析协议ARP(Address Resolution Protocol)就是用来确定这些映射的协议。ARP工作时,以太网广播数据包中含有通信对端的IP地址,但是,由于发送时只知道对端的目标IP地址,不知道其MAC地址,因此需要发送ARP请求,并广播至网络内所有终端,直到通信对端回复ARP应答告知其MAC地址。
中国发明专利申请《一种基于ARP事件触发代理的SDN广播处理方法》(公开号CN103259732A)的技术方案目的是解决以太网中ARP广播问题:通过在主机接入网络初始阶段建立全网主机信息IP-to-MAC映射表,使得网络中任何一个主机发起的ARP请求都可以由SDN控制器统一处理并响应,从而避免ARP报文在以太网中广播。该技术方案能够在一定程度上减少广播报文的数量,但不涉及对网络环路的处理。
目前的SDN网络对广播报文的处理,仍旧采用传统以太网处理网络广播报文的方法。参见图2和图3,分别介绍SDN网络中的SDN控制器基于二层转发学习的操作步骤及其在传统以太网中处理广播报文的下述方法:
(1)主机A向其相邻的交换机S1发出ARP请求报文。
(2)交换机S1将该ARP请求报文封装成packet-in消息提交给SDN控制器。
(3)SDN控制器接收该packet-in消息,以packet-out消息方式通知交换机S1,并将ARP请求报文洪泛。
(4)交换机S1将ARP请求packet-in分别转发给交换机S2和S3。
(5)交换机S2和交换机S3分别将ARP请求报文封装成packet-in消息,再分别提交给SDN控制器;也就是两者的操作步骤内容都与步骤(2)相同。
(6)SDN控制器接收该packet-in消息,以packet-out消息方式分别通知交换机S2和S3,并将ARP请求报文泛洪;该操作内容与步骤(3)相同。
(7)交换机S2和3分别将ARP请求报文转发给交换机S4,该两者的操作步骤内容都与步骤(4)相同。
(8)交换机S4将ARP请求报文封装成packet-in消息提交给SDN控制器,该操作内容与步骤(2)相同。
(9)SDN控制器接收到该packet-in消息,以packet-out消息方式通知交换机S4,并将ARP请求报文泛洪;其操作内容与步骤(3)相同。
(10)主机B接收到ARP请求,构造ARP应答,发送给交换机S4。
(11)交换机转发ARP应答消息给发出请求报文的主机。
综上所述,虽然传统以太网基于广播的地址解析机制(如ARP等)简单有效,但是存在资源开销大、安全隐患多等缺点,限制了其在较大规模网络的应用。其主要原因如下:大量的广播报文占用网络带宽,造成资源消耗巨大。且规模大的网络可能存在环路,广播报文容易造成广播风暴。虽然也有一定的解决办法,例如基于生成树STP协议(Spanning TreeProtocol)模型的消除环路措施,但会造成根节点交换机的流量负载呈指数级增大,同时故障恢复时延也会增大。再者,网络控制器、交换机和终端都要增加额外的处理负担和资源浪费;而且,基于洪泛转发学习,路径流表的建立大多呈现串行模式,极大地影响网络传输性能。因为广播报文到达SDN交换机时,没有匹配流表,就自动发往SDN控制器,然后SDN控制器通过packet-in和packet-out消息进行处理。随着网络广播报文的增加,SDN控制器负载也随之迅速增大,还有网络中所有终端都会接收并处理洪泛的广播报文,对于终端来说,这些操作都是不必要的资源浪费。
发明内容
有鉴于此,本发明的目的是提供一种基于SDN控制器的以太网广播优化处理方法,本发明方法是对现有SDN网络中的SDN控制器处理功能进行扩展,使得SDN网络能够处理以太网广播、避免环路问题,降低网络控制器、交换机节点和终端的负担和资源浪费,实现无环路的广播报文转发,同时增加了网络的可编程性,使得SDN网络灵活且可扩展。
为了达到上述目的,本发明提供了一种基于SDN控制器的以太网广播的优化处理方法,其特征在于:终端接入网络时,SDN控制器对来自交换机的、包含该终端信息的packet-in消息执行实时解析,判断该终端若是初次接入网络时,提取其中的终端信息,执行终端接入处理:在SDN控制器上对以key-value形式存储终端和交换机转发节点之间信息映射关系的节点信息字典执行更新操作,录入该终端信息;再对终端之间通信时发起的ARP请求报文,执行代理回复ARP响应:查询节点信息字典,得到ARP请求报文的目的终端MAC地址,再构造ARP应答包,封装成packet-out消息作为应答回送给该终端;因网络可能存在环路,执行环路避免处理:根据从广播报文中提取的每个终端及其对应交换机接入端口之间的状态信息所形成的key和value映射关系,查询节点信息字典,是否存在同一个key对应存储有不同的value、即对应不同的交换机接入端口的情况;若有,则执行丢弃操作:下发packet-out消息,告知丢弃来自该终端的广播报文,以避免环路问题;若没有,则更新当前key-value的映射信息于节点信息字典,表明该种类型的广播报文来自于该交换机的某个特定端口;然后执行传统的报文转发处理。
众所周知,传统STP解决环路的操作方法存在的缺陷如下:根桥节点附近流量压力过大,网络中本来存在的冗余链路的资源浪费,且在速率传输上带来一定的瓶颈。当网络链路出现故障时,生成的树拓扑需要重新计算,另外在收敛时间内(30-50s)会影响正常通信,工作可靠性差。
本发明基于SDN控制器的以太网广播处理的优化方法较好地解决了上述问题,它是利用SDN控制器获取全局网络的拓扑信息,通过节点信息字典的查询更新,保证同一个交换机中即便接收到洪泛的广播报文,也只有一个接入端口,从而避免产生环路。另外,重新设计了相应的广播报文的处理步骤,增添了一种终端信息的存储和更新方法,以及交换机节点状态信息存储和更新方法;用于取代传统交换机处理ARP广播报文的操作步骤,从而有效减少ARP广播报文在以太网中的洪泛。
本发明方法的三项创新技术是:
SDN控制器来代替通信对端处理ARP报文:终端接入网络,自动产生GARP(静态配置)或DHCP(动态获取)请求报文,以获取IP地址,SDN控制器通过解析交换机提交的包含GARP/DHCPACK的packet-in消息,提取包括DPID,IP_SRC,ETH_SRC,IP_DST,IN_PORT的终端信息,并存储更新于节点信息字典。对于终端发起的GARP请求报文,SDN控制器查询节点信息字典,得到ARP请求报文的目的MAC地址等信息,构造ARP回复响应报文,封装成packet-out消息应答给终端。
基于SDN控制器的网络节点信息存储和更新方法:终端接入或网络通信过程中,SDN控制器解析交换机packet-in消息,从广播报文中提取所需的信息DPID,IP_SRC,ETH_SRC,IP_DST,IN_PORT,并更新到节点信息字典。
基于SDN控制器的环路消除方法:SDN控制器基于节点信息字典解析交换机packet-in消息,对广播报文提取必要信息DPID,IP_SRC,ETH_SRC,IP_DST,IN_PORT,形成key,再查询节点信息字典,如果发现字典中存在key,但value不同、即IN_PORT不同时,就不再转发广播报文,避免造成环路风暴而执行丢弃操作,下发packet_out告知丢弃该广播报文。
本发明的有益效果:本发明改进SDN网络体系结构的操作步骤内容,与现有SDN架构下采用传统以太网的广播处理方法相比较,该方法降低网络SDN控制器、交换机节点和终端的处理负担和资源浪费,并避免环路风暴,灵活且可扩展。因此,本发明方法具有很好的推广应用前景。
附图说明
图1是SDN网络架构示意图。
图2是以太网中SDN控制器处理广播报文的传统方法示意图。
图3是以太网中SDN控制器处理广播报文的传统方法操作步骤示意图。
图4是本发明基于SDN控制器的以太网广播处理的优化方法流程图。
图5是本发明基于SDN控制器的以太网广播处理的优化方法中的步骤1的流程图。
图6是本发明基于SDN控制器的以太网广播处理的优化方法中的步骤2的流程图。
图7是本发明基于SDN控制器的以太网广播处理的优化方法中的步骤3的流程图。
图8是本发明方法的一实施例的应用场景及其操作步骤示意图。
图9是本发明方法的另一实施例的应用场景及其操作步骤示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
本发明基于SDN控制器的以太网广播优化处理方法是在终端接入网络时,SDN控制器对来自交换机的、包含该终端GARP或DHCPACK确认信息的packet-in消息执行实时解析,判断该终端若是初次接入网络时,则提取其中的终端信息,执行终端接入处理:在SDN控制器上对以key-value形式存储终端节点和交换机转发节点之间信息映射关系的节点信息字典执行更新操作,录入该终端信息;再对终端之间通信时发起的ARP请求报文,执行代理回复ARP响应:查询节点信息字典,得到ARP请求报文的目的终端MAC地址,再构造ARP应答包,封装成packet-out消息作为应答回送给该终端;因网络可能存在环路,执行环路避免处理:根据从广播报文中提取的每个终端及其对应交换机接入端口之间的状态信息所形成的key和value映射关系,查询节点信息字典,是否存在同一个key对应存储有不同的value、即对应不同的交换机接入端口的情况;若有,则执行丢弃操作:下发packet-out消息,告知丢弃来自该终端的广播报文,以避免环路问题;若没有,则更新当前key-value的映射信息于节点信息字典,表明该种类型的广播报文来自于该交换机的某个特定端口;然后执行传统的报文转发处理。
参见图4,介绍本发明方法的下列具体操作步骤:
步骤1,终端接入网络时,获取IP地址的方式分为动态获取和静态配置:
采用动态获取方式时,SDN控制器对于终端广播发送的动态主机配置协议DHCP(Dynamic Host Configuration Protocol)请求报文,按照传统方式进行处理后,转发给DHCP服务器;并对DHCP服务器反馈的DHCPACK确认报文执行终端接入处理;或
采用静态配置方式时,终端广播发送的无偿地址解析协议GARP请求报文,被交换机以packet-in消息封装交给SDN控制器接收和解析,SDN控制器执行终端接入处理;
终端接入处理的具体操作内容是:提取packet-in消息中的终端信息(包括IP、MAC、DPID、IN_PORT等),创建或更新存储于其维护的节点信息字典,实现终端接入就将该终端的MAC地址、IP地址及其接入交换机端口的相应信息都存储于SDN控制器,为避免ARP的洪泛提供基础。
节点信息字典是用key-value形式存储终端节点和交换机转发节点之间的状态信息映射关系:(DPID,IP_SRC,ETH_SRC,IP_DST)>IN_PORT,式中,key为终端信息:DPID(Datapath ID)为数据路径或接入的交换机标识、IP_SRC为源终端IP地址、ETH_SRC为源终端MAC地址,IP_DST为目的终端IP地址;value为数据报文接入交换机的源端口IN_PORT。
参见图5,介绍步骤1包括的下列操作内容:
(11)终端采用动态获取IP地址的方式接入网络时,广播发送DHCP请求报文,用于请求DHCP服务器为其分配IP地址;或
终端采用静态配置IP地址的方式接入网络时,广播发送GARP请求报文,用于宣告自身IP地址。
(12)SDN控制器截获来自交换机的packet-in消息,接收到针对该终端的DHCPACK确认报文,并执行实时解析,获知该终端和交换机接入端口的相关信息;或
SDN控制器截获来自交换机的packet-in消息,接收到针对该终端的GARP请求报文,并执行实时解析,获知该终端和交换机接入端口的相关信息。
(13)SDN控制器将获知的该广播报文的源终端IP地址和MAC地址、目的终端IP地址、接入交换机标识DPID和交换机的接入端口IN_PORT信息,以新增终端信息项与其接入的交换机标识关系的key-value形式存储于节点信息字典:(DPID,IP_SRC,ETH_SRC,IP_DST)>IN_PORT,实现终端接入的信息存储处理。
步骤2,SDN控制器执行代理回复GARP响应处理:对终端之间通信时发起的GARP请求报文,查询节点信息字典,得到GARP请求的目的终端MAC地址,直接构造GARP应答报文,封装成packet-out消息作为应答回送给该终端,完成GARP的及时响应,避免GARP应答报文在网络中的洪泛广播,造成交换机产生大量packet-in消息回送给SDN控制器,增添SDN控制器和终端的资源负担和浪费。
参见图6,介绍步骤2包括的下列操作内容:
(21)交换机接收到与其连接的终端广播发送的ARP请求报文,触发packet-in消息,并转交SDN控制器进行处理。
(22)SDN控制器解析GARP请求报文,以目的终端IP地址为key,查询节点信息字典,是否存在该目的终端的MAC地址及其接入的交换机标识DPID;若没有,则直接丢弃该GARP请求报文,结束该步骤2处理流程;若有,则执行步骤(23)。
(23)SDN控制器根据GARP请求报文的源终端IP地址、源终端MAC地址、目的终端IP地址、目的终端MAC地址构造ARP回复响应,再通过packet-out消息下发至GARP请求报文来源的交换机。
(24)该交换机将该GARP回复响应包转发给ARP请求报文的源终端。
步骤3,SDN控制器执行环路避免处理:查询节点信息字典中的key和value映射关系处理packet-in消息时,保证同一个交换机接收到的广播报文只有一个接入端口,同时丢弃来自其他不同交换机接入端口的相同的广播报文,以避免因网络中存在环路时,形成广播环路而触发广播报文的洪泛。
参见图7,介绍步骤3包括的下列操作内容:
(31)交换机接收到包括非GARP报文、非DHCPACK、非ARP请求报文的广播报文,触发和发送packet-in消息,并交由SDN控制器处理;
(32)SDN控制器解析packet-in消息,提取消息中的源终端IP地址、源终端MAC地址、目的终端IP地址和交换机标识DPID,构造key;提取交换机接入端口IN_PORT信息,构造value;然后根据key查询节点信息字典执行相应操作:
如果key存在,但对应的value与节点信息字典中存在的value不同,则构造packet-out回复响应,并丢弃该广播报文,不再转发,同时结束操作流程;
如果key不存在,或者key存在、且对应的value与节点信息字典中的value相同,则执行步骤(33)。
(33)SDN控制器在节点信息字典中增添一条以key-value形式存储终端节点和数据报文接入交换机的源端口之间信息映射关系的信息项:(DPID,IP_SRC,ETH_SRC,IP_DST)>IN_PORT;然后构造packet-out回复响应报文,执行传统的报文转发操作。
参见图8,介绍本发明一实施例的仿真实验场景:以太网广播处理方法的详细步骤如下:
(1)主机A接入网络,自动广播GARP(静态)或DHCP(动态)请求报文,交换机S1将GARP/DHCPACK封装成packet-in消息并提交给SDN控制器。SDN控制器处理packet-in消息,进行实时解析并提取节点信息DPID、ETH_SRC、IP_SRC、IN_PORT后,将其更新于节点信息字典。
(2)主机B接入网络,也执行步骤(1)的相同内容。
(3)主机A向相邻交换机S1发出ARP请求报文。
(4)SDN控制器收到此请求报文,查询节点信息字典,提取主机B的MAC地址。
(5)SDN控制器根据查询到的MAC地址,以packet-out消息封装ARP应答报文。
(6)交换机转发ARP应答packet-out消息给请求的主机。
参见图9,介绍本发明另一实施例的仿真实验场景:对于环路中可能存在的广播报文,防止环路广播风暴的处理办法的详细步骤如下:
(1)交换机S1将广播报文封装成packet-in消息,提交给SDN控制器。
(2)SDN控制器提取packet-in消息中节点信息(S1,IP_A,MAC_A,IP_B),构造KEY并查询节点信息字典后,此时发现该字典中不存在对应的KEY,就下发packet-out消息,告知交换机S1从其他端口转发给交换机S2和S3;同时SDN控制器更新KEY(S1,IP_A,MAC_A,IP_B),VALUE(S1-eth3)到节点信息字典。
(3)交换机S2和交换机S3分别接收到来自交换机S1转发的数据报文,各自将广播报文封装成packet-in消息提交给SDN控制器,此时该两个交换机的操作步骤都与步骤(1)相同。
(4)交换机S2的SDN控制器提取packet-in消息中节点信息(S2,IP_A,MAC_A,IP_B)构造key,并查询节点信息字典,此时发现该节点信息字典中不存在对应的key,则下发packet-out消息,告知交换机S2从其他端口转发给交换机S4。同时,SDN控制器更新key(S2,IP_A,MAC_A,IP_B)和value(S2-eth3)到节点信息字典,操作步骤与步骤(2)相同;
交换机S3的控制器提取packet-in消息中节点信息(S3,IP_A,MAC_A,IP_B)构造key,并查询节点信息字典,此时发现该节点信息字典中不存在对应的key,也下发packet-out消息告知交换机S3从其他端口转发给交换机S4。同时,SDN控制器更新key(S3,IP_A,MAC_A,IP_B)和value(S3-eth3)到节点信息字典,操作内容与步骤(2)相同。
(5)交换机S4接收来自S2转发的数据报文,将广播报文封装成packet-in消息,并提交给控制器,操作步骤与步骤(1)相同。
(6)SDN控制器提取packet-in消息中节点信息(S4,IP_A,MAC_A,IP_B)构造key,并查询节点信息字典,此时发现该节点信息字典中不存在对应的key,下发packet-out消息告知交换机S4从其他端口转发给交换机S3。同时SDN控制器更新key(S4,IP_A,MAC_A,IP_B)和value(S4-eth3)到节点信息字典,操作内容与步骤(2)相同。
(7)交换机S4接收来自交换机S3转发的广播报文,将该广播报文封装成packet-in消息,并提交给SDN控制器,操作内容与步骤(1)相同。
交换机S3接收到来自交换机S4转发的广播报文,将广播报文封装成packet-in消息,并提交给控制器,操作内容与步骤(1)相同。
(8)SDN控制器提取packet-in消息中节点信息(S3,IP_A,MAC_A,IP_B)构造key,并查询节点信息字典,发现该节点信息字典中存在key,但value不同,即不等于S3-eth3;就判定不能够再转发广播报文,避免造成环路广播。于是执行丢弃操作,下发packet-out消息,告知丢弃该广播报文。
(9)交换机S3收到packet-out,执行丢弃广播报文的操作。
Claims (5)
1.一种基于软件定义网络SDN(Software Defined Network)控制器的以太网广播优化处理方法,其特征在于:终端接入网络时,SDN控制器对来自交换机的、包含该终端信息的packet-in消息执行实时解析,判断该终端若是初次接入网络时,提取其中的终端信息,执行终端接入处理:在SDN控制器上对以key-value形式存储终端和交换机转发节点之间信息映射关系的节点信息字典执行更新操作,录入该终端信息;再对终端之间通信时发起的ARP请求报文,执行代理回复ARP响应:查询节点信息字典,得到ARP请求报文的目的终端MAC地址,再构造ARP应答包,封装成packet-out消息作为应答回送给该终端;因网络可能存在环路,执行环路避免处理:根据从广播报文中提取的每个终端及其对应交换机接入端口之间的状态信息所形成的key和value映射关系,查询节点信息字典,是否存在同一个key对应存储有不同的value、即对应不同的交换机接入端口的情况;若有,则执行丢弃操作:下发packet-out消息,告知丢弃来自该终端的广播报文,以避免环路问题;若没有,则更新当前key-value的映射信息于节点信息字典,表明该种类型的广播报文来自于该交换机的某个特定端口;然后执行传统的报文转发处理。
2.根据权利要求1所述的方法,其特征在于:该方法包括下列具体操作步骤:
步骤1,终端接入网络时,获取IP地址的方式分为动态获取和静态配置;
采用动态获取方式时,SDN控制器对于终端广播发送的动态主机配置协议DHCP(Dynamic Host Configuration Protocol)请求报文,按照传统方式进行处理后,转发给DHCP服务器;并对DHCP服务器反馈的DHCPACK确认报文执行终端接入处理;或
采用静态配置方式时,终端广播发送的无偿地址解析协议GARP(Gratuitous AddressResolution Protocol)请求报文,被交换机以packet-in消息封装交给SDN控制器接收和解析,SDN控制器执行终端接入处理;
终端接入处理的具体操作内容是:提取packet-in消息中的终端信息,创建或更新存储于其维护的节点信息字典,实现终端接入就将该终端的MAC地址、IP地址及其接入交换机端口的相应信息都存储于SDN控制器;
步骤2,SDN控制器执行代理回复GARP响应处理:对终端之间通信时发起的GARP请求报文,查询节点信息字典,得到GARP请求的目的终端MAC地址,直接构造GARP应答报文,封装成packet-out消息作为应答回送给该终端,完成GARP的及时响应;以避免GARP应答报文的洪泛,造成交换机产生大量packet-in消息回送给SDN控制器,增添SDN控制器和终端的资源负担和浪费;所述节点信息字典是采用下述key-value形式存储终端节点和交换机转发节点之间的状态信息映射关系:(DPID,IP_SRC,ETH_SRC,IP_DST)>IN_PORT,式中,key为终端信息:DPID(Datapath ID)为数据路径或接入的交换机标识、IP_SRC为源终端IP地址、ETH_SRC为源终端MAC地址,IP_DST为目的终端IP地址;value为数据报文接入交换机的源端口IN_PORT;
步骤3,SDN控制器执行环路避免处理:查询节点信息字典中的key和value映射关系处理packet-in消息时,保证同一个交换机接收到的广播报文只有一个接入端口,同时丢弃来自其他不同交换机接入端口的相同的广播报文,以避免因网络中形成广播环路而触发广播报文的洪泛。
3.根据权利要求2所述的方法,其特征在于:所述步骤1包括下列操作内容:
(11)终端动态接入网络时,广播发送DHCP请求报文,用于请求DHCP服务器为其分配IP地址;或
终端静态接入网络时,广播发送GARP请求报文,用于宣告自身IP地址;
(12)SDN控制器截获来自交换机的packet-in消息,接收到针对该终端的DHCPACK确认报文,并执行实时解析;或
SDN控制器截获来自交换机的packet-in消息,接收到针对该终端的GARP请求报文,并执行实时解析;
(13)SDN控制器将获知的该广播报文的源终端IP地址和MAC地址、目的终端IP地址、接入交换机标识DPID和交换机的接入端口IN_PORT信息,以新增终端信息项与其接入的交换机标识关系的key-value形式存储于节点信息字典:(DPID,IP_SRC,ETH_SRC,IP_DST)>IN_PORT,实现终端接入的信息存储处理。
4.根据权利要求2所述的方法,其特征在于:所述步骤2包括下列操作内容:
(21)交换机接收到与其连接的终端广播发送的ARP请求报文,触发packet-in消息,并转交SDN控制器进行处理;
(22)SDN控制器解析GARP请求报文,以目的终端IP地址为key,查询节点信息字典,是否存在该目的终端的MAC地址及其接入的交换机标识DPID;若没有,则直接丢弃该GARP请求报文,结束该步骤2处理流程;若有,则执行步骤(23);
(23)SDN控制器根据GARP请求报文的源终端IP地址、源终端MAC地址、目的终端IP地址、目的终端MAC地址构造ARP回复响应,再通过packet-out消息下发至GARP请求报文来源的交换机;
(24)该交换机将该GARP回复响应包转发给ARP请求报文的源终端。
5.根据权利要求2所述的方法,其特征在于:所述步骤3包括下列操作内容:
(31)交换机接收到包括非GARP报文、非DHCPACK、非ARP请求报文的广播报文,触发和发送packet-in消息,并交由SDN控制器处理;
(32)SDN控制器解析packet-in消息,提取消息中的源终端IP地址、源终端MAC地址、目的终端IP地址和交换机标识DPID,构造key;提取交换机接入端口IN_PORT信息,构造value;然后根据key查询节点信息字典,如果key存在,但对应的value与节点信息字典中存在的value不同,则构造packet-out回复响应,并丢弃该广播报文,不再转发,同时结束操作流程;如果key不存在,或者key存在、且对应的value与节点信息字典中的value相同,则执行步骤(33);
(33)SDN控制器在节点信息字典中增添一条以key-value形式存储终端节点和数据报文接入交换机的源端口之间信息映射关系的信息项:(DPID,IP_SRC,ETH_SRC,IP_DST)>IN_PORT;然后构造packet-out回复响应报文,执行传统的报文转发操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511006019.8A CN105634923B (zh) | 2015-12-29 | 2015-12-29 | 基于sdn控制器的以太网广播优化处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511006019.8A CN105634923B (zh) | 2015-12-29 | 2015-12-29 | 基于sdn控制器的以太网广播优化处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105634923A CN105634923A (zh) | 2016-06-01 |
CN105634923B true CN105634923B (zh) | 2018-11-02 |
Family
ID=56049451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511006019.8A Active CN105634923B (zh) | 2015-12-29 | 2015-12-29 | 基于sdn控制器的以太网广播优化处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105634923B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106506198A (zh) * | 2016-10-20 | 2017-03-15 | 新奥科技发展有限公司 | 一种微型网络系统及控制方法 |
CN108243123B (zh) * | 2016-12-23 | 2022-03-11 | 中兴通讯股份有限公司 | 广播报文的处理方法、装置、控制器和交换机 |
CN110235417B (zh) * | 2017-03-14 | 2021-02-05 | 华为技术有限公司 | 一种sdn及其报文转发的方法和装置 |
CN110224942B (zh) * | 2018-03-01 | 2023-08-04 | 中兴通讯股份有限公司 | 一种报文处理方法、装置及存储介质 |
CN110445703B (zh) * | 2019-07-26 | 2021-05-07 | 新华三技术有限公司合肥分公司 | 环路报文拦截方法、转发设备及控制器 |
CN110798409A (zh) * | 2019-10-31 | 2020-02-14 | 深信服科技股份有限公司 | 流量处理方法、装置和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938794A (zh) * | 2012-11-14 | 2013-02-20 | 华为技术有限公司 | 地址解析协议arp消息转发方法、交换机和控制器 |
CN103209225A (zh) * | 2013-04-03 | 2013-07-17 | 北京邮电大学 | 一种基于周期触发代理的sdn广播处理方法 |
CN103259732A (zh) * | 2013-04-03 | 2013-08-21 | 北京邮电大学 | 一种基于arp事件触发代理的sdn广播处理方法 |
WO2015168148A2 (en) * | 2014-04-29 | 2015-11-05 | Aruba Networks, Inc. | Software-defined wireless device management |
-
2015
- 2015-12-29 CN CN201511006019.8A patent/CN105634923B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938794A (zh) * | 2012-11-14 | 2013-02-20 | 华为技术有限公司 | 地址解析协议arp消息转发方法、交换机和控制器 |
CN103209225A (zh) * | 2013-04-03 | 2013-07-17 | 北京邮电大学 | 一种基于周期触发代理的sdn广播处理方法 |
CN103259732A (zh) * | 2013-04-03 | 2013-08-21 | 北京邮电大学 | 一种基于arp事件触发代理的sdn广播处理方法 |
WO2015168148A2 (en) * | 2014-04-29 | 2015-11-05 | Aruba Networks, Inc. | Software-defined wireless device management |
Non-Patent Citations (1)
Title |
---|
基于SDN框架的通信网络的研究与应用;杨日成;《中国优秀硕士学位论文全文数据库(电子期刊)》;20150315(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105634923A (zh) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105634923B (zh) | 基于sdn控制器的以太网广播优化处理方法 | |
CN105706400B (zh) | 在网络上转发分组的方法和装置 | |
CN103685009B (zh) | 数据包的处理方法、控制器及系统 | |
CN104285416B (zh) | 在存储区域网络中端接覆盖隧道的虚拟路由器 | |
CN105553849B (zh) | 一种传统ip网络与sptn网络互通方法与系统 | |
US6553028B1 (en) | Method and apparatus for multicast switching using a centralized switching engine | |
CN104618244B (zh) | 一种sdn网络与传统ip网络互通的方法及系统 | |
CN110061897A (zh) | 虚拟网络隧道内流量数据获取方法与系统 | |
US10425337B2 (en) | Method for processing downlink signalling of SDN virtualization platform based on openflow | |
CN103391296B (zh) | 一种控制器、转发器及通道建立方法和系统 | |
CN104717098B (zh) | 一种数据处理方法及装置 | |
CN105871718B (zh) | 一种sdn域间路由实现方法 | |
CN104980355B (zh) | 一种sdn环境下的源端可控组播数据传输系统 | |
US9900238B2 (en) | Overlay network-based original packet flow mapping apparatus and method therefor | |
CN106411736A (zh) | 一种面向软件定义卫星网络的节点资源发现策略优化方法 | |
CN102685006A (zh) | 一种转发数据报文的方法及装置 | |
CN104243427B (zh) | 虚拟机在线迁移方法、数据包传输方法和设备 | |
CN104980373B (zh) | 一种控制服务器及其应用的系统和方法 | |
CN108243123A (zh) | 广播报文的处理方法、装置、控制器和交换机 | |
CN104135446A (zh) | 基于SDN实现IPv4向IPv6过渡的系统及方法 | |
Zhang et al. | A box-covering-based routing algorithm for large-scale SDNs | |
CN107566237A (zh) | 一种数据报文处理方法及装置 | |
CN105516025A (zh) | 端到端的路径控制和数据传输方法、OpenFlow控制器和交换机 | |
CN106209689A (zh) | 从vxlan至vlan的组播数据报文转发方法和设备 | |
CN108833232A (zh) | 一种基于VPP的PPPoE客户端实现方法及PPPoE客户端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |