一种ARP报文处理方法及装置与流程

文档序号:12279031阅读:588来源:国知局
一种ARP报文处理方法及装置与流程

本发明涉及网络通信技术领域,尤其涉及一种ARP报文处理方法及装置。



背景技术:

SDN(Software Defined Network,软件定义网络)是一种新型的网络创新架构,通过将控制平面和数据平面分离,实现网络流量的灵活控制。

SDN网络由控制器和交换设备组成。在接有安全设备的SDN网络中,安全设备通常与交换设备的两个端口相连。当SDN网络存在ARP(Address Resolution Protocol,地址解析协议)探测机制时,控制器发送的ARP报文会在连接安全设备的两个端口之间形成环路,影响网络通信。



技术实现要素:

本发明的目的在于提供一种ARP报文处理方法及装置,用以避免ARP报文的环路问题。

为实现上述发明目的,本发明提供了技术方案:

本发明提供一种ARP报文处理方法,应用于SDN的控制器,所述方法包括:

获取交换设备上安全设备的接入端口;

将所述安全设备的属于同一虚拟局域网VLAN的接入端口加入同一端口隔离组;

向所述交换设备下发所述端口隔离组的配置信息,以使所述交换设备根据所述端口隔离组的配置信息禁止在同一端口隔离组下的接入端口之间转发ARP报文。

本发明还提供一种ARP报文处理装置,应用于SDN的控制器,所述装置包括:

端口获取单元,用于获取交换设备上安全设备的接入端口;

隔离组加入单元,用于将所述安全设备的属于同一虚拟局域网VLAN的接入端口加入同一端口隔离组;

配置下发单元,用于向所述交换设备下发所述端口隔离组的配置信息,以使所述交换设备根据所述端口隔离组的配置信息禁止在同一端口隔离组下的接入端口之间转发ARP报文。

由以上描述可以看出,本发明由控制器根据交换设备上安全设备的接入端口以及接入端口所属VLAN建立端口隔离组,并将端口隔离组的配置下发给交换设备,以使交换设备不在同一端口隔离组下的接入端口之间转发ARP报文,从而避免形成环路。

附图说明

图1是本发明实施例示出的SDN网络的示意图;

图2是本发明实施例示出的ARP报文处理方法流程图;

图3是本发明实施例示出的SDN网络内控制器的结构示意图;

图4是本发明实施例示出的ARP报文处理装置的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

参见图1,为本发明实施例示出的接入安全设备的SDN网络示意图。该SDN网络包括控制器SDN Controller、交换设备Switch1和Switch2、虚拟机VM1和VM2、安全设备FW(FireWall,防火墙)、LB(LoadBalance,负载均衡)、IPS(Intrusion Prevention System,入侵防御系统)。

以VM1访问VM2为例,VM1的IP地址为10.0.0.1,VM2的IP地址为10.0.0.2。假设,当前VM2未上线,VM1发送ARP报文请求VM2的MAC(Media Access Control,介质访问控制)地址,该ARP报文由Switch1上送控制器,控制器本地无VM2的上线信息,因此,通过交换设备Switch1和Switch2的所有端口发送ARP报文(源IP地址为10.0.0.2),请求VM2的MAC地址。

以通过Switch2的端口1发送ARP报文为例,该ARP报文经FW后,从端口2返回,由于端口1和端口2属于同一VLAN(Virtual Local Area Network,虚拟局域网)VLAN1000,因此,从端口2返回的ARP报文又会从端口1发送出去,从而形成环路。

针对上述问题,本发明实施例提出一种ARP报文处理方法,该方法由控制器根据交换设备上安全设备的接入端口以及接入端口所属VLAN建立端口隔离组,并将端口隔离组的配置下发给交换设备,以使交换设备不在同一端口隔离组下的接入端口之间转发ARP报文,从而避免形成环路。

参见图2,为本发明ARP报文处理方法的一个实施例流程图,该实施例从SDN控制器侧对ARP报文处理过程进行描述。

步骤201,获取交换设备上安全设备的接入端口标识。

可选的,本发明实施例可以预先在控制器上添加安全设备的接入信息,控制器根据预先添加的安全设备的接入信息获取安全设备在交换设备上的接入端口标识,参见表1,为在控制器上添加的FW的接入信息示例。

表1

如表1所示,接入信息包括:交换设备的标识、与交换设备连接的安全设备的标识、交换设备接入端口的标识以及针对该安全设备在接入端口上配置的VLAN的标识。具体的,FW可以通过交换设备Switch2的端口1和端口2接入,且这两个接入端口同属于VLAN 1000。

步骤202,将所述安全设备的属于同一VLAN的接入端口加入同一端口隔离组。

将需要隔离的接入端口加入同一端口隔离组,例如,将端口1和端口2加入端口隔离组port-isolate group 1。

步骤203,向所述交换设备下发所述端口隔离组的配置信息,以使所述交换设备根据所述端口隔离组的配置信息禁止在同一端口隔离组下的接入端口之间转发ARP报文。

本步骤将端口隔离组配置信息下发给交换设备。当控制器通过交换设备的一个接入端口发送ARP报文时,若该APR报文经由安全设备被返回,则交换设备首先判断返回ARP报文的端口是否被加入至端口隔离组中,若结果为是,则交换设备不再向同一端口隔离组中的其他端口转发该ARP报文。例如,控制器通过Switch2的端口1发送ARP报文时,该ARP报文经FW从端口2返回,由于Switch2上已下发端口隔离组port-isolate group 1的配置信息,因此,交换设备不会将从端口2接收到的ARP报文向端口1转发,从而避免形成环路。

但是,从端口2返回的ARP报文(源IP地址为VM2的IP地址10.0.0.2)上送控制器后,会使控制器误以为VM2从Switch2的端口2接入,从而导致ARP学习错误。

针对该问题,本发明实施例由控制器向交换设备下发ARP丢弃流表项,该ARP丢弃流表项中包含安全设备的接入端口标识,以使交换设备对从安全设备的接入端口接收的ARP报文进行丢弃。参见表2,为基于端口的ARP丢弃流表项示例。

表2

假设,交换设备从端口1接收到ARP报文,根据端口1的端口标识匹配ARP丢弃流表项,其中,第1条ARP丢弃流表项中的接入端口标识(安全设备对应接入端口的端口标识)与端口1的端口标识匹配,因此,交换设备将从端口1接收到的ARP报文丢弃,不再上送控制器,从而避免ARP学习错误。

需要补充说明的是,该ARP丢弃流表项的优先级要高于ARP报文上送控制器的流表项(现有技术中控制器会向交换设备下发默认ARP报文上送控制器的流表项)的优先级,以保证ARP报文优先匹配ARP丢弃流表项,从而使匹配成功的ARP报文直接丢弃,不会再匹配ARP报文上送控制器的流表项。

但是,表2所示ARP丢弃流表项中的接入端口不能复用,例如,端口1连接安全设备后,不能再连接其它设备,否则,其它设备发送的ARP报文也会被丢弃。

为了解决端口复用问题,本发明ARP丢弃流表项中还可以包含针对安全设备在接入端口上配置的VLAN标识。参见表3,为基于端口和VLAN的ARP丢弃流表项示例。

表3

其中,VLAN1000为安全设备的VLAN标识。假设,端口1除连接安全设备外,还连接其它设备(例如,虚拟机),则针对其它设备配置的VLAN标识不能与安全设备的VLAN标识相同。

当交换设备从接入端口接收到ARP报文时,根据ARP报文携带的VLAN标识匹配ARP丢弃流表项中的VLAN标识,若匹配成功,说明ARP报文携带的VLAN标识为安全设备对应的VLAN标识,对从安全设备接收到的ARP报文进行丢弃;若匹配失败,说明ARP报文携带的VLAN标识为接入端口上连接的其它设备对应的VLAN标识,则将从其它设备接收到的ARP报文上送控制器处理,以保证接入端口上以其它VLAN接入的设备的正常使用,提高交换设备端口利用率。

现仍以图1为例,介绍ARP报文处理过程。

