CN105591963B - Sdn中报文转发方法和设备 - Google Patents
Sdn中报文转发方法和设备 Download PDFInfo
- Publication number
- CN105591963B CN105591963B CN201510535761.1A CN201510535761A CN105591963B CN 105591963 B CN105591963 B CN 105591963B CN 201510535761 A CN201510535761 A CN 201510535761A CN 105591963 B CN105591963 B CN 105591963B
- Authority
- CN
- China
- Prior art keywords
- gateway
- host
- flow table
- table item
- sdn
- 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
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了SDN中报文转发方法和设备。本申请中,SDN内主机可以受SDN控制器实时控制并不以VLAN为依据被均衡分配接入的网关,SDN内主机之间的流量、SDN内主机和外网主机的流量在各自的网关上分担。
Description
技术领域
本申请涉及网络通信技术,特别涉及软件定义网络(SDN:Software DefinedNetwork)中报文转发方法和设备。
背景技术
SDN,一种新型网络创新架构,其核心思想是将网络设备的控制层面与转发层面分离,以实现对网络流量的灵活控制,为核心网络及应用的创新提供良好的平台。
SDN目前支持用户的多种业务,包括二层业务、IP业务等。在SDN中,若对报文进行二层转发,SDN控制器计算出从源主机至目的主机之间的转发路径,依据转发路径依次在沿途设备上下发对应的流表以转发来自源主机的报文至目的主机,报文转发过程中不修改头部信息;若对报文进行IP转发,源主机可以将报文先送到网关设备上,沿途设备仍然执行二层转发,由网关设备执行IP转发,此时网关设备会修改报文头部信息,然后送到目的交换机,目的交换机最后将报文转发到目的主机。
SDN支持单个网关,在SDN中,所有跨VLAN访问的流量、以及所有和网络主机通信的流量都经过网关处理,这会导致SDN支持的单个网关的负载压力比较大。目前,可以使用传统的网关负载方式虚拟路由冗余协议(VRRP:Virtual Router Redundancy Protoco)方式在SDN部署多个网关并在多网关之间实现负载分担,但是VRRP方式下必须基于VLAN为主机选择网关,而SDN中的主机往往不依赖于VLAN,因此传统部署多网关的方式不能使用在SDN中。
发明内容
本申请提供了SDN中报文转发方法和设备,以实现SDN中多网关之间负载分担报文转发。
本申请提供的技术方案包括:
一种软件定义网络SDN中报文转发方法,该方法应用于SDN控制器,包括:
为SDN内相同网段内的各个不同网关分配相同的网关IP地址和网关MAC地址;
向各个不同网关下发用于转发报文至其他网关接入的主机的流表项;
为SDN内的第一主机选择接入的第一网关,并通知给第一主机;
向第一网关、以及从第一网关至第一主机的第一转发路径上的各网络设备下发用于转发报文至第一主机的流表项,向第一主机至第一网关的第二转发路径上各网络设备下发用于转发报文至第一网关的流表项。
一种软件定义网络SDN中报文转发方法,该方法应用于SDN中的第一网关,第一网关与SDN内各个不同网关处于相同网段内且被分配相同的网关IP地址和网关MAC地址,该方法包括:
接收SDN控制器下发的用于转发报文至本地第一主机的第一流表项;
接收SDN控制器下发的用于转发报文至第二网关接入的第二主机的第二流表项;
接收本地第一主机发送的访问第二主机的第一报文,依据已接收的第二流表项将第一报文转发至第二网关,以通过第二网关将第一报文转发至第二主机;
接收第二网关发送的第二主机访问第一主机的第二报文,依据已接收的第一流表项将第二报文转发至第一主机。
一种软件定义网络SDN中报文转发设备,该设备应用于SDN控制器,包括:
分配单元,用于为SDN内相同网段内的各个不同网关分配相同的网关IP地址和网关MAC地址;
选择单元,用于为SDN内的第一主机选择接入的第一网关,并通知给第一主机;
流表项单元,用于向第一网关、以及从第一网关至第一主机的第一转发路径上的各网络设备下发用于转发报文至第一主机的流表项,向第一主机至第一网关的第二转发路径上各网络设备下发用于转发报文至第一网关的流表项,以及向各个不同网关下发用于转发报文至其他网关接入的主机的流表项。
一种软件定义网络SDN中报文转发设备,该设备应用于SDN中的第一网关,第一网关与SDN内各个不同网关处于相同网段内且被分配相同的网关IP地址和网关MAC地址,该设备包括:
接收单元,用于接收SDN控制器下发的用于转发报文至本地第一主机的第一流表项;以及,接收SDN控制器下发的用于转发报文至第二网关接入的第二主机的第二流表项;
转发单元,用于接收本地第一主机发送的访问第二主机的第一报文,依据已接收的第二流表项将第一报文转发至第二网关,以通过第二网关将第一报文转发至第二主机;以及接收第二网关发送的第二主机访问第一主机的第二报文,依据已接收的第一流表项将第二报文转发至第一主机。
由以上技术方案可以看出,本发明中,能够实现主机至网关之间的双向转发。并且,SDN内主机可以受SDN控制器实时控制,并不以VLAN为依据被均衡分配接入的网关,SDN内主机之间的流量、SDN内主机和外网主机的流量在各自的网关上分担。
附图说明
图1为本发明提供的方法流程图。
图2为本发明提供的实施例示意图;
图3为本发明提供的设备结构图;
图4为本发明提供的另一设备结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明提供的在SDN中实现多网关的方法,不再使用传统的VRPP方式部署多网关,由此不使用传统的根据VLAN范围为主机选择网关,这能够保证SDN中多网关的部署灵活,可以根据网络情况灵活在SDN中部署网关,不再限制网关的数量。
下面通过图1对本发明提供的方法进行描述:
参见图1,图1为本发明提供的方法流程图。该流程应用于SDN控制器。如图1所示,该流程可包括以下步骤:
步骤101,为SDN内相同网段内的各个不同网关分配相同的网关IP地址和网关MAC地址。
在SDN中,SDN控制器可根据网络情况部署SDN中的多个交换设备作为网关。其中,这些作为网关的各交换设备处于相同网段内,具有相同的网关IP地址和网关MAC地址。这里的网关IP地址只是作为一个设定掩码范围内的网关,与VLAN无关。
具体地,本发明中,步骤101中为SDN内相同网段内的各个不同网关分配相同的网关IP地址和网关MAC地址可为:
通过网络协议(Netconf)或者其他南向协议下发已配置的网关IP地址和网关MAC地址至SDN内相同网段内的各个不同网关。如此,SDN内相同网段内的各个不同网关就具有相同的网关IP地址和网关MAC地址。
步骤102,向各个不同网关下发用于转发报文至其他网关接入的主机的流表项。
也即,本步骤102中,针对每一网关,为该网关生成用于转发报文至其他网关接入的主机的流表项并下发至该网关。
本发明中,这里,向网关下发的用于转发报文至其他网关接入的主机的流表项可包含以下两部分:
匹配项:目的IP地址为其他网关接入的主机的IP地址;
动作项:通过网关上的端口转发报文,其中,端口为网关至其他网关的最短路径的端口。
通过步骤102,一方面能够让接入不同网关的不同主机之间相互访问,另一方面可以实现SDN内外主机的对称访问,比如,当SDN内主机1访问外网主机时,主机1通过接入的网关转发报文,由接入的网关转发报文至外网主机;以及当外网主机访问SDN内主机1时,外网先将的报文转发至SDN内的网关,当该网关为主机1接入的网关时,直接由该网关转发报文至主机1,当该网关不为主机1接入的网关时,该网关依据已有的到主机1的流表项将报文送到主机1接入的网关,之后由主机1接入的网关转发报文给主机1。
步骤103,为SDN内的第一主机选择接入的第一网关,并通知给第一主机。
这里,第一主机、第一网关只是为便于描述进行的命名,并非限定本申请。
作为本发明的一个实施例,步骤103具体实现时可包括:
步骤a1,接收第一接入设备上送的来自第一主机的ARP请求报文,第一接入设备在接收到本地第一主机发送的所述ARP请求报文后上送ARP请求报文至SDN控制器。
这里,第一接入设备只是为便于描述进行的命名,并非限定本申请。
步骤a2,按照负载分担方式从SDN内的各个不同网关中为第一主机选择一个接入的第一网关,将第一网关的网关IP地址和网关MAC地址携带在ARP应答报文中发送给第一主机。
步骤104,向第一网关、以及从第一网关至第一主机的第一转发路径上的各网络设备下发用于转发报文至第一主机的流表项,向第一主机至第一网关的第二转发路径上各网络设备下发用于转发报文至第一网关的流表项。
作为本发明的一个实施例,这里的第一网关至第一主机的第一转发路径优选为第一网关至第一主机的最短路径;第一主机至第一网关的第二转发路径为第一主机至第一网关的最短路径。第一网关至第一主机的第一转发路径上的网络设备不包含第一网关、第一主机;第一主机至第一网关的第二转发路径上的网络设备不包含第一网关、第一主机。
通过步骤104,则第一网关和第一主机之间即可通过流表项进行互访。
作为本发明的一个实施例,上述的用于转发报文至第一主机的流表项具体实现时可为以第一网关为源第一主机为目的的流表项,可包含以下两部分:
匹配项:目的IP地址为第一主机的IP地址,源MAC地址为第一网关的网关MAC地址;
动作项:通过处于第一转发路径上的端口转发。
第一网关、第一转发路径上的各个网络设备(第一转发路径上介于该第一网关和第一主机之间的所有中间设备)收到报文后,其会利用该报文的目的IP地址和源MAC地址匹配上述的流表项,如果命中,则依据该匹配的流表项中的动作项转发该收到的报文。即能够实现第一网关发送的报文顺利发送至第一主机。
作为本发明的一个实施例,上述的用于转发来自第一主机的报文至该第一网关的流表项具体实现时可为以第一主机为源第一网关为目的的流表项,可包含以下两部分:
匹配项:源IP地址为第一主机的IP地址,目的MAC地址为第一网关的网关MAC地址;
动作项:通过处于第二转发路径上的端口转发;
第二转发路径上介于主机和第一网关之间的所有中间设备收到报文后,其会利用该报文的源IP地址和目的MAC地址匹配上述的流表项,如果命中,则依据该匹配的流表项中的动作项转发该收到的报文,即能够实现第一主机发送的报文顺利发送至第一网关。
至此,完成图1所示的流程。
下面通过一个具体实施例对图1所示流程进行举例:
如图2所示的SDN,SDN控制器指定交换设备SW5和SW6作为某个网段内的网关,图2所示的SDN中SW1至SW4为用户侧网络的接入设备。
SDN控制器为SW5、SW6分配相同的网关IP地址和网关MAC地址。为便于描述,以下将网关IP地址称为IP0,将网关MAC地址称为MAC0;
当SW1接收到本地主机PC100发送的用于请求网关的ARP请求报文时,将该ARP请求报文上送到SDN控制器。这里,可自动在SW1至SW4设置一个默认流表,用于指示ARP请求报文上送至SDN控制器。
SDN控制器收到SW1上送的ARP请求报文,学习ARP请求报文中的主机PC100的ARP信息,并依据SW5、SW6目前已接入的主机数量按照负载分担方式为主机PC100选择接入的网关。这里以选择SW5作为主机PC100接入的网关为例。
SDN控制器将SW5的网关IP地址即IP0和网关MAC地址即MAC0携带在ARP应答报文中发送给主机PC100。
SDN控制器依据已学习的主机PC100的ARP信息确定从SW5至主机PC100的转发路径,假如该转发路径为SW5->SW1->主机PC100,则SDN控制器为SW5生成用于转发报文至主机PC100的流表项(记为表项1)并下发给SW5,表项1的匹配项为:目的IP地址为主机PC100的IP地址(记为IP100),源MAC地址为SW5的网关MAC地址即MAC50,动作项为:通过SW5上处于转发路径SW5->SW1->主机PC100的端口Port5-100转发;SDN控制器为SW1生成用于转发报文至主机PC100的流表项(记为表项2)并下发给SW1,表项2的匹配项为:目的IP地址为IP100,源MAC地址为MAC0,动作项为:通过SW1上处于转发路径SW5->SW1->主机PC100的端口Port1-100转发。
SDN控制器依据已学习的主机PC100的ARP信息确定从主机PC100至SW5的转发路径,假如该转发路径为主机PC100->SW1->SW5,则SDN控制器为SW1生成用于转发报文至SW5的流表项(记为表项3)并下发给SW1,表项3的匹配项为:源IP地址为IP100,目的MAC地址为MAC0,动作项为:通过SW1上处于转发路径主机PC100->SW1->SW5的端口Port1-500转发。
当SW2接收到本地主机PC200发送的用于请求网关的ARP请求报文时,将该ARP请求报文上送到SDN控制器。
SDN控制器收到SW2上送的ARP请求报文,学习ARP请求报文中的主机PC200的ARP信息,并依据SW5、SW6目前已接入的主机数量按照负载分担方式为主机PC200选择接入的网关。这里以选择SW5作为主机PC200接入的网关。
SDN控制器将SW5的网关IP地址即IP0和网关MAC地址即MAC0携带在ARP应答报文中发送给主机PC200。
SDN控制器依据已学习的主机PC200的ARP信息确定从SW5至主机PC200的转发路径,假如该转发路径为SW5->SW2->主机PC200,则SDN控制器为SW5生成用于转发报文至主机PC200的流表项(记为表项4)并下发给SW5,表项4的匹配项为:目的IP地址为主机PC200的IP地址(记为IP200),源MAC地址为MAC0,动作项为:通过SW5上处于转发路径SW5->SW2->主机PC200的端口Port5-200转发;SDN控制器为SW2生成用于转发报文至主机PC200的流表项(记为表项5)并下发给SW2,表项5的匹配项为:目的IP地址为IP200,源MAC地址为MAC0,动作项为:通过SW2上处于转发路径SW5->SW2->主机PC200的端口Port2-200转发。
SDN控制器依据已学习的主机PC200的ARP信息确定从主机PC200至SW5的转发路径,假如该转发路径为主机PC200->SW2->SW5,则SDN控制器为SW2生成用于转发报文至SW5的流表项(记为表项6)并下发给SW2,表项6的匹配项为:源IP地址为IP200,目的MAC地址为MAC0,动作项为:通过SW2上处于转发路径主机PC200->SW2->SW5的端口Port2-500转发。
当SW3接收到本地主机PC300发送的用于请求网关的ARP请求报文时,将该ARP请求报文上送到SDN控制器。
SDN控制器收到SW3上送的ARP请求报文,学习ARP请求报文中的主机PC300的ARP信息,并依据SW5、SW6目前已接入的主机数量按照负载分担方式为主机PC300选择接入的网关。这里以选择SW6作为主机PC300接入的网关为例。
SDN控制器将SW6的网关IP地址即IP0和网关MAC地址即MAC0携带在ARP应答报文中发送给主机PC300。
SDN控制器依据已学习的主机PC300的ARP信息确定从SW6至主机PC300的转发路径,假如该转发路径为SW6->SW3->主机PC300,则SDN控制器为SW6生成用于转发报文至主机PC300的流表项(记为表项7)并下发给SW6,表项7的匹配项为:目的IP地址为主机PC300的IP地址(记为IP300),源MAC地址为MAC0,动作项为:通过SW6上处于转发路径SW6->SW3->主机PC300的端口Port6-300转发;SDN控制器为SW3生成用于转发报文至主机PC300的流表项(记为表项8)并下发给SW3,表项8的匹配项为:目的IP地址为IP300,源MAC地址为MAC0,动作项为:通过SW3上处于转发路径SW6->SW3->主机PC300的端口Port3-300转发。
SDN控制器依据已学习的主机PC300的ARP信息确定从主机PC300至SW6的转发路径,假如该转发路径为主机PC300->SW3->SW6,则SDN控制器为SW3生成用于转发报文至SW6的流表项(记为表项9)并下发给SW3,表项9的匹配项为:源IP地址为IP300,目的MAC地址为MAC0,动作项为:通过SW3上处于转发路径主机PC300->SW3->SW6的端口Port3-600转发。
SDN控制器为SW5生成用于转发报文至主机PC300的流表项(记为表项10),将表项10下发至SW5,表项10中匹配项为:目的IP地址为主机PC300的IP地址即IP300,动作项为:通过SW5上处于从SW5至SW6的转发路径的端口即端口Port5-6转发;通过表项10可实现SW5下的各个主机如主机PC100、主机PC200访问SW6下的主机PC300。
SDN控制器还为SW6生成用于转发报文至主机PC100的流表项(记为表项11),以及为SW6生成用于转发报文至主机PC200的流表项(记为表项12),将为表项11、表项12下发至SW6。其中,表项11中匹配项为:目的IP地址为主机PC100的IP地址即IP100,动作项为:通过SW6上处于从SW6至SW5的转发路径的端口即端口Port6-5转发;通过表项11可实现SW6下的主机如主机PC300访问SW5下的主机PC100;
其中,表项12中匹配项为:目的IP地址为主机PC200的IP地址即IP200,动作项为:通过SW6上处于从SW6至SW5的转发路径的端口即端口Port6-5转发;通过表项12可实现SW6下的主机如主机PC300访问SW5下的主机PC200。
当主机PC100访问主机PC200时,则,
主机PC100发送数据报文至接入的SW1,数据报文的源IP地址为IP100,源MAC地址为主机PC100的MAC地址(以MAC100为例),目的MAC地址为网关SW5的网关MAC地址MAC0,目的IP地址为IP200。
SW1依据报文01的源IP地址、目的MAC地址命中表项3,则依据表项3的动作项通过端口Port1-500,发送目的MAC地址为MAC0的报文至SW5;
SW5收到目的MAC地址为MAC0的报文,确定目的IP地址为本网关SW5接入的主机PC200的IP地址即IP200,则将报文的源MAC地址修改为本网关SW5的网关MAC地址MAC0,将报文的目的MAC地址修改为主机PC200的MAC地址(以MAC200为例)。
SW5依据报文02的目的IP地址IP200、源MAC地址MAC0命中表项4,则依据表项4的动作项通过端口Port5-200发送目的MAC地址为MAC200的报文。
SW2收到目的MAC地址为MAC200的报文,依据报文的目的IP地址IP200、源MAC地址MAC0命中表项5,则依据表项5的动作项通过端口Port2-200发送目的MAC地址为MAC200的报文。
最终,主机PC200会收到目的MAC地址为MAC200的报文,即实现了主机PC100访问主机PC200。类似地,主机PC200访问主机PC100的原理类似,这里不再赘述。
当主机PC100访问主机PC300时,则,
主机PC100发送数据报文至接入的SW1,数据报文的源IP地址为IP100,源MAC地址为主机PC100的MAC地址MAC100,目的MAC地址为网关SW5的网关MAC地址MAC0,目的IP地址为IP300。
SW1依据报文03的源IP地址IP100、目的MAC地址MAC0命中表项3,则依据表项3的动作项通过端口Port1-500发送目的MAC地址为MAC0的报文至SW5;
SW5收到报文后,将报文的源MAC地址修改为本网关SW5的网关MAC地址MAC0,将报文的目的MAC地址修改为主机PC300的MAC地址(以MAC300为例)。
SW5依据报文的目的IP地址IP300命中表项10,则依据表项10的动作项通过端口Port5-6发送目的MAC地址为MAC300的报文。
SW6收到目的MAC地址为MAC300的报文,依据报文的目的IP地址IP300、源MAC地址MAC0命中上述的表项7,依据表项7的动作项通过端口Port6-300发送目的MAC地址为MAC300的报文。
SW3收到报文,依据报文的目的IP地址IP300、源MAC地址MAC0命中上述的表项8,则依据表项8的动作项通过端口Port3-300发送目的MAC地址为MAC300的报文。最终,主机PC300会收到目的MAC地址为MAC300的报文,即实现了主机PC100访问主机PC300。类似地,主机PC300访问主机PC100的原理类似,这里不再赘述。同样的原理,SDN内主机比如主机PC100等访问外网、或者外网访问SDN内主机比如主机PC10等的方式类似主机PC100访问主机PC300的方式,这里不再赘述。
至此,完成图2所示的实施例描述。
本发明中,当SDN控制器确定上述第一主机从第一接入设备迁移至第二接入设备时,可进一步执行以下步骤:
步骤b1,重新按照负载分担方式从SDN的各个不同网关中为第一主机选择接入的网关;
步骤b2,通知第一网关、以及第一转发路径上各个网络设备删除已有的用于转发报文至第一主机的流表项,通知第二转发路径上各个网络设备删除已有的用于转发来自第一主机的报文至第一网关的流表项。
步骤b3,向重新选择的网关、从该重新选择的网关至第一主机的第三转发路径上的各个网络设备下发用于转发报文至第一主机的流表项,向从第一主机至该重新选择的网关的第四转发路径上的各个网络设备下发用于转发来自第一主机的报文至该重新选择的网关的流表项,并在该重新选择的网关与第一网关不同时,通知各个网关删除已有的用于转发报文至第一主机的流表项,并向除该重新选择的网关之外的其他网关下发用于转发报文至第一主机的流表项。
以图2中的主机PC100从SW1迁移至SW3进行举例描述:
当主机PC100从SW1迁移至SW3后,SW3会接收到主机PC100发送的免费ARP请求报文或数据报文;
当SW3接收到主机PC100发送的免费ARP请求报文或数据报文,则会上送SDN控制器。
SDN控制器收到主机PC100发送的免费ARP请求报文或数据报文后,发现主机PC100从原来接入的SW1迁移至SW3,确定主机PC100发生迁移,则依据SW5、SW6目前已接入的主机数量按照负载分担方式为主机PC100重新选择接入的网关。这里重新选择的网关可能为主机PC100迁移之前接入的网关SW5相同,也可能为SW6,这里以重新选择的网关为SW6为例。
SDN控制器通知从SW5至主机PC100的转发路径上的SW5删除上述的表项1、SW1删除上述的表项2;
SDN控制器通知从主机PC100至SW5的转发路径上的SW1删除上述的表项3;
SDN控制器发现该重新选择的网关SW6与主机PC100在迁移前接入的网关SW5不同,则通知SW6删除上述的表项11。
SDN控制器为SW5生成用于转发报文至主机PC100的流表项(记为表项13)并下发给SW5。其中,表项13中匹配项为:目的IP地址为主机PC100的IP地址即IP100,动作项为:通过SW5上处于从SW5至SW6的转发路径的端口即端口Port5-6转发;通过表项13可实现SW5访问SW6下新迁移的主机PC100。
SDN控制器依据已学习的主机PC100的ARP信息确定从主机PC100至SW6的转发路径,假如该转发路径为主机PC100->SW3->SW6,则SDN控制器为SW3生成用于转发报文至SW6的流表项(记为表项14)并下发给SW3,表项14的匹配项为:源IP地址为IP100,目的MAC地址为MAC0,动作项为:通过SW3上处于转发路径主机PC100->SW3->SW6的端口Port1-600转发。
SDN控制器依据已学习的主机PC100的ARP信息确定从SW6至主机PC100的转发路径,假如该转发路径为SW6->SW3->主机PC100,则SDN控制器为SW6生成用于转发报文至主机PC100的流表项(记为表项15)并下发给SW6,表项15的匹配项为:目的IP地址为IP100,源MAC地址为MAC0,动作项为:通过SW6上处于转发路径SW6->SW3->主机PC100的端口Port6-100转发;SDN控制器为SW3生成用于转发报文至主机PC100的流表项(记为表项16),表项16的匹配项为:目的IP地址为IP100,源MAC地址为MAC0,动作项为:通过SW3上处于转发路径SW6->SW3->主机PC100的端口Port3-100转发。
本发明中,SDN中新增加网关时,SDN控制器可进一步执行以下步骤:
步骤c1,分配所述网关IP地址和网关MAC地址给该新增加的网关。
步骤c2,依据负载分担方式将至少一个主机接入的网关变更为该新增加的网关。
步骤c3,针对发生网关变更的每一主机,则执行以下步骤b4。
步骤c4,通知各个网络设备删除已有的用于转发报文至该主机的流表项,通知各个网络设备删除已有的用于转发来自该主机的报文至该主机在网关变更之前接入的网关的流表项,向该新增加的网关、以及从该新增加的网关至该主机的第五转发路径上的各个网络设备下发用于转发报文至该主机的流表项,向从该主机至该新增加的网关的第六转发路径上的各个网络设备生成用于转发来自该主机的报文至该新增加的网关的流表项,为除该新增加的网关之外的其他网关生成用于转发报文至该主机的流表项并下发至其他网关。
具体地,上述的通知各个网络设备删除已有的用于转发报文至该主机的流表项具体可包括:
通知从主机在网关变更之前接入的网关至主机的转发路径上的各个网络设备删除已有的用于转发报文至该主机的流表项;
通知除主机在网关变更之前接入的网关之外的其他各个网关删除已有的用于转发报文至该主机的流表项。
仍以图2进行举例描述:
SDN控制器确定SDN中新增加网关,比如图2中新增加SW7作为网关,则依据SW5、SW6目前已接入的主机数量按照负载分担方式将主机PC200接入的网关从SW5变更为SW7。
SDN控制器通知SW5删除上述的表项4、SW2删除上述的表项5,以及通知SW6删除上述的表项12;
SDN控制器通知SW2删除上述的表项6;
SDN控制器依据已学习的主机PC200的ARP信息确定从SW7至主机PC200的转发路径,假如该转发路径为SW7->SW2->主机PC200,则SDN控制器为SW7生成用于转发报文至主机PC200的流表项(记为表项17)并下发给SW7,表项17的匹配项为:目的IP地址为IP200,源MAC地址为MAC0,动作项为:通过SW7上处于转发路径SW7->SW2->主机PC200的端口Port7-200转发;SDN控制器为SW2生成用于转发报文至主机PC200的流表项(记为表项18)并下发给SW2,表项18的匹配项为:目的IP地址为IP200,源MAC地址为MAC0,动作项为:通过SW2上处于转发路径SW7->SW2->主机PC200的端口Port2-200转发。
SDN控制器依据已学习的主机PC200的ARP信息确定从主机PC200至SW7的转发路径,假如该转发路径为主机PC200->SW2->SW7,则SDN控制器为SW27生成用于转发报文至SW7的流表项(记为表项19)并下发给SW3,表项19的匹配项为:源IP地址为IP200,目的MAC地址为MAC0,动作项为:通过SW2上处于转发路径主机PC200->SW2->SW2的端口Port2-700转发。
SDN控制器为SW5生成用于转发报文至主机PC200的流表项(记为表项20)并下发给SW5。其中,表项20中匹配项为:目的IP地址为主机PC200的IP地址即IP200,动作项为:通过SW5上处于从SW5至SW7的转发路径的端口即端口Port5-7转发;通过表项20可实现SW5访问SW7下新迁移的主机PC200。
SDN控制器为SW6生成用于转发报文至主机PC200的流表项(记为表项21)并下发给SW6。其中,表项21中匹配项为:目的IP地址为主机PC200的IP地址即IP200,动作项为:通过SW6上处于从SW6至SW7的转发路径的端口即端口Port6-7转发;通过表项21可实现SW6访问SW7下新迁移的主机PC200。
通过上面描述的SDN控制器进一步执行的步骤,主机可以在网络中灵活的迁移,而不必通过配置更改网关,迁移后的数据流量也可以实现平滑过渡,不会出现长时间丢包;同时也可以实现通过SDN管理平台实时部署网关,更新网络内的网关,控制器重新分配每个网关下的主机,最大化的利用网关资源。
以上对本发明提供的方法进行了描述。下面对本发明提供的设备进行描述:
参见图3,图3为本发明提供的设备结构图。该设备应用于SDN控制器,包括:
分配单元,用于为SDN内相同网段内的各个不同网关分配相同的网关IP地址和网关MAC地址;
选择单元,用于为SDN内的第一主机选择接入的第一网关,并通知给第一主机;
流表项单元,用于向第一网关、以及从第一网关至第一主机的第一转发路径上的各网络设备下发用于转发报文至第一主机的流表项,向第一主机至第一网关的第二转发路径上各网络设备下发用于转发报文至第一网关的流表项,以及向各个不同网关生成用于转发报文至其他网关接入的主机的流表项。
优选地,所述选择单元为SDN内的第一主机选择接入的第一网关,并通知给第一主机包括:
接收第一接入设备上送的来自第一主机的ARP请求报文,第一接入设备在接收到本地第一主机发送的所述ARP请求报文后上送ARP请求报文至SDN控制器;
按照负载分担方式从SDN的各个不同网关中为第一主机选择一个接入的第一网关,将第一网关的网关IP地址和网关MAC地址携带在ARP应答报文中发送给第一主机。
优选地,所述选择单元在第一主机从接入的第一接入设备迁移至第二接入设备时,重新按照负载分担方式从SDN的各个不同网关中为第一主机选择接入的网关;
所述流表项单元进一步通知第一网关、以及第一转发路径上各个网络设备删除已有的用于转发报文至第一主机的流表项,通知第二转发路径上各个网络设备删除已有的用于转发来自第一主机的报文至第一网关的流表项;以及向重新选择的网关、从该重新选择的网关至第一主机的第三转发路径上的各个网络设备下发用于转发报文至第一主机的流表项,向从第一主机至该重新选择的网关的第四转发路径上的各个网络设备下发用于转发来自第一主机的报文至该重新选择的网关的流表项,并在该重新选择的网关与第一网关不同时,通知各个网关删除已有的用于转发报文至第一主机的流表项,并向除该重新选择的网关之外的其他网关下发用于转发报文至第一主机的流表项。
优选地,所述选择单元在SDN中新增加网关时,分配所述网关IP地址和网关MAC地址给该新增加的网关,并依据负载分担方式将至少一个主机接入的网关变更为该新增加的网关;
所述表项单元进一步针对发生网关变更的每一主机,执行以下操作:
通知各个网络设备删除已有的用于转发报文至该主机的流表项,通知各个网络设备删除已有的用于转发来自该主机的报文至该主机在网关变更之前接入的网关的流表项,向该新增加的网关、以及从该新增加的网关至该主机的第五转发路径上的各个网络设备下发用于转发报文至该主机的流表项,向从该主机至该新增加的网关的第六转发路径上的各个网络设备生成用于转发来自该主机的报文至该新增加的网关的流表项,为除该新增加的网关之外的其他网关生成用于转发报文至该主机的流表项并下发至其他网关。
至此,完成图3所示的设备结构描述。
参见图4,图4为本发明提供的另一设备结构图。该设备应用于SDN中的第一网关,第一网关与SDN内各个不同网关处于相同网段内且被分配相同的网关IP地址和网关MAC地址,如图4所示,该设备可包括:
接收单元,用于接收SDN控制器下发的用于转发报文至本地第一主机的第一流表项;以及,接收SDN控制器下发的用于转发报文至第二网关接入的第二主机的第二流表项;
转发单元,用于接收本地第一主机发送的访问第二主机的第一报文,依据已接收的第二流表项将第一报文转发至第二网关,以通过第二网关将第一报文转发至第二主机;以及接收第二网关发送的第二主机访问第一主机的第二报文,依据已接收的第一流表项将第二报文转发至第一主机。
至此,完成图4所示的设备结构图。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种软件定义网络SDN中报文转发方法,其特征在于,该方法应用于SDN控制器,包括:
为SDN内相同网段内的各个不同网关分配相同的网关IP地址和网关MAC地址;
向各个不同网关下发用于转发报文至其他网关接入的主机的流表项;
为SDN内的第一主机选择接入的第一网关,并通知给第一主机;
向第一网关、以及从第一网关至第一主机的第一转发路径上的各网络设备下发用于转发报文至第一主机的流表项,向第一主机至第一网关的第二转发路径上各网络设备下发用于转发报文至第一网关的流表项。
2.根据权利要求1所述的方法,其特征在于,所述为SDN内的第一主机选择接入的第一网关,并通知给第一主机包括:
接收第一接入设备上送的来自第一主机的ARP请求报文,第一接入设备在接收到本地第一主机发送的所述ARP请求报文后上送ARP请求报文至SDN控制器;
按照负载分担方式从SDN内的各个不同网关中为第一主机选择一个接入的第一网关,将第一网关的网关IP地址和网关MAC地址携带在ARP应答报文中发送给第一主机。
3.根据权利要求1或2所述的方法,其特征在于,当第一主机从接入的第一接入设备迁移至第二接入设备时,该方法进一步包括:
重新按照负载分担方式从SDN的各个不同网关中为第一主机选择接入的网关;
通知第一网关、以及第一转发路径上各个网络设备删除已有的用于转发报文至第一主机的流表项,通知第二转发路径上各个网络设备删除已有的用于转发来自第一主机的报文至第一网关的流表项;
向重新选择的网关、从该重新选择的网关至第一主机的第三转发路径上的各个网络设备下发用于转发报文至第一主机的流表项,向从第一主机至该重新选择的网关的第四转发路径上的各个网络设备下发用于转发来自第一主机的报文至该重新选择的网关的流表项,并在该重新选择的网关与第一网关不同时,通知各个网关删除已有的用于转发报文至第一主机的流表项,并向除该重新选择的网关之外的其他网关下发用于转发报文至第一主机的流表项。
4.根据权利要求1所述的方法,其特征在于,当SDN中新增加网关时,该方法进一步包括:
分配所述网关IP地址和网关MAC地址给该新增加的网关;
依据负载分担方式将至少一个主机接入的网关变更为该新增加的网关;
针对发生网关变更的每一主机,执行以下步骤:
通知各个网络设备删除已有的用于转发报文至该主机的流表项,通知各个网络设备删除已有的用于转发来自该主机的报文至该主机在网关变更之前接入的网关的流表项,向该新增加的网关、以及从该新增加的网关至该主机的第五转发路径上的各个网络设备下发用于转发报文至该主机的流表项,向从该主机至该新增加的网关的第六转发路径上的各个网络设备生成用于转发来自该主机的报文至该新增加的网关的流表项,为除该新增加的网关之外的其他网关生成用于转发报文至该主机的流表项并下发至其他网关。
5.一种软件定义网络SDN中报文转发方法,其特征在于,该方法应用于SDN中的第一网关,第一网关与SDN内各个不同网关处于相同网段内且被分配相同的网关IP地址和网关MAC地址,该方法包括:
接收SDN控制器下发的用于转发报文至本地第一主机的第一流表项;
接收SDN控制器下发的用于转发报文至第二网关接入的第二主机的第二流表项;
接收本地第一主机发送的访问第二主机的第一报文,依据已接收的第二流表项将第一报文转发至第二网关,以通过第二网关将第一报文转发至第二主机;
接收第二网关发送的第二主机访问第一主机的第二报文,依据已接收的第一流表项将第二报文转发至第一主机。
6.一种软件定义网络SDN中报文转发设备,其特征在于,该设备应用于SDN控制器,包括:
分配单元,用于为SDN内相同网段内的各个不同网关分配相同的网关IP地址和网关MAC地址;
选择单元,用于为SDN内的第一主机选择接入的第一网关,并通知给第一主机;
流表项单元,用于向第一网关、以及从第一网关至第一主机的第一转发路径上的各网络设备下发用于转发报文至第一主机的流表项,向第一主机至第一网关的第二转发路径上各网络设备下发用于转发报文至第一网关的流表项,以及向各个不同网关下发用于转发报文至其他网关接入的主机的流表项。
7.根据权利要求6所述的设备,其特征在于,所述选择单元为SDN内的第一主机选择接入的第一网关,并通知给第一主机包括:
接收第一接入设备上送的来自第一主机的ARP请求报文,第一接入设备在接收到本地第一主机发送的所述ARP请求报文后上送ARP请求报文至SDN控制器;
按照负载分担方式从SDN的各个不同网关中为第一主机选择一个接入的第一网关,将第一网关的网关IP地址和网关MAC地址携带在ARP应答报文中发送给第一主机。
8.根据权利要求6或7所述的设备,其特征在于,所述选择单元在第一主机从接入的第一接入设备迁移至第二接入设备时,重新按照负载分担方式从SDN的各个不同网关中为第一主机选择接入的网关;
所述流表项单元进一步通知第一网关、以及第一转发路径上各个网络设备删除已有的用于转发报文至第一主机的流表项,通知第二转发路径上各个网络设备删除已有的用于转发来自第一主机的报文至第一网关的流表项;以及向重新选择的网关、从该重新选择的网关至第一主机的第三转发路径上的各个网络设备下发用于转发报文至第一主机的流表项,向从第一主机至该重新选择的网关的第四转发路径上的各个网络设备下发用于转发来自第一主机的报文至该重新选择的网关的流表项,并在该重新选择的网关与第一网关不同时,通知各个网关删除已有的用于转发报文至第一主机的流表项,并向除该重新选择的网关之外的其他网关下发用于转发报文至第一主机的流表项。
9.根据权利要求6所述的设备,其特征在于,所述选择单元在SDN中新增加网关时,分配所述网关IP地址和网关MAC地址给该新增加的网关,并依据负载分担方式将至少一个主机接入的网关变更为该新增加的网关;
所述流表项单元进一步针对发生网关变更的每一主机,执行以下操作:
通知各个网络设备删除已有的用于转发报文至该主机的流表项,通知各个网络设备删除已有的用于转发来自该主机的报文至该主机在网关变更之前接入的网关的流表项,向该新增加的网关、以及从该新增加的网关至该主机的第五转发路径上的各个网络设备下发用于转发报文至该主机的流表项,向从该主机至该新增加的网关的第六转发路径上的各个网络设备生成用于转发来自该主机的报文至该新增加的网关的流表项,为除该新增加的网关之外的其他网关生成用于转发报文至该主机的流表项并下发至其他网关。
10.一种软件定义网络SDN中报文转发设备,其特征在于,该设备应用于SDN中的第一网关,第一网关与SDN内各个不同网关处于相同网段内且被分配相同的网关IP地址和网关MAC地址,该设备包括:
接收单元,用于接收SDN控制器下发的用于转发报文至本地第一主机的第一流表项;以及,接收SDN控制器下发的用于转发报文至第二网关接入的第二主机的第二流表项;
转发单元,用于接收本地第一主机发送的访问第二主机的第一报文,依据已接收的第二流表项将第一报文转发至第二网关,以通过第二网关将第一报文转发至第二主机;以及接收第二网关发送的第二主机访问第一主机的第二报文,依据已接收的第一流表项将第二报文转发至第一主机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510535761.1A CN105591963B (zh) | 2015-08-27 | 2015-08-27 | Sdn中报文转发方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510535761.1A CN105591963B (zh) | 2015-08-27 | 2015-08-27 | Sdn中报文转发方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105591963A CN105591963A (zh) | 2016-05-18 |
CN105591963B true CN105591963B (zh) | 2018-10-12 |
Family
ID=55931195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510535761.1A Active CN105591963B (zh) | 2015-08-27 | 2015-08-27 | Sdn中报文转发方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105591963B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107623663B (zh) | 2016-07-15 | 2020-12-15 | 阿里巴巴集团控股有限公司 | 处理网络流量的方法及装置 |
CN106254205B (zh) * | 2016-10-25 | 2019-11-12 | 新华三技术有限公司 | 一种报文传输方法和装置 |
CN109450709B (zh) * | 2018-12-20 | 2022-02-11 | 新华三技术有限公司 | 异步消息配置方法、上送方法、控制器及网络设备 |
CN114760249B (zh) * | 2021-01-08 | 2023-08-04 | 大唐移动通信设备有限公司 | 一种基于sdn网络的数据处理方法和装置及设备 |
CN116248581B (zh) * | 2022-12-29 | 2024-09-03 | 天翼云科技有限公司 | 一种基于sdn的云场景网关集群主备切换方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532672A (zh) * | 2013-10-22 | 2014-01-22 | 芮雄丽 | 一种sdn网络中分片报文乱序的处理方法及应用 |
CN103581021A (zh) * | 2013-10-23 | 2014-02-12 | 华为技术有限公司 | 软件定义网络下业务检测的方法及设备 |
CN103763207A (zh) * | 2014-01-29 | 2014-04-30 | 杭州华三通信技术有限公司 | 软件定义网络中的带内控制连接建立方法及设备 |
CN103763146A (zh) * | 2014-01-29 | 2014-04-30 | 杭州华三通信技术有限公司 | 一种软件定义网络控制器及其生成转发信息的方法 |
WO2014131274A1 (en) * | 2013-02-28 | 2014-09-04 | Hangzhou H3C Technologies Co., Ltd. | Vepa switch message forwarding |
-
2015
- 2015-08-27 CN CN201510535761.1A patent/CN105591963B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014131274A1 (en) * | 2013-02-28 | 2014-09-04 | Hangzhou H3C Technologies Co., Ltd. | Vepa switch message forwarding |
CN103532672A (zh) * | 2013-10-22 | 2014-01-22 | 芮雄丽 | 一种sdn网络中分片报文乱序的处理方法及应用 |
CN103581021A (zh) * | 2013-10-23 | 2014-02-12 | 华为技术有限公司 | 软件定义网络下业务检测的方法及设备 |
CN103763207A (zh) * | 2014-01-29 | 2014-04-30 | 杭州华三通信技术有限公司 | 软件定义网络中的带内控制连接建立方法及设备 |
CN103763146A (zh) * | 2014-01-29 | 2014-04-30 | 杭州华三通信技术有限公司 | 一种软件定义网络控制器及其生成转发信息的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105591963A (zh) | 2016-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105591963B (zh) | Sdn中报文转发方法和设备 | |
US9374835B2 (en) | Methods and apparatus for enforcing a common user policy within a network | |
EP2579544B1 (en) | Methods and apparatus for a scalable network with efficient link utilization | |
CN104202266B (zh) | 一种通信方法、交换机、控制器及通信系统 | |
US6591303B1 (en) | Method and apparatus for parallel trunking of interfaces to increase transfer bandwidth | |
CN103997414B (zh) | 生成配置信息的方法和网络控制单元 | |
CN105591863B (zh) | 一种实现虚拟私有云网络与外部网络互通的方法和装置 | |
US20140230044A1 (en) | Method and Related Apparatus for Authenticating Access of Virtual Private Cloud | |
CN104348724B (zh) | 一种支持多租户的数据转发方法和装置 | |
WO2014136864A1 (ja) | パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム | |
CN105577723B (zh) | 虚拟化网络中实现负载分担的方法和装置 | |
CN107770062A (zh) | 一种数据包发送方法、装置及网络架构 | |
AU3572999A (en) | Establishing connectivity in networks | |
CN105264493A (zh) | 信息中心网络上的动态虚拟机迁移 | |
JP6206508B2 (ja) | パケット転送装置、制御装置、通信システム、通信方法及びプログラム | |
WO2008094819A1 (en) | Policy-based tunneling of multicast streams | |
JP5199331B2 (ja) | ネットワークにおいてデータ・ユニットをルーティングするデバイスおよび方法 | |
CN106576075A (zh) | 虚拟分布式路由环境中的进入ecmp | |
CN106302320A (zh) | 用于对用户的业务进行授权的方法、装置及系统 | |
US20100058232A1 (en) | Virtual network join protocol | |
CN107547404A (zh) | 流表生成方法及装置以及报文转发方法及装置 | |
CN105933235B (zh) | 数据通信方法及装置 | |
CN107135118B (zh) | 一种单播通信方法、网关以及vxlan接入设备 | |
WO2016148002A1 (ja) | 制御装置、情報処理装置、仮想ネットワークの提示方法及びプログラム | |
CN104247363B (zh) | 一种报文传输的方法与交换设备和控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |