一种arp应答代理方法以及装置制造方法

文档序号:7815377阅读:242来源:国知局
一种arp应答代理方法以及装置制造方法
【专利摘要】本发明提供了ARP应答代理方法以及装置,所述方法包括:接收主机发送的ARP请求报文;若检测到所述交换机与控制设备断开连接,则解析所述ARP请求报文的报文信息;判断所述报文信息与所述交换机预存的流表项的表项信息是否匹配;若所述报文信息与所述表项信息匹配,获取目的MAC地址;根据所述目的MAC地址向所述主机发送ARP应答报文。本发明可在交换机与控制设备断开连接时,由交换机代理控制设备答复ARP应答报文,从而避免主机上的ARP表项被老化,保证了主机之间的正常通信。
【专利说明】一种ARP应答代理方法以及装置

【技术领域】
[0001] 本发明涉及通信【技术领域】,尤其涉及一种ARP (Address Resolution Protocol,地 址解析协议)应答代理方法以及装置。

【背景技术】
[0002] SDN(Software Defined Network,软件定义网络)是一种新型的网络架构,其可以 将网络设备的控制面与数据面进行分离,由控制器(Controller)实现控制面功能,以及由 若干交换机(Switch)实现数据面功能,每个交换机下可以连接若干主机。
[0003] 在SDN网络中,各主机保存有通过学习的ARP信息建立的ARP表项,各ARP表项都 有其固定的老化时间。在各ARP表项老化之前,主机会通过交换机向控制设备发送ARP请求 报文以进行新一轮的ARP学习,并更新其ARP表项的老化时间。主机在发送ARP请求报文 后,若在该老化时间之内接收到控制设备回复的ARP应答报文,则更新该老化时间,并刷新 该ARP表项;若在该老化时间之内未接收到控制设备回复的ARP应答报文,则会老化该ARP 表项。
[0004] 控制设备接收到主机发送的ARP请求报文后,通常将该ARP请求报文进行广播,以 获取该ARP请求报文所请求的信息。然而,为了减少广播报文的数量,控制设备可以不将该 ARP请求报文广播,而是由控制设备根据自身保存的各主机信息向发送ARP请求报文的主 机回复ARP应答报文。
[0005] 但是,若控制设备与交换机断开连接,则主机发起的ARP请求报文无法被控制设 备代答,那么主机上的ARP表项会在老化时间到达时被删除,从而难以与其它主机进行通 ?目。


【发明内容】

[0006] 本发明提供了 ARP应答代理方法以及装置来解决因控制设备与交换机断开连接, 主机发起的ARP请求报文无法被控制设备代答的问题。
[0007] 本发明提供一种ARP应答代理方法,应用于SDN网络中的交换机,其中,所述方法 包括:
[0008] 接收主机发送的ARP请求报文;
[0009] 若检测到所述交换机与控制设备断开连接,则解析所述ARP请求报文的报文信 息;
[0010] 判断所述报文信息与所述交换机预存的流表项的表项信息是否匹配;
[0011] 若所述报文信息与所述表项信息匹配,获取目的介质访问控制MAC地址;
[0012] 根据所述目的MAC地址向所述主机发送ARP应答报文。
[0013] 本发明还提供一种ARP应答代理方法,应用于SDN网络中的控制设备,其中,所述 方法包括:
[0014] 若在监测到与交换机连接正常后接收到交换机上送的业务报文,则解析所述业务 报文的报文信息;
[0015] 将所述业务报文的报文信息与自身预存的主机信息进行匹配;
[0016] 在所述业务报文的报文信息与自身预存的主机信息不匹配时,通过所述交换机向 主机下发ARP表项刷新报文。
[0017] 本发明还提供一种ARP应答代理装置,应用于SDN网络中的交换机,其中,所述装 置包括:
[0018] 报文接收单元,用于接收主机发送的ARP请求报文;
[0019] 第一报文解析单元,用于检测到所述交换机与控制设备断开连接时,解析所述ARP 请求报文的报文信息;
[0020] 第一信息匹配单元,用于判断所述报文信息与所述交换机预存的流表项的表项信 息是否匹配;
[0021] MAC地址获取单元,用于在所述报文信息与所述表项信息匹配时,获取目的MAC地 址;
[0022] 报文代答单元,用于根据所述目的MAC地址向所述主机发送ARP应答报文。
[0023] 本发明还提供一种ARP应答代理装置,应用于SDN网络中的控制设备,其中,所述 装置包括:
[0024] 第二报文解析单元,用于在监测到与交换机连接正常后接收到交换机上送的业务 报文,解析所述业务报文的报文信息;
[0025] 第二信息匹配单元,用于将所述业务报文的报文信息与自身预存的主机信息进行 匹配;
[0026] 报文下发单元,用于在所述业务报文的报文信息与自身预存的主机信息不匹配 时,通过所述交换机向主机下发ARP表项刷新报文。
[0027] 本发明提供的ARP应答代理方法以及装置,通过在检测到所述交换机与控制设备 断开连接时,根据接收的ARP请求报文判断其报文信息与流表项的表项信息是否匹配,并 在匹配时根据流表项中对应的目的MAC地址向所述主机发送ARP应答报文,从而在交换机 与控制设备断开连接时,由交换机代理控制设备答复ARP应答报文,以保证主机之间的正 常通信。

【专利附图】

