一种报文转发方法及设备的制造方法_3

文档序号:9380169阅读:来源:国知局
流表查询并转发原始数据报文后,再将原始数据报 文上送至控制器,请求控制器为所述原始数据报文的关键字设定一个转发标识,并记录所 述控制器下发的第一转发标识流表项。
[0078] 首节点的下一跳节点接收到首节点转发的数据报文后,对接收到的数据报文进行 解析,如果解析到该数据报文中嵌套的转发标识,则根据解析出的转发标识在其上的流表 中查询与所述嵌套数据报文匹配的第二转发标识流表项,根据匹配的第二转发标识流表项 的动作集对所述数据报文进行处理;如果解析到该数据报文中没有嵌套转发标识,则该节 点在其上的流表中查询与该数据报文匹配的普通关键字流表项,根据匹配的普通关键字流 表项的动作集对所述数据报文进行处理。
[0079] 所述第二转发标识流表项记录有转发标识。其中,第二转发标识流表项仅记录有 转发标识这一匹配项,而不用记录关键字,这样,第二转发标记流表项中记录的匹配内容就 会少,对于有10个关键字的匹配流表项而言,这里仅记录对应的一个转发标识即可;同时, 不同节点的转发标识流表项中的动作集的内容会有所不同,例如,对于转发路径上的中间 节点的第二转发标识流表项,其动作集应包括报文转发端口,而对于转发路径上的尾节点 的第二转发标识流表项,其动作集除包括报文转发端口外,还应至少包括对嵌套报文中的 转发标识进行剥离的内容。
[0080] 具体地,首节点的下一跳节点可能是中间节点,也可能是尾节点,如果是中间节 点,它的第二转发标识流表项动作集为"转发嵌套数据报文",如表2所示;如果是尾节点, 它的第二转发标识流表项动作集为"剥离转发标识,转发原始数据报文",如表3所示。
[0081]表 2
[0085]
[0086] 本发明技术方案中,如果首节点根据原始数据报文的关键字遍历其上的流表,仅 查询到与所述原始数据报文匹配的普通关键字流表项,则将所述原始数据发送至控制器进 行转发标识的确认;如果首节点根据原始数据报文的关键字遍历其上的流表,与所述原始 数据报文匹配的普通关键字流表项和第一转发标识流表项均未查询到,则将所述原始数据 发送至控制器进行转发路径的确认。
[0087] 控制器接收到首节点发送来的原始数据报文后,计算所述原始数据报文的转发路 径,并为所述原始数据报文的关键字设定一个转发标识。所述转发标识可以是控制器在转 发标识列表中为所述原始数据报文的关键字分配一个空闲的转发标识,也可以是通过哈希 算法为所述原始数据报文的关键字计算一个转发标识,不限定转发标识的设定方法,只要 保证控制其为原始数据报文的关键字设定的转发标识具有唯一性即可。其中,所述的转发 标识列表,具体是预先在控制器设置的一个表,可包括能够使用的转发标识,当转发标识被 使用后,可对应记录该转发标识为非空闲,否则,转发标识可设置为空闲,从而可根据空闲 和非空闲来确定列表中的转发标识是否被使用。
[0088] 之后,控制器根据所述转发路径确定转发所述原始数据报文经过的各节点,为各 节点生成对应的转发标识流表项并下发到对应的各节点,以指导报文的转发,其中,所述首 节点的转发标识流表项为第一转发标识流表项,所述第一转发标识流表项记录有关键字与 转发标识的映射关系;其它节点的转发标识流表项为第二转发标识流表项,所述第二转发 标识流表项仅记录有转发标识一个匹配项。具体可参见上述相关说明。
[0089] 进一步的,若控制器中为所述原始数据报文的关键字设定一个空闲的转发标识失 败时,则所述控制器根据转发路径确定转发所述数据报文经过的各节点,为各节点生成对 应的普通关键字流表项并下发到对应的各节点,以指导报文的转发,所述普通关键字流表 项记录有关键字,此时转发路径各节点可按普通关键字流表项来对报文进行转发,在此不 再详述。
[0090] 上述所有转发标识流表项与普通关键字流表项均设置一个老化时间,如果整个老 化时间内都未接收到与该流表项匹配的数据报文,则Openflow交换机删除相应的流表项。 [0091 ] 下面以实施例对本发明技术方案进行进一步说明。
[0092] 方法实施例一
[0093] 以图4中Openflow网络结构图为例,假设该数据流关键字是Mac+Vlan,直连设备 1向直连设备2发送报文A-A-A+10,所述报文的关键字Mac+Vlan为A2+C1,交换机1上存在 与A2+C1匹配的第一转发标识流表项,图5为本实施例的流程图,包括以下步骤:
[0094] 步骤501 :交换机1接收到直连设备1发送的原始数据报文A-A-A+10,遍历其上的 流表,查询与该原始数据报文匹配的流表项。
[0095] 本步骤中,交换机1接收到直连设备1发送的原始数据报文A-A-A+10,遍历其上的 流表,查找与所述数据报文A-A-A+10匹配的流表项,查找到的匹配流表项为第一转发标识 流表项,如表4所示。
[0096] 表 4
[0098] 步骤502 :交换机1在所述原始数据报文A-A-A+10的以太层和IP层之间嵌套转 发标识" 7 ",生成嵌套数据报文,转发所述嵌套数据报文给交换机2。
[0099] 步骤501中,交换机1遍历自身流表,得到与原始数据报文A-A-A+10的MAC+Vlan (A2+C1)匹配得第一转发标识流表项,且流表项中记录的转发标识为"7",相应的动作集 为"在报文以太层和IP层之间嵌套转发标识",则将转发标识"7"嵌套在原始数据报文 A-A-A+10的以太层和IP层之间并转发。
[0100] 步骤503 :交换机2接收所述嵌套数据报文,对其进行解析得到其携带的转发标 识,根据转发标识遍历其流表,查询与所述嵌套数据报文匹配的第二转发标识流表项,并对 嵌套数据报文进行处理。
[0101] 本步骤中,交换机2接收到嵌套数据报文后首先要对其进行解析,根据解析得到 的转发标识遍历其流表,查询与所述嵌套数据报文匹配的第二转发标识流表项,如表5所 示,与转发标识"7"对应的动作集为"转发嵌套数据报文",则交换机2根据动作集包含的报 文出端口将接收到的嵌套数据报文转发出去,所述报文出端口连接的是交换机3,这样就使 报文由交换机2转发给了交换机3。
[0102] 表 5
[0103]
[0104] 步骤504 :交换机3接收所述嵌套数据报文,对其进行解析得到其携带的转发标 识,根据转发标识遍历其流表,查询与所述嵌套数据报文匹配的第二转发标识流表项,并对 嵌套数据报文进行处理。
[0105] 本步骤中,交换机3接收到嵌套数据报文后首先对其进行解析,得到所述嵌套数 据报文携带的转发标识"7",遍历其流表,查询与所述嵌套数据报文匹配的第二转发标识流 表项,如表6所示,与转发标识"7"匹配的动作集为"剥离转发标识,转发数据报文",则交换 机3剥离接收到的嵌套数据报文的转发标识,将剥离转发标识后的原始数据报文通过匹配 的第二转发标识流表动作集包含的报文出端口发送给直连设备2。
[0106] 表 6
[0107]
[0108] 本发明技术方案中,转发路径上除首节点外的其他所有节点上保存的流表项中需 要匹配的只有一个转发标识(32bit),跟现有技术中的10个匹配关键字(252bit)相比,节 省了 TCAM存储成本;同时在中间节点和尾节点上只需进行转发标识的查询,加快了表项的 查询速度,使重要业务能够更快转发。
[0109] 方法实施例二
[0110] 仍以图4中Openflow网络结构图为例,假设该数据流关键字是Mac+Vlan,直连设 备1向直连设备2发送报文A-A-A+10,所述报文的关键字Mac+Vlan为A2+C1,交换机1上 不存在与A2+C1匹配的流表项,图6为本实施例的流程图,包括以下步骤:
[0111] 步骤601 :交换机1接收到直连设备1发送的原始数据报文A-A-A+10,遍历其流 表,查询与该原始数据报文匹配的流表项。
[0112] 本步骤中,交换机1接收到直连设备1发送的原始数据报文A-A-A+10,遍历其流 表,没有找到与所述原始数据报文的Mac+Vlan (即A2+C1)匹配的流表项。具体的,交换机 1在其上的流表中没有查询到与A2+C1匹配的第一转发标识流表项,也没有查询到与A2+C1 匹配的普通关键字流表项。
[0113] 步骤602 :交换机1发送所述原始数据报文A-A-A+10给控制器。
[0114] 步骤601中,交换机1的流表中没有与所述A2+C1匹配的流表项,将所述原始数据 报文发送给控制器以确认转发路径。
[0115] 步骤603 :控制器接收到交换机1发送来的原始数据报文A-A-A+10,计算所述原始 数据报文的转发路径。
[0116] 本步骤中,控制器接收到所述原始数据报文后,计算出其转发路径为交换机1-交 换机2-交换机3,交换机1为首节点,交换
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1