控制器SDN Controller获取所有安全设备FW、LB、IPS的接入信息,FW的接入信息参见表1,LB的接入信息参见表4,IPS的接入信息参见表5。

表4

表5

SDN Controller将VLAN1000下的端口1和端口2加入端口隔离组port-isolate group 1;将VLAN1001下的端口3和端口4加入端口隔离组port-isolate group 2;将VLAN1002下的端口5和端口6加入端口隔离组port-isolate group3。

SDN Controller向Switch2下发端口隔离组port-isolate group 1、port-isolate group 2、port-isolate group 3的配置信息。

SDN Controller向Switch2下发ARP丢弃流表项,参见表6。ARP丢弃流表项的优先级高于ARP报文上送控制器的流表项(本发明实施例未示出)的优先级。

表6

当VM1访问VM2时,假设,VM1的IP地址为10.0.0.1,VM2的IP地址为10.0.0.2,VM2未上线。VM1发送ARP报文请求VM2的MAC地址,该ARP报文由Switch1上送控制器,控制器无VM2的上线信息,因此,通过Switch1和Switch2的所有端口发送ARP报文(源IP地址为10.0.0.2),请求VM2的MAC地址。

以通过Switch2的端口1发送ARP报文为例,该ARP报文经FW后,从端口2返回,由于Switch2上下发了端口隔离组port-isolate group 1的配置信息,因此,Switch2不会将该ARP报文向端口1转发,从而避免形成环路。

Switch2从端口2接收ARP报文(此时ARP报文携带的VLAN标识为VLAN1000)后,优先匹配表6所示ARP丢弃流表项,与第2条流表项匹配,因此,丢弃该ARP报文(源IP地址为VM2的IP地址),不会上送SDN Controller处理,因此,SDN Controller不会将VM2的访问端口误学习为Switch2的端口2。

假设,Switch2的端口2还接有VM3(图中未示出),VM3从端口2上线时对应的VLAN标识为VLAN2000,优先匹配表6所示ARP丢弃流表项,未找到匹配的ARP丢弃流表项,因此,匹配ARP报文上送控制器的流表项上送控制器,控制器将VM3学习在Switch2的端口2上。

与前述ARP报文处理方法的实施例相对应,本发明还提供了ARP报文处理装置的实施例。

本发明ARP报文处理装置的实施例可以应用在SDN控制器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器运行存储器中对应的计算机程序指令形成的。从硬件层面而言,如图3所示,为本发明ARP报文处理装置所在设备的一种硬件结构图,除了图3所示的处理器以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图4,为本发明一个实施例中的ARP报文处理装置的结构示意图。该ARP报文处理装置包括端口获取单元401、隔离组加入单元402以及配置下发单元403,其中:

端口获取单元401,用于获取交换设备上安全设备的接入端口;

隔离组加入单元402,用于将所述安全设备的属于同一虚拟局域网VLAN的接入端口加入同一端口隔离组;

配置下发单元403,用于向所述交换设备下发所述端口隔离组的配置信息,以使所述交换设备根据所述端口隔离组的配置信息禁止在同一端口隔离组下的接入端口之间转发ARP报文。

进一步地,所述装置还包括:

流表下发单元,用于向所述交换设备下发ARP丢弃流表项,所述ARP丢弃流表项中包含安全设备的接入端口标识,以使所述交换设备对从所述安全设备的接入端口接收的ARP报文进行丢弃。

进一步地,所述装置还包括:

优先级设置单元,用于设置所述ARP丢弃流表项的优先级高于ARP报文上送控制器的流表项的优先级,以使所述交换设备在接收到ARP报文后优先匹配ARP丢弃流表项。

进一步地,

所述ARP丢弃流表项中还包含针对安全设备在接入端口上配置的VLAN标识,以使所述交换设备在通过所述安全设备的接入端口接收到ARP报文时,根据ARP报文携带的VLAN标识匹配ARP丢弃流表项的VLAN标识,若匹配成功,则丢弃ARP报文,若匹配失败,则将ARP报文上送控制器处理。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1