【附图说明】
[0028] 图1是本发明中SDN网络组网示意图;
[0029] 图2是本发明中ARP应答代理方法的一个实施例流程图;
[0030] 图3是本发明中ARP应答代理方法的另一个实施例流程图;
[0031] 图4是本发明中ARP应答代理方法的工作流程图;
[0032] 图5是本发明中ARP应答代理装置所在交换机或控制设备的硬件架构示意图;
[0033] 图6为本发明中实施例中ARP应答代理装置的一个实施例结构示意图;
[0034] 图7为本发明中实施例中第一信息匹配单元的实施例结构示意图;
[0035] 图8为本发明中实施例中MAC地址获取单元的实施例结构示意图;
[0036] 图9为本发明中实施例中报文代答单元的实施例结构示意图;
[0037] 图10为本发明中实施例中报文接收单元的实施例结构示意图
[0038] 图11为本发明中实施例中ARP应答代理装置的一个实施例结构示意图;
[0039] 图12为本发明中实施例中第二信息匹配单元的实施例结构示意图;
[0040] 图13为本发明中实施例中报文下发单元的实施例结构示意图。

【具体实施方式】
[0041] 本发明实施例所应用的一种网络环境如图1所示,在SDN网络中,包括控制设 备、交换机以及接入交换机的多个主机。交换机可以是实际存在的硬件交换机也可以 是VS (Virtual Switch,虚拟交换机),主机可以是实际存在的主机也可以是VM(Virtual Machine,虚拟主机)。图1示出的交换机以及主机分别为VS (包括VS1和VS2)以及VM(包 括VM1、VM2、VM3和VM4),每个VS上又包括多个端口(Port),如VS1上包括VSl-Portl、 VSl-Port2、VSl-Port3,其中,控制设备与VS1断开连接。各主机保存有通过学习的ARP信 息建立的ARP表项,各ARP表项都有其固定的老化时间,在各ARP表项老化之前,主机可以 通过交换机向控制设备发送ARP请求报文进行新一轮的ARP学习,控制设备接收到主机发 送的ARP请求报文后,通常将该ARP请求报文进行广播,以获取该ARP请求报文所请求的信 息。然而,为了减少广播报文的数量,控制设备可以不将该ARP请求报文广播,而是由控制 设备根据自身保存的各主机信息向发送ARP请求报文的主机回复ARP应答报文。但是,若 控制设备与交换机断开连接,如图1中控制设备与VS1连接断开时,由VM1发起的ARP请求 报文就无法被上送至控制设备,从而无法被控制设备代答,那么若在VM1的ARP表项老化时 间之内未接收到控制设备回复的ARP应答报文,VM1的ARP表项则会在老化时间到达时被 删除,VM1从而难以与其它主机进行通信。
[0042] 为此,本发明提供了 ARP应答代理方案以解决现有技术中所遇到的困境。
[0043] 参见图2,为本发明ARP应答代理方法的一个实施例流程图,该实施例应用在SDN 网络的交换机上,包括以下步骤:
[0044] 步骤201,接收主机发送的ARP请求报文;
[0045] 本发明实施例中,交换机会接收到与其连接的各主机定期发送的ARP请求报文, 该ARP请求报文经由交换机转发至控制设备,控制设备根据自身保存的各主机信息向发送 ARP请求报文的主机回复ARP应答报文,由主机根据控制设备回复的ARP应答报文进行ARP 学习,并更新自身保存的ARP表项的老化时间。
[0046] 步骤202,若检测到所述交换机与控制设备断开连接,则解析所述ARP请求报文的 报文信息;
[0047] 本发明实施例中,交换机中预存有控制设备下发的MAC/IP流表项,该MAC/IP流表 项的表项信息包括流表项的源MAC地址、目的MAC、入端口、源IP地址以及目的IP地址。本 发明可以实时监测交换机与控制设备的连接状态,即使交换机与控制设备连接中断,交换 机上所保存的MAC/IP流表项保持不变。由此,在接收到主机发送的ARP请求报文时,若监 测到交换机与控制设备的连接中断,则解析出该ARP请求报文的报文信息,以使交换机根 据解析出的报文信息代替控制设备回复ARP应答报文。该报文信息包括所述ARP请求报文 的源MAC地址、源IP地址、入端口以及目的IP地址。
[0048] 然而,在交换机与控制设备连接正常时,交换机接收到主机发送的ARP请求报文 后,依然将该ARP请求报文上送至控制设备,由控制设备回复ARP应答报文。
[0049] 步骤203,判断所述报文信息与所述交换机预存的流表项的表项信息是否匹配;
[0050] 在解析出所述ARP请求报文的报文信息后,遍历交换机上保存的所有流表项,将 所述ARP请求报文的源MAC地址、源IP地址、入端口以及目的IP地址分别与所述流表项的 源MAC地址、源IP地址、入端口以及目的IP地址进行比较,若均一致,则确定所述报文信息 与所述表项信息匹配。
[0051] 具体地,首先遍历交换机中保存的所有流表项,查找各流表项的匹配(Match)域 中是否有与该ARP请求报文的目的IP地址一致的目的IP地址。其中,Match域中包括的源 MAC地址、源IP地址、入端口、源IP地址以及目的IP地址,若流表项中有与该ARP请求报文 的目的IP地址一致的目的IP地址,则进一步将有一致目的IP地址的流表项Match域中的 源MAC地址、源IP地址以及入端口分别与所述ARP请求报文的源MAC地址、源IP地址以及 入端口进行比较,若全部一致,可以确定所述报文信息与所述流表项的表项信息匹配。若在 各流表项的Match域中未查找到与该ARP请求报文的目的IP地址一致的目的IP地址,说 明交换机中未保存与其对应的转发流表项。那么则可以认为该ARP请求报文所请求的目的 MAC地址可以为以下两种情况之一:
[0052] a、该ARP请求报文所请求的目的MAC地址为网关的MAC地址;
[0053] 假设图1中VM1与VM3为不同IP地址网段的虚拟主机,在VM1发送请求VM3的 MAC地址的ARP请求报文之前,若VM1判断出VM3与其不在同一 IP地址网段,那么则会发送 目的IP地址为网关IP地址的ARP请求报文,以请求网关的MAC地址,在这种情况下,确定 该ARP请求报文所请求的目的MAC地址为网关的MAC地址。
[0054] b、该ARP请求报文所请求的目的MAC地址为还未建立流表项的同一网段主机的 MAC地址(首次进行ARP学习的主机)。
[0055] 对于在各流表项的Match域中未查找到与该ARP请求报文的目的IP地址一致的 目的IP地址时(即情况a或是情况b),说明交换机中未保存与其对应的转发流表项。可以 首先根据所述ARP请求报文的源MAC地址以及源IP地址与所述流表项Macth域中的源MAC 地址以及源IP地址进行比对,若ARP请求报文的源MAC地址以及源IP地址与所述流表项 的源MAC地址以及源IP地址一致,并且所述流表项的入端口与接收所述ARP请求报文的交 换机端口一致,再进一步检查与ARP请求报文的源MAC地址以及源IP地址一致的流表项中 的动作(action)域中是否修改了源MAC地址和目的MAC地址,即action域是否发生了 MAC 地址替换的动作,若是,在替换后的action域中源MAC地址和match域中的目的MAC地址 (即网关的MAC地址)一致时,确定所述报文信息与所述表项信息匹配。
[0056] 然而,与ARP请求报文的源MAC地址以及源IP地址一致的流表项中,可能有多条 action域发生了 MAC地址替换的流表项,此时,可以选取任意一条action域进行MAC地址 替换的流表项进行匹配。由于该多条进行MAC地址替换的action域中的源MAC地址均为 网关的MAC地址,因此选取任意一条进行MAC地址替换的action域的流表项进行匹配,均 会产生同样的匹配结果,即替换后的action域中源MAC地址和match域中的目的MAC地址 (即网关的MAC地址)一致。
[0057] 仍以图1为例,在VM1请求目的主机VM3时,由于VM1判断出VM3与其不在同一 IP 地址网段,因此发送的ARP请求报文所请求的目的IP地址为网关的IP地址,在交换机预存 的流表项中查找不到与该目的IP地址一致的流表项。那么,若该ARP请求报文中VM1的源 MAC地址以及VM1的源IP地址与流表项Macth域中的源MAC地址以及源IP地址一致,接收 所述ARP请求报文的交换机端口 VMl-Portl与对应流表项的入端口 VMl-Portl -致,进一 步检查该流表项的action域中是否存在对源MAC地址和目的MAC地址的修改,即是否将原 来源MAC地址为VM1的MAC地址修改为网关MAC地址,将原来目的MAC地址为网关的MAC 地址修改为VM3的MAC地址,若是,说明action域发生了 MAC地址替换的动作,且替换后的 action域中源MAC地址和match域中的目的MAC地址(网关的MAC地址)一致。那么可以 确定所述报文信息与所述流表项的表项信息匹配。
[0058] 步骤204,若所述报文信息与所述表项信息匹配,获取目的MAC地址;
[0059] 在根据上述匹配方式将报文信息与流表项的表项信息比对后,在所述ARP请求报 文与流表项Match域中的源MAC地址、源IP地址、入端口以及目的IP地址均一致时,所获取 的对应流表项中的目的MAC地址为所述ARP请求报文所请求的目的主机的目的MAC地址;
[0060] 在所述ARP请求报文的源MAC地址以及源IP地址与所述流表项的源MAC地址以及 源IP地址一致,且与ARP请求报文的源MAC地址以及源IP地址一致的流表项中的action 域中修改了源MAC地址和目的MAC地址,以及所述流表项的入端口与接收所述ARP请求报 文的交换机端口一致时,所获取的对应流表项中的目的MAC地址可以为网关的MAC地址。
[0061] 步骤205,根据所述目的MAC地址向所述主机发送ARP应答报文。
[0062] 在获取到ARP请求报文所请求的目的MAC地址后,交换机可以代替控制设备根据 该获取的目的MAC地址生成ARP应答报文,所述ARP应答报文的源MAC地址为上述获取的 目的MAC地址(与流表项的表项信息对应的目的MAC地址或者网关MAC地址),所述ARP应 答报文的目的MAC地址为所述ARP请求报文的源MAC地址,并将该生成的ARP应答报文发 送至发送所述ARP请求报文的主机,以使主机使用该ARP应答报文中的目的MAC地址更新 自身的ARP表项,防止主机的ARP表项老化。
[0063] 本发明优选地实施例中,若在检测到所述交换机与所述控制设备连接正常后交换 机接收到建立ARP表项的主机间通信的业务报文,首先由交换机将该业务报文的目的MAC 地址以及目的IP地址等报文信息与自身预存的流表项进行匹配,若匹配,则将所述业务报 文通过与匹配的流表项中对应出端口转发至对应的主机。例如该业务报文为VM1与VM2进 行通信的业务报文时,交换机保存有VM1与VM2的流表项,因此在该业务报文的目的MAC地 址以及目的IP地址与流表项匹配时,将该业务报文通过VMl-Port2转发至VM2。
[0064] 若该业务报文未匹配到交换机的任意流表项,或者该业务报文可以匹配到交换机 保存的执行动作为上送控制设备的Table Miss (缺省流表项),该业务报文将被上送至控 制设备处理。例如,该业务报文为VM1与VM4进行通信的业务报文时,该业务报文的目的IP 地址为VM4的IP地址,目的MAC地址为上述交换机代答的ARP应答报文中的网关MAC地址, 由于交换机未保存有与其对应的流表项,因此该业务报文的目的MAC地址以及目的IP地址 无法匹配到任意流表项,那么将该业务报文通过VMl-Port3上送至控制设备。
[0065] 控制设备预存有各主机的主机信息,该主机信息包括各主机的MAC地址以及IP地 址,控制设备在接收到该业务报文后,在根据该主机信息检查到所述业务报文的目的IP地 址与对应的目的MAC地址不匹配时,说明该业务报文的目的MAC地址错误,那么则主动通过 交换机向所述主机下发免费ARP表项,即向所述主机发送包含有正确的目的MAC地址的ARP 表项刷新报文,以使主机根据所述ARP表项刷新报文刷新其保存的对应的ARP表项。并且, 控制设备使用该正确的目的MAC地址修改所述业务报文中错误的目的MAC地址,之后将所 述业务报文封装至Pack-out报文中,通过交换机与所述正确的目的MAC地址对应的出端口 发送至与所述正确的目的MAC地址对应的主机。另外,控制设备向交换机下发具有发送ARP 请求报文的主机与所请求的目的主机的转发流表项,以使后续接收到所述发送ARP请求报 文的主机向所请求的目的主机发送的业务报文时,无需再将该业务报文上送至控制设备, 可由交换机根据该转发流表项进行转发。
[0066] 参见图3,为本发明ARP应答代理方法的另一个实施例流程图,该实施例应用在 SDN网络的控制设备上,包括以下步骤:
[0067] 步骤301,若在监测到与交换机连接正常后接收到交换机上送的业务报文,则解析 所述业务报文的报文信息;
[0068] 本发明实施例中,控制设备预存有各主机的主机信息,该主机信息包括各主机的 MAC地址以及IP地址。若控制设备在与所述交换机连接正常后接收到交换机上送的业务报 文,说明该业务报文为没有匹配到交换机的任意流表项的报文,或者也可以是匹配到交换 机保存的执行动作为上送控制设备的Table Miss (缺省流表项)的业务报文。控制设备在 接收到该业务报文后,则解析所述业务报文的报文信息,该报文信息包括所述业务报文的 目的IP地址以及目的MAC地址。
[0069] 步骤302,将所述业务报文的报文信息与自身预存的主机信息进行匹配;
[0070] 在解析所述业务报文的报文信息后,将所述报文信息的目的IP地址以及目的MAC 地址与预存的主机信息中各主机的MAC地址以及IP地址进行比对,若报文信息的目的IP 地址与主机信息中主机的IP地址一致,但是所述报文信息的目的MAC地址与所述主机的IP 地址(所述业务报文的目的IP地址)对应的MAC地址不一致时,确定所述业务报文的报文 信息与自身预存的主机信息不匹配,则说明该业务报文的目的MAC地址错误。
[0071] 步骤303,在所述业务报文的报文信息与自身预存的主机信息不匹配时,通过所述 交换机向主机下发ARP表项刷新报文。
[0072] 在所述业务报文的目的MAC地址错误时,获取所述主机信息中与所述报文信息的 目的IP地址对应的MAC地址,主动通过交换机向所述主机下发免费ARP表项,即根据所述 MAC地址生成所述ARP表项刷新报文,并将所述ARP表项刷新报文通过所述交换机下发至 发送所述业务报文的主机,以使所述主机根据所述ARP表项刷新报文更新所述主机保存的 ARP表项。并且,控制设备使用该正确的目的MAC地址修改所述业务报文中错误的目的MAC 地址,之后将所述业务报文封装至Pack-out报文中,通过与所述正确的目的MAC地址对应 的出端口发送至与所述正确的目的MAC地址对应的主机。
[0073] 另外,控制设备可以向交换机下发具有发送ARP请求报文的主机与所请求的目的 主机的转发流表项,以使后续接收到所述发送ARP请求报文的主机向所请求的目的主机发 送的业务报文时,无需再将该业务报文上送至控制设备,可由交换机根据该转发流表项进 行转发。
[0074] 参见图4,为本发明ARP应答代理方法的另一个实施例流程图,该实施例结合图1, 通过主机(VM)、交换机(VS)与控制设备之间的交互详细描述了 ARP应答代理过程,包括以 下步骤:
[0075] 步骤401,交换机接收主机发送的ARP请求报文;
[0076] 本发明实施例中,假设VM1、VM2以及VM4同在一个二层的网络中,VM1与VM3之间 需要三层转发,交换机VS1保存有VM1与VM2以及VM1与VM3之间的流表项,未保存VM1和 VM4之间的流表项。
[0077] 如果VM1分别需要与VM2、VM3以及VM4进行通信,但自身的ARP表项已老化,则可 以通过VS-Portl分别发送请求目的IP地址为VM2、VM3以及VM4的IP地址的ARP请求报 文。
[0078] 步骤402,监测交换机与控制设备的连接是否断开,若连接正常,执行步骤403,并 结束当前流程;若断开,执行步骤404 ;
[0079] 步骤403,交换机将主机发送的ARP请求报文上送控制设备,结束当前流程;
[0080] 在ARP请求报文命中交换机预存的流表项中的缺省流表项时,将主机发送的ARP 请求报文上送控制设备,并结束当前流程。
[0081] 步骤404,交换机解析ARP请求报文中携带的报文信息;
[0082] VS1接收到VM1分别发送的ARP请求报文后,则分别解析出各ARP请求报文的报文 信息,该报文信息包括所述ARP请求报文的源MAC地址、源IP地址、入端口以及目的IP地 址。
[0083] 步骤405,交换机检查是否有与报文信息均一致的流表项,若均一致,执行步骤 406,若不一致,执行步骤407 ;
[0084] 遍历VS1上保存的所有流表项,将各ARP请求报文的源MAC地址、源IP地址、入端 口以及目的IP地址分别与所述流表项的源MAC地址、源IP地址、入端口以及目的IP地址 进行比较,若均一致,可以确定所述报文信息与所述表项信息匹配。
[0085] 本发明实施例中,由于VM1与VM2同在一个二层的网络中,且VS1保存有VM1与VM2 之间的流表项,因此在进行匹配时,VM1发送的请求VM2的ARP报文中的报文信息可以匹配 到VS1预存的流表项中的表项信息,即确定所述报文信息与所述表项信息匹配,说明VS1预 存的流表项中有与报文信息均一致的流表项,并执行步骤406。
[0086] 在VM1请求VM3的MAC地址时,由于VM1与VM3不在同一 IP地址网段,VM1在请求 VM3的MAC地址时,会将ARP请求报文中的目的IP地址改为网关的IP地址,那么由于VS1 并未保存VM1与网关流表项,因此在进行匹配时,在交换机的流表项中无法匹配到与该ARP 请求报文的目的IP地址一致的流表项;VM1请求VM4的MAC地址时,虽然VM1与VM4在同 一 IP地址网段,但是由于VM1与VM4为首次进行ARP学习,交换机上未保存该VM1与VM4 的流表项,因此在进行匹配时,交换机的流表项中也无法匹配到与该VM4的目的IP地址一 致的流表项。在上述两种情况时,执行步骤407。
[0087] 步骤406,获取该流表项中对应的目的MAC地址,根据目的MAC地址生成ARP应答 报文,并执行步骤409。
[0088] VM1请求VM2的目的MAC地址时,VM1发送的请求VM2的ARP请求报文中的报文信 息可以匹配到VS1预存的流表项中的表项信息,此时,所获取的目的MAC地址为所述匹配流 表项中对应的MAC地址(VM2的MAC地址)。VS1可以代替控制设备根据获取的VM2的MAC 地址生成ARP应答报文,所述ARP应答报文的源MAC地址为所述流表项的目的MAC地址,所 述ARP应答报文的目的MAC地址为所述ARP请求报文的源MAC地址。
[0089] 步骤407,交换机检查是否有与Match域中源MAC地址、源IP地址以及入端口一 致,且action域进行MAC地址替换后的源MAC地址和match域中的目的MAC地址一致的流 表项,若是执行步骤408,否则不代答,并结束当前流程。
[0090] 对于请求VM3以及VM4的ARP请求报文,可以根据所述ARP请求报文的源MAC地 址以及源IP地址与所述流表项的源MAC地址以及源IP地址进行比对,若ARP请求报文的 源MAC地址以及源IP地址与所述流表项的源MAC地址以及源IP地址一致,且所述流表项 的入端口与接收所述ARP请求报文的交换机端口一致,则进一步检查与ARP请求报文的源 MAC地址以及源IP地址一致的流表项中的action域中是否修改了源MAC地址和目的MAC 地址,即action域是否发生了 MAC地址替换的动作,若是,在替换后的action域中源MAC 地址和match域中的目的MAC地址一致时,确定所述报文信息与所述表项信息匹配,转步骤 408,否则不代答,并结束当前流程。
[0091] 步骤408,获取网关的MAC地址根据网关MAC地址生成ARP应答报文。
[0092] 对于VM1请求VM3以及VM4的ARP请求报文,即在交换机未保存主机与所请求的 目的主机间的对应流表项时,获取网关的MAC地址作为目的MAC地址。在获取到ARP请求 报文所请求的目的MAC地址后,VS1可以代替控制设备根据该获取的网关的MAC地址生成 ARP应答报文,所述ARP应答报文的源MAC地址为网关的MAC地址,所述ARP应答报文的目 的MAC地址为所述ARP请求报文的源MAC地址。
[0093] 步骤409,交换机将生成的ARP应答报文下发至发送ARP请求报文的主机。
[0094] 步骤410,若控制设备在与交换机连接正常后接收到交换机上送的业务报文,则解 析所述业务报文的报文信息。
[0095] 本发明优选地实施例中,若在检测到所述交换机与所述控制设备连接正常后交换 机接收到具有ARP表项的主机间通信的业务报文,交换机首先将该业务报文的目的MAC地 址以及目的IP地址等报文信息与自身预存的流表项进行匹配,若该业务报文未匹配到交 换机的任意流表项,或者该业务报文可以匹配到交换机保存的执行动作为上送控制设备的 Table Miss (缺省流表项)。此时,该业务报文将被上送至控制设备处理。例如,该业务报 文为VM1与VM4进行通信的业务报文时,该业务报文的目的IP地址为VM4的IP地址,目的 MAC地址为上述交换机代答的ARP应答报文中的网关MAC地址,由于交换机未保存有VM1与 VM4的流表项,因此在该业务报文的目的MAC地址以及目的IP地址无法匹配到任意流表项, 那么将该业务报文通过VMl-Port3上送至控制设备。
[0096] 控制设备在接收到该上送的业务报文时,获取该业务报文的报文信息,该报文信 息包括业务报文的目的IP地址以及目的MAC地址。例如,在该业务报文为VM1与VM4进行 通信的业务报文时,该业务报文的目的IP地址为VM4的IP地址,目的MAC地址为上述交换 机代答的ARP应答报文中的网关的MAC地址。
[0097] 步骤411,控制设备将所述业务报文的报文信息与自身预存的主机信息进行匹配; 若所述业务报文的报文信息与自身预存的主机信息不匹配,执行步骤414 ;
[0098] 控制设备预存有各主机的主机信息,该主机信息包括各主机的MAC地址、IP地址 以及对应的端口信息,控制设备在解析所述业务报文的报文信息后,发现该业务报文的目 的IP地址为VM4的IP地址,目的MAC地址为网关的MAC地址(交换机代答的ARP应答报 文中回复的网关MAC地址)。那么将所述业务报文信息的VM4的IP地址以及目的MAC地址 与预存的各主机的MAC地址以及IP地址进行比对,在该VM4的IP地址与主机信息中VM4 的IP地址一致,但目的MAC地址与所述VM4的IP地址对应的MAC地址不一致时,确定所述 业务报文的报文信息与自身预存的主机信息不匹配,则说明该业务报文的目的MAC地址错 误。
[0099] 步骤412,获取所述主机信息中与所述报文信息的目的IP地址对应的MAC地址,通 过所述交换机向主机下发ARP表项刷新报文,并将业务报文发送至对应的目的主机;
[0100] 在所述业务报文的目的MAC地址错误时,获取所述主机信息中与所述报文信息的 目的IP地址(VM4的IP地址)对应的MAC地址(VM4的MAC地址),主动通过交换机向所述 VM1下发免费ARP,即根据VM4的MAC地址生成所述ARP表项刷新报文,将所述ARP表项刷 新报文通过所述交换机下发至VM1。并且,控制设备使用该VM4的MAC地址修改所述业务报 文中错误的的目的MAC地址,之后将所述业务报文封装至Pack-out报文中,通过与VM4的 MAC地址对应的出端口发送至VM4。
[0101] 步骤416,控制设备向交换机下发具有发送ARP请求报文的主机与所请求的目的 主机的转发流表项;
[0102] 控制设备向交换机下发VM1与VM4之间的转发流表项。
[0103] 步骤417,交换机接收控制设备下发的ARP表项刷新报文以及转发流表项;
[0104] 步骤418,交换机将ARP表项刷新报文下发至发送所述业务报文的主机;
[0105] 交换机接收到控制设备下发的ARP表项刷新报文后,将所述ARP表项刷新报文发 送至VM1,以使VM1根据所述ARP表项刷新报文更新其保存的ARP表项。
[0106] 步骤419,交换机保存所述转发流表项;
[0107] 交换机接收并保存控制设备下发的VM1与VM4之间的转发流表项,以使后续接收 到VM1向VM4发送的业务报文时,无需再将该业务报文上送至控制设备,可由交换机根据该 转发流表项进行转发。
[0108] 与本发明ARP应答代理方法的实施例相对应,本发明还提供了 ARP应答代理装置 的实施例。
[0109] 本发明ARP应答代理装置的实施例可以应用在SDN中的交换机上。该装置实施例 可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一 个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指 令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明ARP应答代理装置 所在设备的一种硬件结构图,除了图5所示的CPU、内存、网络端口、以及非易失性存储器之 夕卜,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等; 从硬件结构上来讲该设备还可能是分布式的设备,可能包括多个接口卡,以便在硬件层面 进行报文处理的扩展。
[0110] 参见图6,为本发明ARP应答代理装置的实施例结构示意图,其从本质上说该装置 是一个逻辑装置。在本实施方式中,以软件实现为例,该ARP应答代理装置在逻辑层面上可 以包括:报文接收单元601、第一报文解析单元602、第一信息匹配单元603、MAC地址获取单 元604以及报文代答单元605。其中:
[0111] 报文接收单元601,用于接收主机发送的ARP请求报文;
[0112] 第一报文解析单元602,用于检测到所述交换机与控制设备断开连接时,解析所述 ARP请求报文的报文信息;
[0113] 第一信息匹配单元603,用于判断所述报文信息与所述交换机预存的流表项的表 项?目息是否匹配;
[0114] MAC地址获取单元604,用于在所述报文信息与所述表项信息匹配时,获取所述表 项信息中的目的介质访问控制MAC地址;
[0115] 报文代答单元605,用于根据所述目的MAC地址向所述主机发送ARP应答报文。
[0116] 进一步地,所述装置还可以包括流表项匹配单元606,用于在检测到所述交换机与 所述控制设备连接正常时接收到发送所述ARP请求报文的主机发送的业务报文,将所述业 务报文与自身预存的流表项进行匹配;若所述业务报文匹配缺省流表项,将所述业务报文 上送至控制设备,以使控制设备将所述业务报文的报文信息与自身预存的主机信息进行比 对,并所述报文信息与主机信息在不一致时,通过所述交换机向主机下发ARP表项刷新报 文。
[0117] 请参见图7,图6中的第一信息匹配单元603具体可以包括:第一匹配子单元6031 以及第二匹配子单元6032。为了示例方便,图6中同时示出了上述两个子单元,实际应用 中可以根据需要仅设置其中任一子单元。其中,第一匹配子单元6031用于将所述ARP请求 报文的源MAC地址、源IP地址、入端口以及目的IP地址分别与所述流表项的源MAC地址、 源IP地址、入端口以及目的IP地址进行比较,若均一致,则确定所述报文信息与所述表项 信息匹配;第二匹配子单元6032,用于在所述ARP请求报文的源MAC地址以及源IP地址与 所述流表项的源MAC地址以及源IP地址一致,且所述流表项的入端口与接收所述ARP请求 报文的交换机端口一致时,确定所述报文信息与所述表项信息匹配;
[0118] 请参见图8,图6中的MAC地址获取单元604具体可以包括目的MAC获取子单元 6041或者网关MAC获取子单元6042,为示例方便,图8中同时示出目的MAC获取子单元6041 以及网关MAC获取子单元6042,其中:目的MAC获取子单元6041,用于获取匹配的表项信息 中的目的MAC地址;网关MAC获取子单元6042,用于获取网关的MAC地址作为所述目的MAC 地址。
[0119] 请参见图9,图6中的报文代答单元605具体可以包括:报文生成子单元6051以及 报文发送子单元6052,其中,报文生成子单元6051,用于生成ARP应答报文,所述ARP应答 报文的源MAC地址为所述流表项的目的MAC地址,所述ARP应答报文的目的MAC地址为所 述ARP请求报文的源MAC地址;报文发送子单元6052,用于向所述主机发送生成的ARP应 答报文。
[0120] 参见图10,所述报文接收单元601还可以包括接收子单元6011以及下发子单元 6012。其中:接收子单元6011,用于接收控制设备发送的ARP表项刷新报文,所述ARP表项 刷新报文为在控制设备接收的业务报文的报文信息与自身预存的主机信息不一致时,根据 查找到的对应主机信息生成的ARP表项刷新报文;下发子单元6012,用于将所述ARP表项 刷新报文下发至与所述主机信息对应的主机。
[0121] 本发明ARP应答代理装置的另一个实施例可以应用在SDN中的控制设备上。该装 置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为 例,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计 算机程序指令读取到内存中运行形成的。从硬件层面而言,为本发明ARP应答代理装置所 在设备的一种硬件结构图,为示例方便,图5中同时示出了 ARP应答代理装置所在交换机与 控制设备的硬件架构示意图。除了图5所示的CPU、内存、网络端口、以及非易失性存储器之 夕卜,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等; 从硬件结构上来讲该设备还可能是分布式的设备,可能包括多个接口卡,以便在硬件层面 进行报文处理的扩展。
[0122] 参见图11,为本发明ARP应答代理装置的另一实施例结构示意图,其从本质上说 该装置是一个逻辑装置。在本实施方式中,以软件实现为例,该ARP应答代理装置在逻辑层 面上可以包括:第二报文解析单元1101、第二信息匹配单元1102以及报文下发单元1103。 其中:
[0123] 第二报文解析单元1101,用于在监测到与交换机连接正常后接收到交换机上送的 业务报文,解析所述业务报文的报文信息;
[0124] 第二信息匹配单元1102,用于将所述业务报文的报文信息与自身预存的主机信息 进行匹配;
[0125] 报文下发单元1103,用于在所述业务报文的报文信息与自身预存的主机信息不匹 配时,通过所述交换机向主机下发ARP表项刷新报文。
[0126] 如图12所示,图11中的所述第二信息匹配单元1102具体可以包括地址比对子单 元11021以及匹配判断子单元11022。其中:地址比对子单元11021,用于将所述报文信息 的目的IP地址以及目的MAC地址与各主机的MAC地址以及IP地址进行比对;匹配判断子 单元11022,用于在报文信息的目的IP地址与主机信息中主机的IP地址一致,所述报文信 息的目的MAC地址与所述主机的IP地址对应的MAC地址不一致时,确定所述业务报文的报 文信息与自身预存的主机信息不匹配。
[0127] 如图13所示,图11中的所述报文下发单元1103具体可以包括刷新报文生成子单 元11031以及刷新报文下发子单元11032。其中:刷新报文生成子单元11031,获取所述主 机信息中与所述报文信息的目的IP地址对应的MAC地址,根据所述MAC地址生成所述ARP 表项刷新报文;刷新报文下发子单元11032,用于将所述ARP表项刷新报文通过所述交换机 下发至发送所述业务报文的主机,以使所述主机根据所述ARP表项刷新报文更新所述主机 保存的ARP表项。
[0128] 从以上各种方法和装置的实施方式中可以看出,本发明通过在检测到所述交换机 与控制设备断开连接时,根据接收的ARP请求报文判断其报文信息与流表项的表项信息是 否匹配,并在匹配时根据流表项中对应的目的MAC地址向所述主机发送ARP应答报文,从而 在交换机与控制设备断开连接时,由交换机代理控制设备答复ARP应答报文,以保证主机 之间的正常通信。
[0129] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
[0130] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1. 一种地址解析协议ARP应答代理方法,应用于软件定义网络SDN网络中的交换机,其 特征在于,所述方法包括: 接收主机发送的ARP请求报文; 若检测到所述交换机与控制设备断开连接,则解析所述ARP请求报文的报文信息; 判断所述报文信息与所述交换机预存的流表项的表项信息是否匹配; 若所述报文信息与所述表项信息匹配,获取目的介质访问控制MAC地址; 根据所述目的MAC地址向所述主机发送ARP应答报文。
2. 如权利要求1所述的方法,其特征在于,所述报文信息包括所述ARP请求报文的源 MAC地址、源IP地址、入端口以及目的IP地址,所述表项信息包括流表项的源MAC地址、目 的MAC、入端口、源IP地址以及目的IP地址; 所述判断报文信息与所述交换机预存的流表项的表项信息是否匹配具体为: 将所述ARP请求报文的源MAC地址、源IP地址、入端口以及目的IP地址分别与所述流 表项的源MAC地址、源IP地址、入端口以及目的IP地址进行比较,若均一致,则确定所述报 文信息与所述表项信息匹配; 所述获取目的MAC地址具体包括: 获取匹配的表项信息中的目的MAC地址。
3. 如权利要求1所述的方法,其特征在于,所述报文信息包括所述ARP请求报文的源 MAC地址以及源IP地址,所述表项信息包括流表项的源MAC地址、目的MAC、入端口以及源 IP地址; 所述判断报文信息与所述交换机预存的流表项的表项信息是否匹配具体为: 若所述ARP请求报文的源MAC地址以及源IP地址与所述流表项的源MAC地址以及源 IP地址一致,且所述流表项的入端口与接收所述ARP请求报文的交换机端口一致,则确定 所述报文信息与所述表项信息匹配; 所述获取目的MAC地址具体包括: 获取网关的MAC地址作为所述目的MAC地址。
4. 如权利要求2或3所述的方法,其特征在于,所述根据所述目的MAC地址向所述主机 发送ARP应答报文具体为: 生成ARP应答报文,所述ARP应答报文的源MAC地址为所述流表项的目的MAC地址,所 述ARP应答报文的目的MAC地址为所述ARP请求报文的源MAC地址; 向所述主机发送生成的ARP应答报文。
5. 如权利要求1所述的方法,其特征在于,所述方法还包括: 接收控制设备发送的ARP表项刷新报文,所述ARP表项刷新报文为在控制设备接收的 业务报文的报文信息与自身预存的主机信息不一致时,根据查找到的对应主机信息生成的 ARP表项刷新报文; 将所述ARP表项刷新报文下发至与所述主机信息对应的主机。
6. -种ARP应答代理方法,应用于SDN网络中的控制设备,其特征在于,所述方法包 括: 若在监测到与交换机连接正常后接收到交换机上送的业务报文,则解析所述业务报文 的报文信息; 将所述业务报文的报文信息与自身预存的主机信息进行匹配; 在所述业务报文的报文信息与自身预存的主机信息不匹配时,通过所述交换机向主机 下发ARP表项刷新报文。
7. 如权利要求6所述的方法,其特征在于,所述报文信息包括所述业务报文的目的IP 地址以及目的MAC地址,所述主机信息包括各主机的MAC地址以及IP地址,所述将业务报 文的报文信息与自身预存的主机信息进行匹配具体包括: 将所述报文信息的目的IP地址以及目的MAC地址与各主机的MAC地址以及IP地址进 行比对; 若报文信息的目的IP地址与主机信息中主机的IP地址一致,所述报文信息的目的MAC 地址与所述主机的IP地址对应的MAC地址不一致时,确定所述业务报文的报文信息与自身 预存的主机信息不匹配。
8. 如权利要求7所述的方法,其特征在于,所述通过所述交换机向主机下发ARP表项刷 新报文具体为: 获取所述主机信息中与所述报文信息的目的IP地址对应的MAC地址,根据所述MAC地 址生成所述ARP表项刷新报文; 将所述ARP表项刷新报文通过所述交换机下发至发送所述业务报文的主机,以使所述 主机根据所述ARP表项刷新报文更新所述主机保存的ARP表项。
9. 一种ARP应答代理装置,应用于SDN网络中的交换机,其特征在于,所述装置包括: 报文接收单元,用于接收主机发送的ARP请求报文; 第一报文解析单元,用于检测到所述交换机与控制设备断开连接时,解析所述ARP请 求报文的报文信息; 第一信息匹配单元,用于判断所述报文信息与所述交换机预存的流表项的表项信息是 否匹配; MAC地址获取单元,用于在所述报文信息与所述表项信息匹配时,获取目的MAC地址; 报文代答单元,用于根据所述目的MAC地址向所述主机发送ARP应答报文。
10. 如权利要求9所述的装置,其特征在于,所述报文信息包括所述ARP请求报文的源 MAC地址、源IP地址、入端口以及目的IP地址,所述表项信息包括流表项的源MAC地址、目 的MAC、入端口、源IP地址以及目的IP地址; 所述第一信息匹配单元具体包括: 第一匹配子单元,用于将所述ARP请求报文的源MAC地址、源IP地址、入端口以及目的 IP地址分别与所述流表项的源MAC地址、源IP地址、入端口以及目的IP地址进行比较,若 均一致,则确定所述报文信息与所述表项信息匹配; 所述MAC地址获取单元具体包括: 目的MAC获取子单元,用于获取匹配的表项信息中的目的MAC地址。
11. 如权利要求9所述的装置,其特征在于,所述报文信息包括所述ARP请求报文的源 MAC地址以及源IP地址,所述表项信息包括流表项的源MAC地址、目的MAC、入端口以及源 IP地址; 所述第一信息匹配单元具体包括: 第二匹配子单元,用于在所述ARP请求报文的源MAC地址以及源IP地址与所述流表项 的源MAC地址以及源IP地址一致,且所述流表项的入端口与接收所述ARP请求报文的交换 机端口 一致时,确定所述报文信息与所述表项信息匹配; 所述MAC地址获取单元具体包括: 网关MAC获取子单元,用于获取网关的MAC地址作为所述目的MAC地址。
12. 如权利要求10或11所述的装置,其特征在于,所述报文代答单元具体包括: 报文生成子单元,用于生成ARP应答报文,所述ARP应答报文的源MAC地址为所述流表 项的目的MAC地址,所述ARP应答报文的目的MAC地址为所述ARP请求报文的源MAC地址; 报文发送子单元,用于向所述主机发送生成的ARP应答报文。
13. 如权利要求9所述的装置,其特征在于,所述报文接收单元还包括: 接收子单元,用于接收控制设备发送的ARP表项刷新报文,所述ARP表项刷新报文为在 控制设备接收的业务报文的报文信息与自身预存的主机信息不一致时,根据查找到的对应 主机信息生成的ARP表项刷新报文; 下发子单元,用于将所述ARP表项刷新报文下发至与所述主机信息对应的主机。
14. 一种ARP应答代理装置,应用于SDN网络中的控制设备,其特征在于,所述装置包 括: 第二报文解析单元,用于在监测到与交换机连接正常后接收到交换机上送的业务报 文,解析所述业务报文的报文信息; 第二信息匹配单元,用于将所述业务报文的报文信息与自身预存的主机信息进行匹 配; 报文下发单元,用于在所述业务报文的报文信息与自身预存的主机信息不匹配时,通 过所述交换机向主机下发ARP表项刷新报文。
15. 如权利要求14所述的装置,其特征在于,所述报文信息包括所述业务报文的目的 IP地址以及目的MAC地址,所述主机信息包括各主机的MAC地址以及IP地址,所述第二信 息匹配单元具体包括: 地址比对子单元,用于将所述报文信息的目的IP地址以及目的MAC地址与各主机的 MAC地址以及IP地址进行比对; 匹配判断子单元,用于在报文信息的目的IP地址与主机信息中主机的IP地址一致,所 述报文信息的目的MAC地址与所述主机的IP地址对应的MAC地址不一致时,确定所述业务 报文的报文信息与自身预存的主机信息不匹配。
16. 如权利要求15所述的装置,其特征在于,所述报文下发单元具体包括: 刷新报文生成子单元,获取所述主机信息中与所述报文信息的目的IP地址对应的MAC 地址,根据所述MAC地址生成所述ARP表项刷新报文; 刷新报文下发子单元,用于将所述ARP表项刷新报文通过所述交换机下发至发送所述 业务报文的主机,以使所述主机根据所述ARP表项刷新报文更新所述主机保存的ARP表项。
【文档编号】H04L29/12GK104219340SQ201410498475
【公开日】2014年12月17日 申请日期:2014年9月25日 优先权日:2014年9月25日
【发明者】高庆光, 丁波 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1