CN104937896A - 地址解析协议消息的处理方法和转发器、控制器 - Google Patents

地址解析协议消息的处理方法和转发器、控制器 Download PDF

Info

Publication number
CN104937896A
CN104937896A CN201380002276.7A CN201380002276A CN104937896A CN 104937896 A CN104937896 A CN 104937896A CN 201380002276 A CN201380002276 A CN 201380002276A CN 104937896 A CN104937896 A CN 104937896A
Authority
CN
China
Prior art keywords
message
arp
rule
address
arp request
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.)
Granted
Application number
CN201380002276.7A
Other languages
English (en)
Other versions
CN104937896B (zh
Inventor
谭仕勇
蔡慧
倪慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HEZE SHUANGLONG METALLURG MACHINERY Co.,Ltd.
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810133792.8A priority Critical patent/CN108183976A/zh
Publication of CN104937896A publication Critical patent/CN104937896A/zh
Application granted granted Critical
Publication of CN104937896B publication Critical patent/CN104937896B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明公开了地址解析协议消息的处理方法和转发器、控制器。该方法包括:转发器接收控制器发来的对应ARP消息的流规则;转发器根据接收到的流规则构造ARP消息,并发送ARP消息;其中,流规则中包括:对应ARP消息的匹配规则和对应ARP消息的动作集。本发明能够实现与外部设备基于ARP机制的交互。

Description

说明书 地址解析协议消息的处理方法和转发器、 控制器 技术领域 本发明涉及通信技术领域, 尤其涉及地址解析协议(ARP, Address Resolution Protocol ) 消息的处理方法和转发器、 控制器。 背景技术
Openflow协议是软件定义网络 ( SDN , Software-Defined Network ) 中 的一种典型的技术。 Openflow 协议中的网元包括: 控制器 (Openflow Controller, OF Controller )和转发器( Openflow Switch, OF Switch )。 其中, 控制器负责根据报文特征, 确定该业务流的转发动作, 并将对应的流规则下 发给转发器; 转发器获取并存储该流规则, 对于后续符合该流规则的报文, 执行对应的动作, 从而实现报文的转发或处理; 所述流规则包括: 流匹配信 息和对应执行的处理动作集。转发器将所有流匹配信息及动作集存储并安装 到相应的流表中, 当用户报文到来时, 转发器执行流表匹配, 并根据流匹配 信息的匹配结果执行对应的动作, 对用户报文进行处理。
ARP是一个链路层协议, 在网络设备间实现 IP地址和介质访问控制地 址( MAC, Medium Access Control ) 的对应, 通过发送携带有目标 IP地址 的 ARP请求消息, 来获得携带有目的 MAC地址的地址解析协议响应消息, 以此使网络设备获得通信对端的 MAC地址。
但是现有技术中, 基于 Openflow 模型的转发器为二层交换机设备 ( Switch ), 二层交换机不具有处理 ARP消息的能力, 从而导致转发器无法 和与之连接的外部设备进行基于 ARP机制的交互。
发明内容 本发明实施例提供 ARP消息的处理方法和转发器、 控制器, 以解决现 有技术中基于 Openflow模型的转发器无法处理 ARP消息的问题。
为了解决上述技术问题, 本发明实施例公开了如下技术方案:
第一方面, 本发明提供了一种地址解析协议消息的处理方法, 包括: 转发器接收控制器发来的对应 ARP消息的流规则;
转发器根据接收到的流规则构造 ARP消息, 并发送 ARP消息; 其中, 流规则中包括: 对应 ARP消息的匹配规则和对应 ARP消息的动 作集。
在第一方面的第一种可能的实现方式中, 所述流规则包括 ARP响应流 规则, 在该 ARP响应流规则中:
所述对应 ARP的匹配规则包括如下信息: 消息类型为 ARP消息;以及, 请求地址为转发器端口绑定的 IP地址;
所述对应 ARP的动作集包括: 构造 ARP响应消息, 且所述 ARP响应 消息的介质访问控制 MAC地址为接收到的 ARP请求消息所请求的 IP地址 对应的 MAC地址;
相应的, 所述转发器根据接收到的流规则构造 ARP消息, 并发送 ARP 消息具体包括:
所述转发器接收到外部设备发来的 ARP请求消息; 将该 ARP请求消息 携带的信息与 ARP响应流规则中的匹配规则进行匹配, 如果匹配成功, 则 根据 ARP响应流规则中的动作集, 构造 ARP响应消息, 在该 ARP响应消 息中填写接收到的 ARP请求消息所请求的 IP地址对应的 MAC地址; 然后 通过 ARP请求报文的入端口转发 ARP响应消息。
在第一方面的第二种可能的实现方式中, 所述流规则包括第一 ARP请 求流规则, 该第一 ARP请求流规则中, 所述对应 ARP的匹配规则包括如下 信息: 报文类型为 IP报文; 目标 IP地址为预设 IP地址;
所述对应 ARP的动作集包括: 构造第一 ARP请求消息, 其中第一 ARP 请求消息中的目标 IP为预设 IP地址; 转发端口号为设定转发端口号或者所 有转发端口号;
相应的, 所述转发器根据接收到的流规则构造 ARP消息, 并发送 ARP 消息具体包括:
所述转发器接收到用户报文, 检测到缺少报文的目标 IP 地址对应的
MAC地址, 则将该用户报文的信息与所述第一 ARP请求流规则中的匹配规 则进行匹配, 如果匹配成功, 则根据第一 ARP请求流规则中的动作集, 构 造第一 ARP请求消息,其中第一 ARP请求消息中的目标 IP地址为所述预设 IP地址,并通过设定转发端口或者所有转发端口发送该第一 ARP请求消息。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实 现方式中, 所述第一 ARP请求流规则中, 所述对应 ARP的匹配规则还包括 如下信息: 掩码为第一掩码值;
相应的, 所述将该用户报文的信息与所述第一 ARP请求流规则中的匹 配规则进行匹配具体包括:
判断用户报文是否为 IP报文, 如果是, 则判断用户报文中的目标 IP地 址与第一掩码值进行预订运算后的结果是否与所述预设 IP地址与第一掩码 值进行预订运算后的结果相同, 如果相同, 则认为匹配成功。
结合第一方面的第二种可能的实现方式或第一方面的第三种可能的实 现方式,在第一方面的第四种可能的实现方式中, 所述流规则包括第二 ARP 请求流规则, 在该第二 ARP请求流规则中:
所述对应 ARP的匹配规则包括如下信息: 文类型为缺少 IP地址对应 的 MAC地址; 所述对应 ARP的动作集包括: 转发给控制器;
相应的, 在所述将该用户报文的信息与所述第一 ARP请求流规则中的 匹配规则进行匹配, 并且, 匹配失败后, 进一步包括:
所述转发器将接收到的用户报文的信息与第二 ARP请求流规则中的匹 配规则进行匹配, 如果匹配成功, 则根据第二 ARP请求流规则中的动作集, 将用户报文转发给控制器; 并接收控制器下发的第三 ARP请求流规则, 根 据该第三 ARP请求流规则构造第二 ARP请求消息, 并发送该第二 ARP请 求消息, 其中, 在该第三 ARP请求流规则中:
所述对应 ARP的匹配规则包括如下信息: 匹配原因值为缺少第一 IP地 址对应的 MAC地址;报文类型为 IP报文; 目标 IP地址为所述第一 IP地址; 所述对应 ARP的动作集包括: 构造第二 ARP请求消息, 其中第二 ARP 请求消息中的目标 IP为所述第一 IP地址; 转发端口号为设定转发端口号或 者所有转发端口号。
结合第一方面的第二种可能的实现方式或第一方面的第三种可能的实 现方式或第一方面的第四种可能的实现方式,在第一方面的第五种可能的实 现方式中, 在所述发送 ARP请求消息之后, 进一步包括:
所述转发器接收外部设备发来的 ARP响应消息, 根据该 ARP响应消息 构建 ARP封装流规则; 接收用户报文所在连接上的数据报文, 将该数据报 文的信息与 ARP封装流规则中的匹配规则进行匹配, 如果匹配成功, 则根 据 ARP封装流规则中的动作集, 将 ARP响应消息的目标 MAC地址封装在 该数据报文中, 然后发送封装的数据报文; 其中, 所述 ARP封装流规则中, 对应 ARP的匹配规则包括如下信息: 报文类型为 IP报文; 目标 IP地址为所 述用户 4艮文中的目标 IP地址;
对应 ARP的动作集包括: 封装 文的目的 MAC地址; 目的 MAC地址 为 ARP响应消息的目标 MAC地址; 转发 文; 转发端口号为 ARP响应消 息的入端口号。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二 种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四 种可能的实现方式, 在第一方面的第六种可能的实现方式中, 所述转发器接 收控制器发来的对应 ARP消息的流规则, 具体包括:
所述转发器接收控制器发来的携带流规则的一条 Openflow消息, 其中, 所述一条 Openflow消息中携带多条流规则。
第二方面, 本发明提供了一种转发器, 包括:
接收单元, 用于接收控制器发来的对应 ARP消息的流规则, 并发送给 ARP处理单元;
ARP处理单元, 用于根据接收到的流规则构造 ARP消息, 并发送 ARP 消息; 其中, 所述流规则中包括: 对应 ARP消息的匹配规则和对应 ARP消 息的动作集。
在第二方面的第一种可能的实现方式中, 所述 ARP处理单元包括第一 处理子单元, 其中,
所述接收单元, 进一步用于接收外部设备发来的 ARP请求消息; 将该
ARP请求消息发送给第一处理子单元;
第一处理子单元, 用于解析出接收到的流规则中包括 ARP响应流规则; 在接收到 ARP请求消息后, 将该 ARP请求消息中携带的信息与 ARP响应 流规则中的匹配规则进行匹配, 如果匹配成功, 则根据 ARP响应流规则中 的动作集, 构造 ARP响应消息, 在该 ARP响应消息中填写接收到的 ARP 请求消息所请求的 IP地址对应的 MAC地址; 然后通过 ARP请求报文的入 端口转发 ARP响应消息;
其中, 所述 ARP响应流规则中, 所述对应 ARP的匹配规则包括如下信 息: 消息类型为 ARP消息; 以及, 请求地址为转发器端口绑定的 IP地址; 所述对应 ARP的动作集包括: 构造 ARP响应消息, 且所述 ARP响应消息 的介质访问控制 MAC地址为接收到的 ARP请求消息所请求的 IP地址对应 的 MAC地址; 以及, 转发 ARP响应消息, 且转发端口号为 ARP请求报文 的入端口号。
在第二方面的第二种可能的实现方式中, 所述 ARP处理单元包括第二 处理子单元, 其中,
所述接收单元, 进一步用于接收用户报文, 并转发给所述第二处理子单 元;
所述第二处理子单元, 用于解析出接收到的流规则中包括第一 ARP请 求流规则;在接收到用户报文后,检测到缺少报文的目标 IP地址对应的 MAC 地址, 则将该用户报文的信息与所述第一 ARP请求流规则中的匹配规则进 行匹配, 如果匹配成功, 则根据第一 ARP请求流规则中的动作集, 构造第 一 ARP请求消息,其中第一 ARP请求消息中的目标 IP为所述预设 IP地址, 并通过设定转发端口或者所有转发端口发送该第一 ARP请求消息;
其中, 所述第一 ARP请求流规则中, 所述对应 ARP的匹配规则包括如 下信息: ^艮文类型为 IP 文, 以及目标 IP地址为预设 IP地址; 所述对应 ARP的动作集包括: 构造第一 ARP请求消息, 其中第一 ARP请求消息中的 目标 IP为预设 IP地址; 以及转发端口号为设定转发端口号或者所有转发端 口号。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实 现方式中, 所述第一 ARP请求流规则中, 所述对应 ARP的匹配规则还包括 如下信息: 掩码为第一掩码值;
相应的, 所述将该用户报文的信息与所述第一 ARP请求流规则中的匹 配规则进行匹配具体包括:
判断用户报文是否为 IP报文, 如果是, 则判断用户报文中的目标 IP地 址与第一掩码值进行预订运算后的结果是否与所述预设 IP地址与第一掩码 值进行预订运算后的结果相同, 如果相同, 则认为匹配成功。
结合第二方面的第二种可能的实现方式或第二方面的第三种可能的实 现方式, 在第二方面的第四种可能的实现方式中, 所述第二处理子单元, 进 一步用于解析出所述流规则中包括第二 ARP请求流规则, 在根据用户报文 匹配所述第一 ARP请求流规则中的匹配规则, 并且, 匹配失败后, 进一步 将接收到的用户报文的信息与第二 ARP请求流规则中的匹配规则进行匹配, 如果匹配成功, 则根据第二 ARP请求流规则中的动作集, 将用户报文转发 给控制器;并接收控制器下发的包含所述用户报文中目标 IP地址的第三 ARP 请求流规则, 根据该第三 ARP请求流规则构造第二 ARP请求消息, 并发送 该第二 ARP请求消息;
其中, 所述第二 ARP请求流规则中, 所述对应 ARP的匹配规则包括如 下信息: 文类型为缺少 IP地址对应的 MAC地址; 所述对应 ARP的动作 集包括: 转发给控制器。
结合第二方面的第二种可能的实现方式或第二方面的第三种可能的实 现方式或第二方面的第四种可能的实现方式,在第二方面的第五种可能的实 现方式中, 还包括: 构造单元, 其中,
接收单元, 还用于接收外部设备发来的 ARP响应消息, 发送给构造单 元;以及接收用户报文所在连接上的数据报文,发送给所述第二处理子单元; 构造单元, 用于根据接收到的 ARP响应消息构建 ARP封装流规则; 所述第二处理子单元,还用于将接收到的数据报文的信息与构造单元所 构造的 ARP封装流规则中的匹配规则进行匹配, 匹配成功后, 根据 ARP封 装流规则中的动作集,将 ARP响应消息的目标 MAC地址封装在该数据报文 中, 然后发送封装的数据报文; 其中, 所述 ARP封装流规则中, 对应 ARP 的匹配规则包括如下信息: 报文类型为 IP报文; 目标 IP地址为所述用户报 文中的目标 IP地址;
对应 ARP的动作集包括:
封装 文的目的 MAC地址; 目的 MAC地址为 ARP响应消息的目标
MAC地址; 转发 文; 转发端口号为 ARP响应消息的入端口号。
第三方面, 本发明提供了一种控制器, 包括:
创建单元, 用于创建对应 ARP的流规则, 将该流规则输出至发送单元; 其中, 所述流规则中包括: 对应 ARP的匹配规则和对应 ARP的动作集; 发送单元, 用于将接收到的流规则发送给转发器。
在第三方面的第一种可能的实现方式中, 所述创建单元, 具体用于创建 ARP响应流规则, 该 ARP响应流规则中:
所述对应 ARP的匹配规则包括如下信息: 消息类型为 ARP消息;以及, 请求地址为转发器端口绑定的 IP地址;
所述对应 ARP的动作集包括: 构造 ARP响应消息, 且所述 ARP响应 消息的介质访问控制 MAC地址为接收到的 ARP请求消息所请求的 IP地址 对应的 MAC地址; 以及, 转发 ARP响应消息, 且转发端口号为 ARP请求 报文的入端口号。
在第三方面的第二种可能的实现方式中, 所述创建单元, 具体用于创建 第一 ARP请求流规则, 该第一 ARP请求流规则中:
所述对应 ARP的匹配规则包括如下信息: 报文类型为 IP报文; 目标 IP 地址为预设 IP地址;
所述对应 ARP的动作集包括: 构造第一 ARP请求消息, 其中第一 ARP 请求消息中的目标 IP为预设 IP地址; 转发端口号为设定转发端口号或者所 有转发端口号。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实 现方式中, 所述创建单元, 还用于创建第二 ARP请求流规则, 该第二 ARP 请求流规则中:
所述对应 ARP的匹配规则包括如下信息: 文类型为缺少 IP地址对应 的 MAC地址;
所述对应 ARP的动作集包括: 转发给控制器。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实 现方式中, 所述创建单元, 还用于接收转发器根据所述第二 ARP请求流规 则发来的流表请求,创建第三 ARP请求流规则,该第三 ARP请求流规则中: 所述对应 ARP的匹配规则包括如下信息: 匹配原因值为缺少第一 IP地 址对应的 MAC地址; ^艮文类型为 IP 文; 目标 IP地址为所述第一 IP地址; 所述对应 ARP的动作集包括: 构造第二 ARP请求消息, 其中第二 ARP 请求消息中的目标 IP为所述第一 IP地址; 转发端口号为设定转发端口号或 者所有转发端口号。
本发明提出的 ARP消息的处理方法和转发器、 控制器, 能够由转发器 接收控制器发来的对应 ARP消息的流规则, 该流规则中包括对应 ARP消息 的匹配规则和对应 ARP消息的动作集,转发器根据接收到的流规则构造 ARP 消息, 并发送 ARP消息, 实现了与外部设备基于 ARP机制的交互。 附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实 施例或现有技术描述中所需要使用的附图作一筒单地介绍, 显而易见地, 下 面描述中的附图是本发明的一些实施例, 对于本领域普通技术人员来讲, 在 不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1是本发明实施例一中为实现 ARP消息的处理转发器所执行的处理 流程图;
图 2是本发明实施例 1-1 中为实现 ARP响应消息的处理转发器所执行 的处理流程图;
图 3是本发明实施例 1-2中针对流规则 2实现 ARP请求消息的处理转 发器所执行的处理流程图;
图 4是本发明实施例 1-3中针对流规则 2~4实现 ARP请求消息的处理 转发器所执行的处理流程图;
图 5是本发明实施例二中为实现 ARP消息的处理控制器所执行的处理 流程图;
图 6是本发明实施例三中控制器和转发器配合实现 ARP响应消息的一 种处理流程图;
图 7是本发明实施例四中控制器和转发器配合实现 ARP响应消息的另 一种处理流程图; 图 8是本发明实施例五中针对流规则 2控制器和转发器配合实现 ARP 请求消息的处理流程图;
图 9是本发明实施例六中针对流规则 2~4控制器和转发器配合实现 ARP 请求消息的处理流程图;
图 10是本发明实施例七中控制器的一种结构示意图;
图 11是本发明实施例七中控制器的另一种结构示意图;
图 12是本发明实施例八中转发器的一种结构示意图;
图 13是本发明实施例八中转发器的另一种结构示意图;
图 14是本发明实施例九中转发器的一种结构示意图;
图 15是本发明实施例十中控制器的一种结构示意图。
具体实施方式
为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发 明实施例中的附图, 对本发明实施例中的技术方案进行清楚地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于本发明 中的实施例 , 本领域普通技术人员在没有做出创造性劳动前提下所获得的所 有其他实施例, 都属于本发明保护的范围。
实施例一:
本实施例提出了一种在转发器侧实现 ARP消息的处理方法, 参见图 1 , 该方法包括:
步骤 101: 转发器接收控制器发来的对应 ARP消息的流规则, 其中, 每 一个流规则中包括: 对应 ARP消息的匹配规则和对应 ARP消息的动作集。
步骤 102: 转发器根据接收到的流规则构造 ARP消息, 并发送 ARP消 本发明实施例提出的 ARP消息处理方法, 能够由转发器接收控制器发 来的对应 ARP消息的流规则, 该流规则中包括对应 ARP消息的匹配规则和 对应 ARP消息的动作集, 转发器根据接收到的流规则构造 ARP消息, 并发 送 ARP消息, 实现了与外部设备基于 ARP机制的交互。
针对转发器接收控制器发来的不同的流规则, 转发器会分别执行对应的 处理过程, 为便于描述, 下面分为 4个实施例来分别详细说明。
实施例 1-1:
本实施例说明当转发器接收的流规则包括下述的流规则 1即 ARP响应 流规则时, 转发器的处理。
流规则 1: ARP响应流规则。
在该 ARP响应流规则中, 对应 ARP的匹配规则包括如下信息: 消息类 型为 ARP消息; 以及, 请求地址为转发器端口绑定的 IP地址。
对应 ARP的动作集包括: 构造 ARP响应消息, 且 ARP响应消息的介 质访问控制 MAC地址为接收到的 ARP请求消息所请求的 IP地址对应的 MAC地址。 其中, 可选地, ARP响应消息的介质访问控制 MAC地址填写 为接收到的 ARP请求消息所请求的 IP地址对应的 MAC地址。对应 ARP的 动作集并不限于上述的内容, 比如, 在一个可行的实施例中, 对应 ARP的 动作集还可以包括: 转发 ARP响应消息, 且转发端口号为 ARP请求报文的 入端口号。
该 ARP响应流规则用于指示转发器如何处理 ARP响应消息, 以便在外 部设备将转发器作为 ARP请求消息的目的接收方时,该转发器能够构造 ARP 响应消息, 从而将自身的 MAC地址发送给外部设备。
步骤 102具体包括:
转发器接收到外部设备发来的 ARP请求消息; 将该 ARP请求消息携带 的信息与 ARP响应流规则中的匹配规则进行匹配, 如果匹配成功, 则根据 ARP响应流规则中的动作集,构造 ARP响应消息,在该 ARP响应消息中填 写接收到的 ARP请求消息所请求的 IP地址对应的 MAC地址;然后通过 ARP 请求报文的入端口转发 ARP响应消息。
参见图 2, 该转发器的处理包括: 步骤 201: 转发器接收到控制器下发的流规则 1即 ARP响应流规则。 步骤 202: 转发器接收到外部设备发来的 ARP请求消息。
步骤 203: 转发器将该 ARP请求消息携带的信息与 ARP响应流规则中 的匹配规则进行匹配, 如果匹配成功, 执行步骤 204, 如果匹配失败, 结束 当前流程。
步骤 204: 转发器根据 ARP响应流规则中的动作集, 构造 ARP响应消 息, 在该 ARP响应消息中填写接收到的 ARP请求消息所请求的 IP地址对 应的 MAC地址; 然后通过 ARP请求报文的入端口转发 ARP响应消息。
通过本发明实施例提供的一种地址解析协议消息的处理方法, 能够处理 外部设备发来的 ARP请求消息, 根据 ARP响应流规则构建 ARP响应消息, 将该 ARP响应消息发送给外部设备,实现与外部设备基于 ARP机制的交互。
实施例 1-2:
本实施例说明当转发器接收的流规则包括下述流规则 2即第一 ARP请 求流规则时, 转发器的处理。
流规则 2: 第一 ARP请求流规则。
该第一 ARP请求流规则中, 对应 ARP的匹配规则包括如下信息: 报文 类型为 IP 4艮文; 目标 IP地址为预设 IP地址。 其中, 该对应 ARP的匹配规 则并不限于上述信息, 可选地, 该对应 ARP的匹配规则还包括如下信息: 掩码为掩码值。
对应 ARP的动作集包括: 构造第一 ARP请求消息, 其中第一 ARP请 求消息中的目标 IP为预设 IP地址; 转发端口号为设定转发端口号或者所有 转发端口号。
可选地, 在该第一 ARP请求流规则中, 对应 ARP的匹配规则中还可以 进一步包括: 匹配原因值为缺少 IP地址对应的 MAC地址。
该第一 ARP请求流规则用于在转发器需要向外部设备发送 ARP请求消 息, 从而得到外部设备的 MAC地址时, 指示转发器构造 ARP请求消息。 步骤 102具体包括:
转发器接收到用户报文,检测到缺少报文的目标 IP地址对应的 MAC地 址, 则将该用户报文的信息与该第一 ARP请求流规则中的匹配规则进行匹 配,如果匹配成功,则根据第一 ARP请求流规则中的动作集,构造第一 ARP 请求消息, 其中第一 ARP请求消息中的目标 IP为该预设 IP地址, 并通过 设定转发端口或者所有转发端口发送该第一 ARP请求消息。
参见图 3, 该转发器的处理包括:
步骤 301:转发器接收到控制器下发的流规则 2即第一 ARP请求流规则。 步骤 302: 转发器接收到外部设备发来的用户报文。
步骤 303:转发器检测到该用户报文缺少报文的目标 IP地址对应的 MAC 地址。
步骤 304:转发器将该用户报文的信息与第一 ARP请求流规则中的匹配 规则进行匹配, 如果匹配成功, 则执行步骤 305, 如果匹配失败, 结束当前 流程。
可选的, 在本步骤中, 当该第一 ARP请求流规则中: 对应 ARP的匹配 规则还包括如下信息: 掩码为第一掩码值时, 转发器将该用户报文的信息与 第一 ARP请求流规则中的匹配规则进行匹配, 具体包括: 判断用户报文是 否为 IP报文, 如果是, 则判断用户报文中的目标 IP地址与第一掩码值进行 预订运算后的结果是否与匹配规则中的预设 IP地址与第一掩码值进行预订 运算后的结果相同, 如果相同, 则认为匹配成功。
步骤 305: 转发器根据第一 ARP请求流规则中的动作集, 构造 ARP请 求消息, 其中 ARP请求消息中的目标 IP地址为匹配规则中的预设 IP地址, 并通过设定转发端口或者所有转发端口发送该 ARP请求消息。
通过本发明实施例提供的一种地址解析协议消息的处理方法, 能够处理 外部设备发来的用户报文, 根据第一 ARP请求流规则构建 ARP请求消息, 将该 ARP请求消息发送给外部设备,实现与外部设备基于 ARP机制的交互。 实施例 1-3:
本实施例说明当转发器接收的流规则同时包括流规则 2即第一 ARP请 求流规则、 流规则 3即第二 ARP请求流规则时, 转发器的处理。
流规则 3: 第二 ARP请求流规则。
在该第二 ARP请求流规则中, 对应 ARP的匹配规则包括如下信息: 报 文类型为缺少 IP地址对应的 MAC地址; 对应 ARP的动作集包括: 转发给 控制器。
流规则 4: 第三 ARP请求流规则。
在该第三 ARP请求流规则中, 对应 ARP的匹配规则包括如下信息: 匹 配原因值为缺少第一 IP地址对应的 MAC地址; 报文类型为 IP报文; 目标 IP地址为该第一 IP地址。 对应 ARP的动作集包括: 构造第二 ARP请求消 息,其中第二 ARP请求消息中的目标 IP为该第一 IP地址; 转发端口号为设 定转发端口号或者所有转发端口号。
则在上述实施例中, 在将该用户报文的信息与第一 ARP请求流规则中 的匹配规则进行匹配, 并且, 匹配失败后, 进一步包括:
转发器将接收到的用户报文的信息与第二 ARP请求流规则中的匹配规 则进行匹配, 如果匹配成功, 则根据第二 ARP请求流规则中的动作集, 将 用户报文转发给控制器; 并接收控制器下发的第三 ARP请求流规则, 根据 该第三 ARP请求流规则构造第二 ARP请求消息, 并发送该第二 ARP请求 消息。
参见图 4, 该转发器处理包括:
步骤 401:转发器接收到控制器下发的第一 ARP请求流规则和第二 ARP 请求流规则。
本步骤中,对于第一 ARP请求流规则的具体描述与上述实施例 1-2中对 该流规则的描述完全相同。
步骤 402: 转发器接收到外部设备发来的用户报文。 步骤 403: 转发器检测到该用户报文缺少报文的目的 IP对应的 MAC地 址。
步骤 404:转发器将该用户报文的信息与第一 ARP请求流规则中的匹配 规则进行匹配, 如果匹配成功, 则执行步骤 405, 如果匹配失败, 执行步骤 406。
步骤 405: 转发器根据第一 ARP请求流规则中的动作集, 构造 ARP请 求消息, 其中 ARP消息中的目标 IP地址为预设 IP地址, 并通过设定转发端 口或者所有转发端口发送该 ARP请求消息, 结束当前流程。
步骤 406:转发器将接收到的用户报文的信息与第二 ARP请求流规则中 的匹配规则进行匹配, 如果匹配成功, 则根据第二 ARP请求流规则中的动 作集, 将用户报文转发给控制器。
其中, 转发器根据第二 ARP请求流规则向控制器发送流表请求, 该请 求中携带当前需请求的目标 IP地址, 以使控制器查找到与流表请求中携带 的当前需请求的目标 IP地址对应的 MAC地址后, 创建第三 ARP请求流规 则, 然后发送给转发器, 以保证转发器能够构造所需的 ARP请求消息。
步骤 407: 转发器接收控制器下发的第三 ARP请求流规则,根据该第三 ARP请求流规则构造 ARP请求消息, 并发送该 ARP请求消息。
可选的, 在上述实施例 1-2和实施例 1-3中, 在转发器发送了 ARP请求 消息之后, 还可以进一步由转发器创建 ARP封装流规则, 以保证转发器后 续接收到相同连接上的数据报文后, 能够根据该 ARP封装流规则直接在数 据艮文中封装对应的 MAC地址, 具体实现包括:
转发器接收外部设备发来的 ARP响应消息, 根据该 ARP响应消息构建 ARP封装流规则;接收用户报文所在连接上的数据报文,将该数据报文的信 息与 ARP封装流规则中的匹配规则进行匹配,如果匹配成功后,则根据 ARP 封装流规则中的动作集,将 ARP响应消息的目标 MAC地址封装在该数据报 文中, 然后发送封装的数据报文; 其中, 转发器创建的 ARP封装流规则中,对应 ARP的匹配规则包括如下信息: 报文类型为 IP报文; 目标 IP地址为所述用户报文中的目标 IP地址; 其中, 该对应 ARP的匹配规则并不限于上述信息, 可选地, 该对应 ARP的匹配规 则还包括如下信息: 掩码为掩码值。
对应 ARP的动作集包括: 封装 文的目的 MAC地址; 目的 MAC地址 为 ARP响应消息的目标 MAC地址; 转发 文; 转发端口号为 ARP响应消 息的入端口号。
通过本发明实施例提供的一种地址解析协议消息的处理方法, 能够处理 外部设备发来的用户报文, 在根据该用户报文的信息与第一 ARP请求流规 则中的匹配规则匹配不成功的情况下, 可以与第二 ARP请求流规则中的匹 配规则进行匹配,将该用户报文发送给控制器,根据控制器下发的第三 ARP 请求流规则构造 ARP请求消息, 将该 ARP请求消息发送给外部设备, 实现 与外部设备基于 ARP机制的交互。
需要说明的是: 本发明实施例一中的所有转发端口号为特定的端口号标 识, 用于指代该转发器的所有端口。 转发器接收控制器发来的对应 ARP消 息的流规则, 具体包括: 转发器接收控制器发来的携带流规则的一条 Openflow消息, 其中, 该一条 Openflow消息中携带多条流规则; 或者, 转 发器接收控制器发来的携带流规则的多条 Openflow 消息, 其中, 该多条 Openflow消息中携带多条流规则。 控制器在一条 Openflow消息中携带多条 流规则可以节省网络资源。
实施例二:
本实施例提出了一种在控制器侧实现 ARP消息的处理方法, 参见图 5, 该方法包括:
步骤 501:控制器创建对应 ARP的流规则;其中,每一个流规则中包括: 对应 ARP的匹配规则和对应 ARP的动作集。
步骤 502: 控制器将创建的流规则发送给转发器。 上述图 5所示流程中, 由于创建的每一个流规则中包括对应 ARP的匹 配规则和对应 ARP的动作集, 这样, 则可以保证后续转发器根据相应的匹 配规则匹配成功后, 按照相应的动作集执行处理, 则可以完成对 ARP消息 的处理。
在上述步骤 501中,控制器可以根据 ARP的特点,创建对应于各种 ARP 消息处理的流规则, 比如可以创建在上述实施例一的任意一个或多个流规 贝 |J。 该流规则包括: 流规则 1: ARP响应流规则、 流规则 2: 第一 ARP请求 流规则、 流规则 3: 第二 ARP请求流规则、 流规则 4: 第三 ARP请求流规 则。
当然, 为了保证控制器能够创建上述流规则 1 , 控制器需要预先获取转 发器的各种信息, 以便创建流规则中的匹配规则和动作集。 因此, 在本实施 例二的一种实现方式中, 在上述步骤 501之前, 进一步包括: 步骤 500、 控 制器获取转发器的的转发器端口、 端口的 IP地址和 MAC地址的对应关系。
该步骤 500有多种实现方式, 比如:
方式一、 控制器根据预先的静态配置或者从第三方设备处, 直接获取转 发器的转发器端口、 端口的 IP地址和 MAC地址的对应关系;
方式二、 控制器根据预先的静态配置或者从第三方设备处, 获取第一信 息, 该第一信息包括: 转发器标识, 转发器端口标识及对应的端口 IP地址; 并且, 接收所述转发器上报的第二信息, 该第二信息包括: 所述转发器端口 标识及对应的 MAC地址; 根据所述第一信息和第二信息, 获取所述转发器 标识, 转发器端口标识、 端口的 IP地址和 MAC地址的对应关系。
可选的, 当控制器创建的流规则包括该流规则 4即第三 ARP请求流规 则时, 在上述图 5所示流程中, 在步骤 502之后, 还会包括如下步骤: 步骤 503: 控制器接收转发器根据第二 ARP请求流规则发来的流表请求, 该请求 中携带当前需请求的目标 IP地址; 步骤 504: 控制器如果查找到与流表请求 中携带的当前需请求的目标 IP地址对应的 MAC地址,则创建上述第三 ARP 请求流规则, 然后发送给转发器, 以保证转发器能够构造所需的 ARP请求 消息。
通过本发明实施例提供的一种 ARP消息的处理方法, 能够由控制器根 据 ARP消息的特点, 构建流规则, 所构建的流规则中包括对应 ARP的匹配 规则和对应 ARP的动作集, 以使转化器实现与外部设备基于 ARP机制的交 互。
需要说明的是, 本发明实施例二中的所有转发端口号为特定的端口号标 识, 用于指代该转发器的所有端口。 在上述步骤 501中, 如果控制器创建了 多条流规则, 那么在上述步骤 502中, 控制器可以将创建的多条流规则携带 在一条 Openflow消息中发送给转发器; 或者, 控制器也可以将创建的所述 多条流规分别携带在多条 Openflow消息中发送给转发器。 通过这种方法可 以节省网络资源。
为了更加便于理解控制器和转发器配合执行的完成业务过程, 下面再分 4个实施例, 描述控制器和转发器的配合过程。
实施例三:
本实施例针对上述流规则 1即 ARP响应流规则, 描述控制器和转发器 的完整配合过程, 以实现由转发器构建并发送 ARP响应消息。
另外, 本实施例采用的是上述实施例二中描述的步骤 500的方式二来实 现。 参见图 6, 控制器和转发器的配合过程包括以下步骤:
步骤 601: 控制器获取转发器端口和 IP地址的对应关系。
这里, 控制器可以通过预先的静态配置获取转发器端口和 IP地址的对 应关系,也可以从第三方***比如外置网关或运维***处获取转发器端口和
IP地址的对应关系。
本步骤中, 控制器可以保存如下信息:
[ 转发器标识 转发器端口号 IP地址]
上述转发器标识用来标识转发器,上述转发器端口号用来标识转发器端 口, 上述转发器标识可以为转发器 ID号或者转发器名称, 或控制器可识别 转发器的任何标志。
步骤 602: 控制器获取转发器端口和 MAC地址的对应关系。
这里, 可选地, 转发器端口和 MAC地址的对应关系可以由转发器上 4艮 给控制器。
本步骤中, 控制器可以保存如下信息:
[ 转发器标识 转发器端口号 MAC地址]
上述转发器标识用来标识转发器,上述转发器端口号用来标识转发器端 口, 上述转发器标识可以为转发器 ID号或者转发器名称, 或控制器可识别 转发器的任何标志。
步骤 603: 控制器获取转发器端口和 IP地址、 MAC地址的对应关系。 本步骤中, 控制器可以保存如下信息:
[ 转发器标识 转发器端口号 IP地址 MAC地址]
控制器通过转发器标识和转发器端口标识, 获取转发器端口和 IP地址、 MAC地址的对应关系
上述转发器标识用来标识转发器,上述转发器端口号用来标识转发器端 口, 上述转发器标识可以为转发器 ID号或者转发器名称, 或控制器可识别 转发器的任何标志。
步骤 604: 控制器构建流规则 1即 ARP响应流规则, 并向转发器下发该 流规则。
该 ARP响应流规则用于后续指示转发器如何处理 ARP响应消息, 以便 在外部设备将转发器作为 ARP请求消息的目的接收方时, 该转发器能够构 造 ARP响应消息, 从而将自身的 MAC地址发送给外部设备。
具体的, 在该 ARP响应流规则中:
对应 ARP的匹配规则包括但不限于: 1 ) ARP消息类型; 2 )请求地址 为转发器端口绑定的 IP地址; 对应 ARP的动作集包括但不限于: 1 )构造 ARP响应消息, 且消息的 MAC地址填写为接收到的 ARP请求消息所请求的 IP地址对应的 MAC地址; 2 )转发 ARP响应消息, 且转发端口号为 ARP请求报文的入端口号。
该 ARP响应流规则的一种描述实现方法如下:
<流规则安装消息 > := {流匹配规则, <流表处理动作 >},
流表匹配规则如下:
OXM_OF_ETH_TYPE = 0x0806
OXM_OF_ARP_THA = 转发器端口绑定的 IP地址
对应的动作集如下:
OFPAT_CONSTRUCT_ARP = XXXX (构造 ARP消息, 消息中的目 标 MAC地址填写 ARP请求消息中请求的 IP地址对应的 Mac地址 )
OFPAT—OUTPUT = XXXX (包含的端口号为 ARP请求报文的入端口 号)
本步骤 604中, 在向转发器下发该流规则 1时, 在转发器具有多个端口 的场景下, 针对每一个端口, 均创建一个对应该端口的流规则 1 , 控制器可 以向转发器下发多个上述流规则 1 ,多个规则可以在一条 Openflow消息中发 送, 也可以在多条 Openflow消息中发送。
步骤 605: 转发器接收并安装 ARP响应流规则。
步骤 606: 转发器接收到外部设备发送的 ARP请求消息,用以请求转发 器端口的 MAC地址。
步骤 607: 转发器将该 ARP请求消息携带的信息与 ARP响应流规则中 的匹配规则进行匹配, 匹配成功后, 根据 ARP响应流规则中的动作集, 构 造 ARP响应消息, 在该 ARP响应消息中填写接收到的 ARP请求消息所请 求的 IP地址对应的 MAC地址。
这里, ARP请求消息时 ARP消息类型, 并且, 请求的地址就是转发器 端口绑定的 IP地址, 因此,在与 ARP响应流规则中对应 ARP的匹配规则进 行匹配后, 能够匹配成功。
步骤 608: 转发器根据 ARP响应流规则中的动作集, 通过 ARP请求报 文的入端口号将 ARP响应消息发送给外部设备。
通过本发明实施例提供的一种地址解析协议消息的处理方法, 能够处理 外部设备发来的 ARP请求消息, 根据 ARP响应流规则构建 ARP响应消息, 将该 ARP响应消息发送给外部设备,实现与外部设备基于 ARP机制的交互。
实施例四:
本实施例仍然针对上述流规则 1即 ARP响应流规则, 描述控制器和转 发器的完整配合过程, 以实现由转发器构建并发送 ARP响应消息。
与上述实施例三的区别是: 本实施例采用的是上述实施例二中描述的步 骤 500的方式一来实现。 参见图 7, 控制器和转发器的配合过程包括以下步 骤:
步骤 701: 控制器根据预先的静态配置或者从第三方设备处, 直接获取 转发器的转发器端口、 端口的 IP地址和 MAC地址的对应关系。
这里, 第三方***可以是外置网关或运维***。
本步骤中, 控制器中可以保存如下信息:
[ 转发器标识 转发器端口号 IP地址 MAC地址]
上述配置文件中的转发器标识用来标识转发器, 上述转发器端口号用来 标识转发器端口, 上述配置文件中的转发器标识可以为 ID号或者转发器名 称, 或控制器可识别转发器的任何标志。
步骤 702~步骤 706与上述步骤 604~步骤 608的所有描述均相同。
实施例五:
本实施例针对上述流规则 2即第一 ARP请求流规则, 描述控制器和转 发器的完整配合过程,以实现由转发器构建并发送 ARP请求消息。参见图 8, 该过程包括以下步骤:
步骤 801:控制器通知转发器,缺少 IP地址对应的 MAC地址的状态下, 匹配构造 ARP流表。
本步骤为可选步骤。 可以由控制器通过一条通知消息来通知转发器。 当然, 本步骤也可以被替换为: 转发器进行默认配置, 在缺少 IP地址 对应的 MAC地址的状态下, 匹配构造 ARP流表。
步骤 802:控制器创建第一 ARP请求流规则,并向转发器下发该流规则。 这里, 第一 ARP请求流规则中:
匹配规则包括: 1 ) 匹配原因值为缺少 IP地址对应的 MAC地址; 2 )报 文类型为 IP报文; 3 ) 目标 IP地址为预设 IP地址; 4 )掩码为第一掩码值, 比如为 XXXX; 其中, 1 ) 项为可选项。
动作集包括: 1 )构造 ARP请求消息, 其中 ARP请求消息中的目标 IP 为预设 IP地址; 2 )转发端口号为设定转发端口号或者所有转发端口号。
在上述动作集 2 ) 中, 转发端口号为特定转发端口号时, 可以根据路由 协议确定该特定转发端口号; 转发端口号为所有转发端口号时, 是以洪范 Flood方式发送消息。
步骤 803: 转发器接收并安装第一 ARP请求流规则。
步骤 804: 转发器接收到用户报文, 转发器检测到缺少报文的目标 IP地 址对应的 MAC地址,利用该用户报文的信息匹配第一 ARP请求流规则中的 匹配规则, 匹配成功后,则根据第一 ARP请求流规则中的动作集,构造 ARP 请求消息, 其中消息中的目标 IP为匹配规则中的预设 IP地址, 然后执行步 骤 805 , 如果匹配失败, 结束当前流程。
可选的,本步骤中, 匹配成功,即: 匹配原因为缺少 IP地址对应的 MAC 地址(可选); >¾文类型为 IP 文; 文的目标 IP地址与上述第一 ARP请 求流规则中包含的第一掩码值进行设定运算的结果为第一 ARP请求流规则 中包含的目标 IP与第一掩码值进行设定运算的结果。
步骤 805: 转发器根据第一 ARP请求流规则中的动作集,通过设定转发 端口或者所有转发端口发送该 ARP请求消息。 步骤 806: 转发器接收外部设备发来的 ARP响应消息。
步骤 807: 转发器根据步骤 801的指示,根据接收到的 ARP响应消息构 造创建 ARP封装流规则。
这里, ARP封装流规则用于保证转发器接收到相同连接上的后续数据报 文后, 能够根据该 ARP封装流规则直接在数据报文中封装已经获取的对应 的 MAC地址, 而无需每次都发送 ARP请求消息来获取外部设备的 MAC地 址。
转发器创建的 ARP封装流规则中:
对应 ARP的匹配规则包括: 1 )报文类型为 IP报文; 2 ) 目标 IP地址为 所述用户报文中的目标 IP地址; 3 )掩码为第三掩码值; 其中, 3 )项为可 选项;
对应 ARP的动作集包括: 1 )封装 文的目的 MAC地址; 2 )目的 MAC 地址为 ARP响应消息的目标 MAC地址; 3 )转发 文; 4 )转发端口号为 ARP响应消息的入端口号。
上述 ARP封装流的一种描述实现方法如下:
<流规则安装消息 > := {流匹配规则, <流表处理动作 >},
流表匹配规则如下:
OXM_OF_ETH_TYPE = 0x0800
OXM_OF_ENCAP_MAC = ARP响应消息的目标 MAC地址
对应的动作集如下:
OFPAT_OUTPUT = XXXX (包含的端口号为 ARP响应消息的入端口 号)
步骤 808: 后续数据报文到达转发器,转发器匹配 ARP封装流规则中的 匹配规则, 如果匹配成功, 则执行 ARP封装流规则中的动作集, 将接收到 的 ARP响应消息的目标 MAC地址封装为该数据报文的 MAC地址,从 ARP 响应消息的入端口转发该数据报文。 实施例六:
本实施例针对上述流规则 2~4即三种 ARP请求流规则, 描述控制器和 转发器的完整配合过程, 以实现由转发器构建并发送 ARP请求消息。 参见 图 9, 该过程包括以下步骤:
步骤 901~步骤 902与步骤 801~步骤 802的所有描述均相同。
步骤 903: 控制器创建第二 ARP请求流规则, 并下发给转发器。
该第二 ARP请求流规则用于在后续转发器无法从第一 ARP请求流规则 中匹配到对应的匹配规则, 从而无法构造 ARP请求消息时, 指示转发器向 控制器请求新的 ARP请求流规则。
具体地, 在该第二 ARP请求流规则中:
对应 ARP的匹配规则包括: 1 ) 文类型为缺少 IP地址对应的 MAC地 址;
对应 ARP的动作集包括: 1 )转发给控制器。
步骤 904: 转发器接收并安装第一 ARP请求流规则和第二 ARP请求流 规则。
步骤 905: 转发器接收到外部设备发来的用户报文, 检测到该用户报文 缺少报文的目的 IP对应的 MAC地址。
步骤 906:转发器利用该用户报文的信息匹配第一 ARP请求流规则中的 匹配规则, 如果匹配成功, 则执行步骤 907, 如果匹配失败, 执行步骤 908。
第一 ARP请求流规则中, 对应 ARP的匹配规则包括但不限于: 1 )报 文类型为 IP报文; 2 ) 目标 IP地址为预设 IP地址; 3 )掩码为第一掩码值; 其中, 3 )项为可选项;
对应 ARP的动作集包括但不限于: 1 )构造 ARP请求消息, 其中消息 中的目标 IP为预设 IP地址; 2 )转发端口号为设定转发端口号或者所有转发 端口号。
如果匹配成功第一 ARP请求流规则中的匹配规则, 则按照相应动作集 进行处理。
步骤 907: 转发器根据第一 ARP请求流规则中的动作集, 构造 ARP请 求消息, 其中消息中的目标 IP为所述预设 IP地址, 并通过设定转发端口或 者所有转发端口发送该 ARP请求消息, 执行步骤 912。
步骤 908:转发器根据接收到的用户报文的信息与第二 ARP请求流规则 中的匹配规则进行匹配, 匹配成功后, 根据第二 ARP请求流规则中的动作 集, 将用户报文转发给控制器。
这里, 第二 ARP请求流规则中:
对应 ARP的匹配规则包括: 1 ) 文类型为缺少 IP地址对应的 MAC地 址; 对应 ARP的动作集包括: 1 )转发给控制器。
步骤 909: 控制器接收转发器根据第二 ARP请求流规则发来的用户报 文, 分析出该请求中携带的当前需请求的目标 IP地址。
步骤 910: 控制器如果查找到与当前需请求的目标 IP地址对应的 MAC 地址, 则创建第三 ARP请求流规则, 然后发送给转发器。
步骤 911: 转发器接收控制器下发的第三 ARP请求流规则,根据该第三
ARP请求流规则构造 ARP请求消息, 并发送该 ARP请求消息。
步骤 912~步骤 914与步骤 806~步骤 808的所有描述均相同。
通过本发明实施例提供的一种地址解析协议消息的处理方法, 能够处理 外部设备发来的用户报文, 在根据该用户报文的信息与第一 ARP请求流规 则中的匹配规则匹配不成功的情况下, 可以与第二 ARP请求流规则中的匹 配规则进行匹配,将该用户报文发送给控制器,根据控制器下发的第三 ARP 请求流规则构造 ARP请求消息, 将该 ARP请求消息发送给外部设备, 实现 与外部设备基于 ARP机制的交互。
实施例七:
本实施例提供一种控制器, 参见图 10, 包括:
创建单元 1001 , 用于创建对应 ARP的流规则, 将该流规则输出至发送 单元 1002; 其中, 所述流规则中包括: 对应 ARP的匹配规则和对应 ARP的 动作集;
发送单元 1002, 用于将接收到的流规则发送给转发器。
创建单元 1001 , 具体用于创建 ARP响应流规则。
可选的, 创建单元 1001 , 具体用于创建第一 ARP请求流规则。
上述创建子单元 1001 ,进一步用于在创建了第一 ARP请求流规则之后, 创建第二 ARP请求流规则。
可选的, 创建单元 1001 , 还用于接收转发器根据所述第二 ARP请求流 规则发来的流表请求, 创建第三 ARP请求流规则;
其中, ARP响应流规则,第一 ARP请求流规则,第二 ARP请求流规则, 第三 ARP请求流规则参见方法实施例。
本发明实施例提供的一种控制器能够创建流规则, 并将流规则发送给转 发器。
参见图 11 ,在本发明实施例的一个实现方式中,控制器还可以进一步包 括: 信息获取单元 1000, 用于获取转发器的转发器端口、 端口的 IP地址和 MAC地址的对应关系, 将该对应关系信息发送给创建单元 1001。
在本发明实施例的又两个实现方式中, 发送单元 1002包括:
第一发送子单元, 用于接收所述创建单元 1001发来的多条流规则, 将 该多条流规则携带在一条 Openflow消息中发送给转发器; 或者,
第二发送子单元, 用于接收所述创建单元 1001发来的多条流规则, 将 该多条流规则分别携带在多条 Openflow消息中发送给转发器。
上述设备内的各单元、 子单元之间的信息交互、 执行过程等内容, 由于 与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的 叙述, 此处不再赘述。
本发明实施例提供的一种控制器能够创建流规则,将该多条流规则携带 在一条 Openflow消息中发送给转发器, 可以节省网络资源。 实施例八:
本实施例提出了一种转发器, 参见图 12, 包括:
接收单元 1201 , 用于接收控制器发来的对应 ARP消息的流规则, 并发 送给 ARP处理单元 1202;
ARP处理单元 1202, 用于根据接收到的流规则构造 ARP消息, 并发送
ARP消息; 其中, 该流规则中包括: 对应 ARP消息的匹配规则和对应 ARP 消息的动作集。
可选的, ARP处理单元 1202中可以包括第一处理子单元, 其中, 接收 单元 1201 , 进一步用于接收外部设备发来的 ARP请求消息; 将该 ARP请求 消息发送给第一处理子单元;
第一处理子单元, 用于解析出接收到的流规则中包括 ARP响应流规则, 该 ARP响应流规则中, 对应 ARP 的匹配规则包括如下信息: 消息类型为 ARP消息; 以及, 请求地址为转发器端口绑定的 IP地址; 对应 ARP的动作 集包括: 构造 ARP响应消息, 且该 ARP响应消息的介质访问控制 MAC地 址为接收到的 ARP请求消息所请求的 IP地址对应的 MAC地址; 以及, 转 发 ARP响应消息, 且转发端口号为 ARP请求报文的入端口号; 接收到 ARP 请求消息后, 将该 ARP请求消息中携带的信息与 ARP响应流规则中的匹配 规则进行匹配, 如果匹配成功, 则根据 ARP响应流规则中的动作集, 构造 ARP响应消息,在该 ARP响应消息中填写接收到的 ARP请求消息所请求的 IP地址对应的 MAC地址; 然后通过 ARP请求报文的入端口号转发 ARP响 应消息。
ARP处理单元 1202中还可以包括第二处理子单元, 其中,
接收单元 1201 , 进一步用于接收用户报文, 并转发给第二处理子单元; 第二处理子单元, 用于解析出接收到的流规则中包括第一 ARP请求流 规则, 该第一 ARP请求流规则中: 对应 ARP的匹配规则包括: 如下信息: 报文类型为 IP报文; 目标 IP地址为预设 IP地址; 对应 ARP的动作集包括: 构造第一 ARP请求消息, 其中第一 ARP请求消息中的目标 IP为预设 IP地 址; 转发端口号为设定转发端口号或者所有转发端口号; 在接收到用户报文 后,检测到缺少报文的目标 IP地址对应的 MAC地址, 则将该用户报文的信 息与所述第一 ARP请求流规则中的匹配规则进行匹配, 如果匹配成功, 则 根据第一 ARP请求流规则中的动作集, 构造第一 ARP请求消息, 其中第一 ARP请求消息中的目标 IP为所述预设 IP地址,并通过设定转发端口或者所 有转发端口发送该第一 ARP请求消息。
上述第一 ARP请求流规则中, 对应 ARP的匹配规则还包括如下信息: 掩码为第一掩码值;
相应的, 将该用户报文的信息与第一 ARP请求流规则中的匹配规则进 行匹配具体包括:
判断用户报文是否为 IP报文, 如果是, 则判断用户报文中的目标 IP地 址与第一掩码值进行预订运算后的结果是否与所述预设 IP地址与第一掩码 值进行预订运算后的结果相同, 如果相同, 则认为匹配成功。
可选地, 第二处理子单元, 还用于解析出所述流规则中包括第二 ARP 请求流规则, 该第二 ARP请求流规则中: 对应 ARP的匹配规则包括如下信 息: 文类型为缺少 IP地址对应的 MAC地址; 对应 ARP的动作集包括: 转发给控制器; 在根据用户报文匹配所述第一 ARP请求流规则中的匹配规 贝' J , 并且, 匹配失败后, 进一步将接收到的用户报文的信息与第二 ARP请 求流规则中的匹配规则进行匹配, 如果匹配成功, 则根据第二 ARP请求流 规则中的动作集, 将用户报文转发给控制器; 并接收控制器下发的包含所述 用户报文中目标 IP地址的第三 ARP请求流规则,根据该第三 ARP请求流规 则构造第二 ARP请求消息, 并发送该第二 ARP请求消息。
本发明实施例提出的一种转发器, 能够接收控制器发来的对应 ARP消 息的流规则, 该流规则中包括对应 ARP消息的匹配规则和对应 ARP消息的 动作集, 转发器根据接收到的流规则构造 ARP消息, 并发送 ARP消息, 实 现了与外部设备基于 ARP机制的交互。
参见图 13,在本实施例的转发器的一个较佳实现中,转发器还可以包括: 构造单元 1203, 其中,
接收单元 1201 , 还用于接收外部设备发来的 ARP响应消息, 发送给构 造单元 1203; 以及接收用户报文所在连接上的数据报文,发送给第二处理子 单元;
构造单元 1203 ,用于根据接收到的 ARP响应消息构建 ARP封装流规则; 第二处理子单元, 还用于将接收到的数据报文的信息与构造单元 1203 所构造的 ARP封装流规则中的匹配规则进行匹配, 匹配成功后, 根据 ARP 封装流规则中的动作集,将 ARP响应消息的目标 MAC地址封装在该数据报 文中, 然后发送封装的数据报文; 其中, ARP封装流规则参见方法实施例。
上述设备内的各单元、 子单元之间的信息交互、 执行过程等内容, 由于 与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的 叙述, 此处不再赘述。
实施例九:
本实施例提出了一种转发器, 参见图 14, 采用通用计算机***结构, 计 算机***可具体是基于处理器的计算机。 如图 14所示, 所述转发器包括至 少一个处理器 1401 , 通信总线 1402, 存储器 1403 以及至少一个通信接口 1404。
处理器 1401可以是一个 CPU, 微处理器, 特定应用集成电路 ASIC, 或一 个或多个用于控制本发明方案程序执行的集成电路。
其中, 所述通信总线 1402可包括一通路, 在上述组件之间传送信息。 所 述通信接口 1404, 使用任何收发器一类的装置, 用于与其他设备或通信网络 通信, 如以太网, RAN, WLAN等。
计算机***包括一个或多个存储器,可以是只读存储器 ROM或可存储静 态信息和指令的其他类型的静态存储设备, 随机存取存储器 RAM 或者可存 储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储 器 EEPROM、只读光盘 CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、 激光碟、 光碟、 数字通用光碟、 蓝光光碟等)、 磁盘存储介质或者其他磁存 储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代 码并能够由计算机存取的任何其他介质, 但不限于此。 这些存储器通过总线 与处理器相连接。
其中, 存储器 1403用于存储执行本发明方案的应用程序代码, 执行本发 明方案的应用程序代码保存在存储器中, 并由处理器 1401来控制执行。 所述 处理器 1401用于执行所述存储器 1403中存储的应用程序。
在一种可能的实施方式中, 当上述应用程序被处理器 1401执行时, 实现 如下功能:
转发器接收控制器发来的对应 ARP消息的流规则;
转发器根据接收到的流规则构造 ARP消息, 并发送 ARP消息; 其中, 流规则中包括: 对应 ARP消息的匹配规则和对应 ARP消息的动 作集。
可选的, 所述流规则包括 ARP响应流规则, 在该 ARP响应流规则中: 所述对应 ARP的匹配规则包括如下信息: 消息类型为 ARP消息;以及, 请求地址为转发器端口绑定的 IP地址;
所述对应 ARP的动作集包括: 构造 ARP响应消息, 且所述 ARP响应 消息的介质访问控制 MAC地址为接收到的 ARP请求消息所请求的 IP地址 对应的 MAC地址;
可选的, 所述转发器根据接收到的流规则构造 ARP消息, 并发送 ARP 消息包括:
所述转发器接收到外部设备发来的 ARP请求消息; 将该 ARP请求消息 携带的信息与 ARP响应流规则中的匹配规则进行匹配, 如果匹配成功, 则 根据 ARP响应流规则中的动作集, 构造 ARP响应消息, 在该 ARP响应消 息中填写接收到的 ARP请求消息所请求的 IP地址对应的 MAC地址; 然后 通过 ARP请求报文的入端口转发 ARP响应消息。
可选地, 所述流规则包括第一 ARP请求流规则, 该第一 ARP请求流规则 中, 所述对应 ARP的匹配规则包括如下信息: 报文类型为 IP报文; 目标 IP地 址为预设 IP地址;
所述对应 ARP的动作集包括: 构造第一 ARP请求消息, 其中第一 ARP 请求消息中的目标 IP为预设 IP地址; 转发端口号为设定转发端口号或者所 有转发端口号;
可选的, 所述转发器根据接收到的流规则构造 ARP消息, 并发送 ARP 消息包括:
所述转发器接收到用户报文, 检测到缺少报文的目标 IP 地址对应的 MAC地址, 则将该用户报文的信息与所述第一 ARP请求流规则中的匹配规 则进行匹配, 如果匹配成功, 则根据第一 ARP请求流规则中的动作集, 构 造第一 ARP请求消息,其中第一 ARP请求消息中的目标 IP地址为所述预设 IP地址,并通过设定转发端口或者所有转发端口发送该第一 ARP请求消息。
可选地, 所述第一 ARP请求流规则中, 所述对应 ARP的匹配规则还包 括如下信息: 掩码为第一掩码值;
可选的, 所述将该用户报文的信息与所述第一 ARP请求流规则中的匹 配规则进行匹配具体包括:
判断用户报文是否为 IP报文, 如果是, 则判断用户报文中的目标 IP地 址与第一掩码值进行预订运算后的结果是否与所述预设 IP地址与第一掩码 值进行预订运算后的结果相同, 如果相同, 则认为匹配成功。
可选地, 所述流规则包括第二 ARP请求流规则, 在该第二 ARP请求流 规则中:
所述对应 ARP的匹配规则包括如下信息: 文类型为缺少 IP地址对应 的 MAC地址; 所述对应 ARP的动作集包括: 转发给控制器; 在所述将该用户报文的信息与所述第一 ARP请求流规则中的匹配规则 进行匹配, 并且, 匹配失败后, 进一步包括:
所述转发器将接收到的用户报文的信息与第二 ARP请求流规则中的匹 配规则进行匹配, 如果匹配成功, 则根据第二 ARP请求流规则中的动作集, 将用户报文转发给控制器; 并接收控制器下发的第三 ARP请求流规则, 根 据该第三 ARP请求流规则构造第二 ARP请求消息, 并发送该第二 ARP请 求消息, 其中, 在该第三 ARP请求流规则中:
所述对应 ARP的匹配规则包括如下信息: 匹配原因值为缺少第一 IP地 址对应的 MAC地址; ^艮文类型为 IP 文; 目标 IP地址为所述第一 IP地址; 所述对应 ARP的动作集包括: 构造第二 ARP请求消息, 其中第二 ARP 请求消息中的目标 IP为所述第一 IP地址; 转发端口号为设定转发端口号或 者所有转发端口号。
可选地, 在所述发送 ARP请求消息之后, 进一步包括:
所述转发器接收外部设备发来的 ARP响应消息, 根据该 ARP响应消息 构建 ARP封装流规则; 接收用户报文所在连接上的数据报文, 将该数据报 文的信息与 ARP封装流规则中的匹配规则进行匹配, 如果匹配成功, 则根 据 ARP封装流规则中的动作集, 将 ARP响应消息的目标 MAC地址封装在 该数据报文中, 然后发送封装的数据报文; 其中, 所述 ARP封装流规则中, 对应 ARP的匹配规则包括如下信息: 报文类型为 IP报文; 目标 IP地址为所 述用户 4艮文中的目标 IP地址;
对应 ARP的动作集包括: 封装 文的目的 MAC地址; 目的 MAC地址 为 ARP响应消息的目标 MAC地址; 转发 文; 转发端口号为 ARP响应消 息的入端口号。
可选地, 所述转发器接收控制器发来的对应 ARP消息的流规则, 具体 包括:
所述转发器接收控制器发来的携带流规则的一条 Openflow消息, 其中, 所述一条 Openflow消息中携带多条流规则。
本实施例中, 应用程序被处理器执行时, 转发器与其他设备的交互方法 可以参考上述方法实施例。 这里不再详细描述。
本实施例提供的一种转发器接收控制器发来的对应 ARP消息的流规则, 该流规则中包括对应 ARP消息的匹配规则和对应 ARP消息的动作集, 转发 器根据接收到的流规则构造 ARP消息, 并发送 ARP消息, 实现了与外部设 备基于 ARP机制的交互。
实施例十
本实施例提出了一种控制器, 参见图 15, 采用通用计算机***结构, 计 算机***可具体是基于处理器的计算机。 如图 15所示, 所述控制器包括至 少一个处理器 1501 , 通信总线 1502, 存储器 1503 以及至少一个通信接口 1504。
处理器 1501可以是一个 CPU, 微处理器, 特定应用集成电路 ASIC, 或一 个或多个用于控制本发明方案程序执行的集成电路。
其中, 所述通信总线 1502可包括一通路, 在上述组件之间传送信息。 所 述通信接口 1504, 使用任何收发器一类的装置, 用于与其他设备或通信网络 通信, 如以太网, RAN, WLAN等。
计算机***包括一个或多个存储器,可以是只读存储器 ROM或可存储静 态信息和指令的其他类型的静态存储设备, 随机存取存储器 RAM 或者可存 储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储 器 EEPROM、只读光盘 CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、 激光碟、 光碟、 数字通用光碟、 蓝光光碟等)、 磁盘存储介质或者其他磁存 储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代 码并能够由计算机存取的任何其他介质, 但不限于此。 这些存储器通过总线 与处理器相连接。
其中, 存储器 1503用于存储执行本发明方案的应用程序代码, 执行本发 明方案的应用程序代码保存在存储器中, 并由处理器 1501来控制执行。 所述 处理器 1501用于执行所述存储器 1503中存储的应用程序。
在一种可能的实施方式中, 当上述应用程序被处理器 1401执行时, 实现 如下功能:
控制器创建对应 ARP的流规则;其中,每一个流规则中包括:对应 ARP 的匹配规则和对应 ARP的动作集。
控制器将创建的流规则发送给转发器。
可选地, 所述流规则包括 ARP响应流规则, 第一 ARP请求流规则, 第 二 ARP请求流规则,
可选地, 在控制器创建对应 ARP的流规则之前, 进一步包括: 控制器 获取转发器的转发器端口、 端口的 IP地址和 MAC地址的对应关系。
可选地,控制器获取转发器的转发器端口、端口的 IP地址和 MAC地址 的对应关系, 包括:
方式一、 控制器根据预先的静态配置或者从第三方设备处, 直接获取转 发器的转发器端口、 端口的 IP地址和 MAC地址的对应关系;
方式二、 控制器根据预先的静态配置或者从第三方设备处, 获取第一信 息, 该第一信息包括: 转发器标识, 转发器端口标识及对应的端口 IP地址; 并且, 接收所述转发器上报的第二信息, 该第二信息包括: 转发器端口标识 及对应的 MAC地址;根据所述第一信息和第二信息,获取所述转发器标识, 转发器端口标识、 端口的 IP地址和 MAC地址的对应关系。
可选的, 当控制器创建的流规则包括该流规则 4即第三 ARP请求流规 则时, 在控制器将创建的流规则发送给转发器之后, 还会包括: 控制器接收 转发器根据第二 ARP请求流规则发来的流表请求, 该请求中携带当前需请 求的目标 IP地址; 控制器如果查找到与流表请求中携带的当前需请求的目 标 IP地址对应的 MAC地址, 则创建上述第三 ARP请求流规则, 然后发送 给转发器, 以保证转发器能够构造所需的 ARP请求消息。 本发明实施例提供的一种控制器能够创建流规则, 并将流规则发送给转 发器。
实施例十一
本实施例提出了一种 SDN***, 包括实施例七中任意一种结构和功能 的控制器以及实施例八中任意一种结构和功能的转发器。
上述设备内的各单元、 子单元之间的信息交互、 执行过程等内容, 由于 与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的 叙述, 此处不再赘述。
本发明实施例提出的 ARP消息的处理方法和转发器、 控制器至少具有 如下有益效果:
1、 本发明实施例提出的 ARP消息的处理方法和转发器、 控制器, 能够 由转发器接收控制器发来的对应 ARP消息的流规则, 该流规则中包括对应 ARP消息的匹配规则和对应 ARP消息的动作集, 转发器根据接收到的流规 则构造 ARP消息, 并发送 ARP消息, 实现了与外部设备基于 ARP机制的 交互。
2、 本发明实施例可以基于 Openflow现有流表匹配处理机制实现, 不需 要转发器增加额外的机制实现 ARP处理的能力, 因此, 对转发器的改动最 小, 更易于实现。
本领域普通技术人员将会理解, 本发明的各个方面、 或各个方面的可能 实现方式可以被具体实施为***、 方法或者计算机程序产品。 因此, 本发明 的各方面、 或各个方面的可能实现方式可以采用完全硬件实施例、 完全软件 实施例 (包括固件、驻留软件等等), 或者组合软件和硬件方面的实施例的形 式, 在这里都统称为"电路"、 "模块 "或者 "***"。 此外, 本发明的各方面、 或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产 品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。 计算机可读存储介质包含但不限于电子、 磁性、 光学、 电磁、 红外或半导体 ***、 设备或者装置, 或者前述的任意适当组合, 如随机存取存储器
(RAM), 只读存储器 (ROM)、 可擦除可编程只读存储器(EPROM或者快闪 存储器)、 光纤、 便携式只读存储器 (CD-ROM)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代 码, 使得处理器能够执行在流程图中每个步骤、 或各步骤的组合中规定的功 能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计 算机上执行、 作为单独的软件包、 部分在用户的计算机上并且部分在远程计 算机上, 或者完全在远程计算机或者服务器上执行。 也应该注意, 在某些替 代实施方案中, 在流程图中各步骤、 或框图中各块所注明的功能可能不按图 中注明的顺序发生。 例如, 依赖于所涉及的功能, 接连示出的两个步骤、 或 两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执 行。
显然, 本领域的技术人员可以对本发明进行各种改动和变型而不脱离本 发明的精神和范围。 这样, 倘若本发明的这些修改和变型属于本发明权利要 求及其等同技术的范围之内, 则本发明也意图包含这些改动和变型在内。

Claims (16)

  1. 权利要求
    1、 一种地址解析协议消息的处理方法, 其特征在于, 包括:
    转发器接收控制器发来的对应 ARP消息的流规则;
    转发器根据接收到的流规则构造 ARP消息, 并发送 ARP消息; 其中, 流规则中包括: 对应 ARP消息的匹配规则和对应 ARP消息的动 作集。
  2. 2、 如权利要求 1所述的地址解析协议消息的处理方法, 其特征在于, 所述流规则包括 ARP响应流规则, 在该 ARP响应流规则中:
    所述对应 ARP的匹配规则包括如下信息: 消息类型为 ARP消息;以及, 请求地址为转发器端口绑定的 IP地址;
    所述对应 ARP的动作集包括: 构造 ARP响应消息, 且所述 ARP响应 消息的介质访问控制 MAC地址为接收到的 ARP请求消息所请求的 IP地址 对应的 MAC地址;
    相应的, 所述转发器根据接收到的流规则构造 ARP消息, 并发送 ARP 消息具体包括:
    所述转发器接收到外部设备发来的 ARP请求消息; 将该 ARP请求消息 携带的信息与 ARP响应流规则中的匹配规则进行匹配, 如果匹配成功, 则 根据 ARP响应流规则中的动作集, 构造 ARP响应消息, 在该 ARP响应消 息中填写接收到的 ARP请求消息所请求的 IP地址对应的 MAC地址; 然后 通过 ARP请求报文的入端口转发 ARP响应消息。
  3. 3、 如权利要求 1所述的地址解析协议消息的处理方法, 其特征在于, 所述流规则包括第一 ARP请求流规则, 该第一 ARP请求流规则中, 所 述对应 ARP的匹配规则包括如下信息: 报文类型为 IP报文; 目标 IP地址为 预设 IP地址;
    所述对应 ARP的动作集包括: 构造第一 ARP请求消息, 其中第一 ARP 请求消息中的目标 IP为预设 IP地址; 转发端口号为设定转发端口号或者所 有转发端口号;
    相应的, 所述转发器根据接收到的流规则构造 ARP消息, 并发送 ARP 消息具体包括:
    所述转发器接收到用户报文, 检测到缺少报文的目标 IP 地址对应的 MAC地址, 则将该用户报文的信息与所述第一 ARP请求流规则中的匹配规 则进行匹配, 如果匹配成功, 则根据第一 ARP请求流规则中的动作集, 构 造第一 ARP请求消息,其中第一 ARP请求消息中的目标 IP地址为所述预设 IP地址,并通过设定转发端口或者所有转发端口发送该第一 ARP请求消息。
  4. 4、 如权利要求 3所述的地址解析协议消息的处理方法, 其特征在于, 所述第一 ARP请求流规则中, 所述对应 ARP的匹配规则还包括如下信 息: 掩码为第一掩码值;
    相应的, 所述将该用户报文的信息与所述第一 ARP请求流规则中的匹 配规则进行匹配具体包括:
    判断用户报文是否为 IP报文, 如果是, 则判断用户报文中的目标 IP地 址与第一掩码值进行预订运算后的结果是否与所述预设 IP地址与第一掩码 值进行预订运算后的结果相同, 如果相同, 则认为匹配成功。
  5. 5、 如权利要求 3或 4所述的地址解析协议消息的处理方法, 其特征在 于, 所述流规则包括第二 ARP请求流规则, 在该第二 ARP请求流规则中: 所述对应 ARP的匹配规则包括如下信息: 文类型为缺少 IP地址对应 的 MAC地址; 所述对应 ARP的动作集包括: 转发给控制器;
    相应的, 在所述将该用户报文的信息与所述第一 ARP请求流规则中的 匹配规则进行匹配, 并且, 匹配失败后, 进一步包括:
    所述转发器将接收到的用户报文的信息与第二 ARP请求流规则中的匹 配规则进行匹配, 如果匹配成功, 则根据第二 ARP请求流规则中的动作集, 将用户报文转发给控制器; 并接收控制器下发的第三 ARP请求流规则, 根 据该第三 ARP请求流规则构造第二 ARP请求消息, 并发送该第二 ARP请 求消息, 其中, 在该第三 ARP请求流规则中:
    所述对应 ARP的匹配规则包括如下信息: 匹配原因值为缺少第一 IP地 址对应的 MAC地址; ^艮文类型为 IP 文; 目标 IP地址为所述第一 IP地址; 所述对应 ARP的动作集包括: 构造第二 ARP请求消息, 其中第二 ARP 请求消息中的目标 IP为所述第一 IP地址; 转发端口号为设定转发端口号或 者所有转发端口号。
  6. 6、 如权利要求 3~5 中任一所述的地址解析协议消息的处理方法, 其特 征在于, 在所述发送 ARP请求消息之后, 进一步包括:
    所述转发器接收外部设备发来的 ARP响应消息, 根据该 ARP响应消息 构建 ARP封装流规则; 接收用户报文所在连接上的数据报文, 将该数据报 文的信息与 ARP封装流规则中的匹配规则进行匹配, 如果匹配成功, 则根 据 ARP封装流规则中的动作集, 将 ARP响应消息的目标 MAC地址封装在 该数据报文中, 然后发送封装的数据报文; 其中, 所述 ARP封装流规则中, 对应 ARP的匹配规则包括如下信息: 报文类型为 IP报文; 目标 IP地址为所 述用户 4艮文中的目标 IP地址;
    对应 ARP的动作集包括: 封装 文的目的 MAC地址; 目的 MAC地址 为 ARP响应消息的目标 MAC地址; 转发 文; 转发端口号为 ARP响应消 息的入端口号。
  7. 7、 如权利要求 1~5 中任一所述的地址解析协议消息的处理方法, 其特 征在于,
    所述转发器接收控制器发来的对应 ARP消息的流规则, 具体包括: 所述转发器接收控制器发来的携带流规则的一条 Openflow消息, 其中, 所述一条 Openflow消息中携带多条流规则。
  8. 8、 一种转发器, 其特征在于, 包括:
    接收单元, 用于接收控制器发来的对应 ARP消息的流规则, 并发送给
    ARP处理单元; ARP处理单元, 用于根据接收到的流规则构造 ARP消息, 并发送 ARP 消息; 其中, 所述流规则中包括: 对应 ARP消息的匹配规则和对应 ARP消 息的动作集。
  9. 9、 如权利要求 8所述的转发器, 其特征在于, 所述 ARP处理单元包括 第一处理子单元, 其中,
    所述接收单元, 进一步用于接收外部设备发来的 ARP请求消息; 将该 ARP请求消息发送给第一处理子单元;
    第一处理子单元, 用于解析出接收到的流规则中包括 ARP响应流规则; 在接收到 ARP请求消息后, 将该 ARP请求消息中携带的信息与 ARP响应 流规则中的匹配规则进行匹配, 如果匹配成功, 则根据 ARP响应流规则中 的动作集, 构造 ARP响应消息, 在该 ARP响应消息中填写接收到的 ARP 请求消息所请求的 IP地址对应的 MAC地址; 然后通过 ARP请求报文的入 端口转发 ARP响应消息;
    其中, 所述 ARP响应流规则中, 所述对应 ARP的匹配规则包括如下信 息: 消息类型为 ARP消息; 以及, 请求地址为转发器端口绑定的 IP地址; 所述对应 ARP的动作集包括: 构造 ARP响应消息, 且所述 ARP响应消息 的介质访问控制 MAC地址为接收到的 ARP请求消息所请求的 IP地址对应 的 MAC地址; 以及, 转发 ARP响应消息, 且转发端口号为 ARP请求报文 的入端口号。
  10. 10、 如权利要求 8所述的转发器, 其特征在于, 所述 ARP处理单元包 括第二处理子单元, 其中,
    所述接收单元, 进一步用于接收用户报文, 并转发给所述第二处理子单 元;
    所述第二处理子单元, 用于解析出接收到的流规则中包括第一 ARP请 求流规则;在接收到用户报文后,检测到缺少报文的目标 IP地址对应的 MAC 地址, 则将该用户报文的信息与所述第一 ARP请求流规则中的匹配规则进 行匹配, 如果匹配成功, 则根据第一 ARP请求流规则中的动作集, 构造第 一 ARP请求消息,其中第一 ARP请求消息中的目标 IP为所述预设 IP地址, 并通过设定转发端口或者所有转发端口发送该第一 ARP请求消息;
    其中, 所述第一 ARP请求流规则中, 所述对应 ARP的匹配规则包括如 下信息: 报文类型为 IP报文, 以及目标 IP地址为预设 IP地址; 所述对应 ARP的动作集包括: 构造第一 ARP请求消息, 其中第一 ARP请求消息中的 目标 IP为预设 IP地址; 以及转发端口号为设定转发端口号或者所有转发端 口号。
  11. 11、 如权利要求 10所述的转发器, 其特征在于, 所述第一 ARP请求流 规则中, 所述对应 ARP的匹配规则还包括如下信息: 掩码为第一掩码值; 相应的, 所述将该用户报文的信息与所述第一 ARP请求流规则中的匹 配规则进行匹配具体包括:
    判断用户报文是否为 IP报文, 如果是, 则判断用户报文中的目标 IP地 址与第一掩码值进行预订运算后的结果是否与所述预设 IP地址与第一掩码 值进行预订运算后的结果相同, 如果相同, 则认为匹配成功。
  12. 12、 如权利要求 10或 11所述的转发器, 其特征在于, 所述第二处理子 单元, 进一步用于解析出所述流规则中包括第二 ARP请求流规则, 在根据 用户报文匹配所述第一 ARP请求流规则中的匹配规则, 并且, 匹配失败后, 进一步将接收到的用户报文的信息与第二 ARP请求流规则中的匹配规则进 行匹配, 如果匹配成功, 则根据第二 ARP请求流规则中的动作集, 将用户 报文转发给控制器; 并接收控制器下发的包含所述用户报文中目标 IP地址 的第三 ARP请求流规则, 根据该第三 ARP请求流规则构造第二 ARP请求 消息, 并发送该第二 ARP请求消息;
    其中, 所述第二 ARP请求流规则中, 所述对应 ARP的匹配规则包括如 下信息: 文类型为缺少 IP地址对应的 MAC地址; 所述对应 ARP的动作 集包括: 转发给控制器。 13、 如权利要求 10~12中任一所述的转发器, 其特征在于, 还包括: 构 造单元, 其中,
    接收单元, 还用于接收外部设备发来的 ARP响应消息, 发送给构造单 元;以及接收用户报文所在连接上的数据报文,发送给所述第二处理子单元; 构造单元, 用于根据接收到的 ARP响应消息构建 ARP封装流规则; 所述第二处理子单元,还用于将接收到的数据报文的信息与构造单元所 构造的 ARP封装流规则中的匹配规则进行匹配, 匹配成功后, 根据 ARP封 装流规则中的动作集,将 ARP响应消息的目标 MAC地址封装在该数据报文 中, 然后发送封装的数据报文; 其中, 所述 ARP封装流规则中, 对应 ARP 的匹配规则包括如下信息: 报文类型为 IP报文; 目标 IP地址为所述用户报 文中的目标 IP地址;
    对应 ARP的动作集包括:
    封装 文的目的 MAC地址; 目的 MAC地址为 ARP响应消息的目标 MAC地址; 转发 文; 转发端口号为 ARP响应消息的入端口号。
  13. 14、 一种控制器, 其特征在于, 包括:
    创建单元, 用于创建对应 ARP的流规则, 将该流规则输出至发送单元; 其中, 所述流规则中包括: 对应 ARP的匹配规则和对应 ARP的动作集; 发送单元, 用于将接收到的流规则发送给转发器。
  14. 15、 如权利要求 14所述的控制器, 其特征在于, 所述创建单元, 具体 用于创建 ARP响应流规则, 该 ARP响应流规则中:
    所述对应 ARP的匹配规则包括如下信息: 消息类型为 ARP消息;以及, 请求地址为转发器端口绑定的 IP地址;
    所述对应 ARP的动作集包括: 构造 ARP响应消息, 且所述 ARP响应 消息的介质访问控制 MAC地址为接收到的 ARP请求消息所请求的 IP地址 对应的 MAC地址; 以及, 转发 ARP响应消息, 且转发端口号为 ARP请求 报文的入端口号。 16、 如权利要求 14所述的控制器, 其特征在于,
    所述创建单元, 具体用于创建第一 ARP请求流规则, 该第一 ARP请求 流规则中:
    所述对应 ARP的匹配规则包括如下信息: 报文类型为 IP报文; 目标 IP 地址为预设 IP地址;
    所述对应 ARP的动作集包括: 构造第一 ARP请求消息, 其中第一 ARP 请求消息中的目标 IP为预设 IP地址; 转发端口号为设定转发端口号或者所 有转发端口号。
  15. 17、 如权利要求 16所述的控制器, 其特征在于,
    所述创建单元, 还用于创建第二 ARP请求流规则, 该第二 ARP请求流 规则中:
    所述对应 ARP的匹配规则包括如下信息: 文类型为缺少 IP地址对应 的 MAC地址;
    所述对应 ARP的动作集包括: 转发给控制器。
  16. 18、 如权利要求 17所述的控制器, 其特征在于, 所述创建单元, 还用 于接收转发器根据所述第二 ARP请求流规则发来的流表请求,创建第三 ARP 请求流规则, 该第三 ARP请求流规则中:
    所述对应 ARP的匹配规则包括如下信息: 匹配原因值为缺少第一 IP地 址对应的 MAC地址; ^艮文类型为 IP 文; 目标 IP地址为所述第一 IP地址; 所述对应 ARP的动作集包括: 构造第二 ARP请求消息, 其中第二 ARP 请求消息中的目标 IP为所述第一 IP地址; 转发端口号为设定转发端口号或 者所有转发端口号。
CN201380002276.7A 2013-12-13 2013-12-13 地址解析协议消息的处理方法和转发器、控制器 Active CN104937896B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810133792.8A CN108183976A (zh) 2013-12-13 2013-12-13 地址解析协议消息的处理方法和控制器、转发器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/089377 WO2015085576A1 (zh) 2013-12-13 2013-12-13 地址解析协议消息的处理方法和转发器、控制器

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201810133792.8A Division CN108183976A (zh) 2013-12-13 2013-12-13 地址解析协议消息的处理方法和控制器、转发器

Publications (2)

Publication Number Publication Date
CN104937896A true CN104937896A (zh) 2015-09-23
CN104937896B CN104937896B (zh) 2018-02-23

Family

ID=53370525

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810133792.8A Withdrawn CN108183976A (zh) 2013-12-13 2013-12-13 地址解析协议消息的处理方法和控制器、转发器
CN201380002276.7A Active CN104937896B (zh) 2013-12-13 2013-12-13 地址解析协议消息的处理方法和转发器、控制器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810133792.8A Withdrawn CN108183976A (zh) 2013-12-13 2013-12-13 地址解析协议消息的处理方法和控制器、转发器

Country Status (5)

Country Link
US (1) US20160285820A1 (zh)
EP (1) EP3073698A4 (zh)
JP (1) JP2017503405A (zh)
CN (2) CN108183976A (zh)
WO (1) WO2015085576A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105743788A (zh) * 2016-01-26 2016-07-06 北京小米移动软件有限公司 数据包转发方法及装置
CN106210173A (zh) * 2016-07-29 2016-12-07 杭州迪普科技有限公司 Dns回复报文的转发方法及装置
CN108075945A (zh) * 2016-11-18 2018-05-25 腾讯科技(深圳)有限公司 一种应用测试方法及装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5986310B2 (ja) * 2012-06-29 2016-09-06 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. 情報を処理するための方法、転送プレーンデバイスおよび制御プレーンデバイス
KR20160095554A (ko) * 2015-02-03 2016-08-11 한국전자통신연구원 Sdn 기반의 물리 주소 결정장치 및 그 방법
JP2017011487A (ja) * 2015-06-22 2017-01-12 富士通株式会社 情報処理システム、情報処理システムの制御プログラム及び情報処理システムの制御方法
EP3313031B1 (en) * 2015-07-27 2019-09-25 Huawei Technologies Co., Ltd. Sdn-based arp realization method and apparatus
US10187218B2 (en) * 2015-09-15 2019-01-22 Google Llc Systems and methods for processing packets in a computer network
CN108259453B (zh) 2017-05-31 2020-03-06 新华三技术有限公司 一种报文转发方法及装置
CN108259633B (zh) 2017-05-31 2020-05-12 新华三技术有限公司 实现管理报文三层通信的方法、***及装置
CN107294863B (zh) * 2017-06-22 2021-04-16 深圳市泰信通信息技术有限公司 网络数据流转发方法、装置、***及可读存储介质
CN110798409A (zh) * 2019-10-31 2020-02-14 深信服科技股份有限公司 流量处理方法、装置和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102143068A (zh) * 2011-03-01 2011-08-03 华为技术有限公司 一种mac地址学习的方法,装置和***
WO2012133290A1 (ja) * 2011-03-31 2012-10-04 日本電気株式会社 コンピュータシステム、及び通信方法
CN103051538A (zh) * 2012-12-27 2013-04-17 华为技术有限公司 Arp表项生成的方法、控制设备及***

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5874726B2 (ja) * 2011-01-05 2016-03-02 日本電気株式会社 通信制御システム、制御サーバ、転送ノード、通信制御方法および通信制御プログラム
US8929377B2 (en) * 2011-03-15 2015-01-06 Futurewei Technologies, Inc. Systems and methods for automatic rack detection
JP5720340B2 (ja) * 2011-03-17 2015-05-20 日本電気株式会社 制御サーバ、通信システム、制御方法およびプログラム
JP2013090072A (ja) * 2011-10-17 2013-05-13 Hitachi Ltd サービス提供システム
US8738756B2 (en) * 2011-12-01 2014-05-27 International Business Machines Corporation Enabling co-existence of hosts or virtual machines with identical addresses
US8990371B2 (en) * 2012-01-31 2015-03-24 International Business Machines Corporation Interconnecting data centers for migration of virtual machines
US8923296B2 (en) * 2012-02-23 2014-12-30 Big Switch Networks, Inc. System and methods for managing network packet forwarding with a controller
CN104221335A (zh) * 2012-03-23 2014-12-17 日本电气株式会社 控制设备、通信设备、通信***、通信方法和程序
US10356037B2 (en) * 2013-08-01 2019-07-16 Hewlett Packard Enterprise Development Lp Address resolution rewriting
US9813312B2 (en) * 2014-07-21 2017-11-07 Big Switch Networks, Inc. Systems and methods for performing debugging operations on networks using a controller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102143068A (zh) * 2011-03-01 2011-08-03 华为技术有限公司 一种mac地址学习的方法,装置和***
WO2012133290A1 (ja) * 2011-03-31 2012-10-04 日本電気株式会社 コンピュータシステム、及び通信方法
CN103051538A (zh) * 2012-12-27 2013-04-17 华为技术有限公司 Arp表项生成的方法、控制设备及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GUILLERMO IBÁÑEZ等: "《Implementation of ARP-path low latency bridges in Linux and OpenFlow/NetFPGA》", 《IEEE 12TH INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE SWITCHING AND ROUTING(HPSR),2011》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105743788A (zh) * 2016-01-26 2016-07-06 北京小米移动软件有限公司 数据包转发方法及装置
CN106210173A (zh) * 2016-07-29 2016-12-07 杭州迪普科技有限公司 Dns回复报文的转发方法及装置
CN108075945A (zh) * 2016-11-18 2018-05-25 腾讯科技(深圳)有限公司 一种应用测试方法及装置

Also Published As

Publication number Publication date
CN108183976A (zh) 2018-06-19
EP3073698A1 (en) 2016-09-28
JP2017503405A (ja) 2017-01-26
EP3073698A4 (en) 2016-11-23
WO2015085576A1 (zh) 2015-06-18
US20160285820A1 (en) 2016-09-29
CN104937896B (zh) 2018-02-23

Similar Documents

Publication Publication Date Title
CN104937896A (zh) 地址解析协议消息的处理方法和转发器、控制器
US20170244792A1 (en) Power-Line Carrier Terminal Control Apparatus, System, and Method
US9608903B2 (en) Systems and methods for recovery from network changes
CN105379228B (zh) 实现arp的方法、交换设备及控制设备
CN105210337A (zh) 一种nfv***的业务实现方法及通信单元
WO2017054576A1 (zh) 单播隧道建立方法、装置和***
CN105827439B (zh) 实现无线设备自组网的方法
US10382391B2 (en) Systems and methods for managing network address information
CN103067278B (zh) 一种数据帧的传输处理方法、设备及***
CN104995882A (zh) 报文处理方法及装置
CN104160735A (zh) 发报文处理方法、转发器、报文处理设备、报文处理***
WO2022160665A1 (zh) 一种报文转发的方法、报文处理方法及设备
CN107465621A (zh) 一种路由器发现方法、sdn控制器、路由器和网络***
CN105284083A (zh) OpenFlow设备与IP网络设备通信的方法、装置和***
WO2019041944A1 (zh) 一种处理报文的方法和装置
WO2015058413A1 (zh) 一种数据配置方法及网络管理服务器
EP4304144A1 (en) Communication method and apparatus
WO2023011047A1 (zh) 一种处理方法及装置
CN109347734A (zh) 一种报文发送方法、装置、网络设备和计算机可读介质
CN104185971B (zh) 宣布进入相对较低的功率状态的至少一个消息
CN108833284A (zh) 一种云平台和idc网络的通信方法及装置
CN111770210B (zh) 一种多控制器分组方法及可读介质
CN103825831A (zh) 报文转发方法以及交换机
CN106507507A (zh) 一种无线网状网络拓扑结构搭建***及方法
CN103166853B (zh) 一种数据传输方法和设备

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201217

Address after: Northeast corner of the intersection of Beihuan road and Linji Road, Dingtao District, Heze City, Shandong Province

Patentee after: HEZE SHUANGLONG METALLURG MACHINERY Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.