CN104301229B - 数据包转发方法、路由表生成方法及装置 - Google Patents
数据包转发方法、路由表生成方法及装置 Download PDFInfo
- Publication number
- CN104301229B CN104301229B CN201410504864.7A CN201410504864A CN104301229B CN 104301229 B CN104301229 B CN 104301229B CN 201410504864 A CN201410504864 A CN 201410504864A CN 104301229 B CN104301229 B CN 104301229B
- Authority
- CN
- China
- Prior art keywords
- address
- switch
- port
- hop
- neighbor
- 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
Abstract
本发明公开了一种数据包转发、路由表生成方法及装置,属于互联网通讯领域。所述数据包转发方法包括:交换机获取数据包的目的IP地址;交换机根据所述目的IP地址在路由表中查询与所述目的IP地址对应的下一跳IP地址;交换机根据所述下一跳IP地址将所述数据包发送给所述邻居交换机;所述路由表生成方法包括:控制器接收各个交换机上报的邻居拓扑信息;控制器根据所述邻居拓扑信息生成邻居信息表;控制器根据所述邻居信息表为所述各个交换机生成路由表;控制器向所述各个交换机下发所述路由表。本发明达到了仅为每个交换机分配一个环回地址来实现数据包的路由,减少需要分配的IP地址的数量,提高IP地址使用率的效果。
Description
技术领域
本发明涉及互联网通讯领域,特别涉及一种数据包转发方法、路由表生成方法及装置。
背景技术
数据中心中通常设置有交换网络,该交换网络用于实现数据包的路由传输。
请参考图1,其示出了现有技术中的一种交换网络的结构示意图。该交换网络包括:位于上层的两个核心交换机C1、C2,位于下层的四个接入交换机T1、T2、T3和T4。每个核心交换机与各个接入交换机相互直连,且核心交换机和接入交换机的各个端口上都配置有端口IP地址。以核心交换机C1和接入交换机T1为例,核心交换机C1的端口eth1与接入交换机T1的端口eth1相连,这两个端口之间的链路分配有一个30位子网掩码所划分的子网网段,该子网网段中包括4个IP地址:1.1.1.4、1.1.1.5、1.1.1.6和1.1.1.7。其中,1.1.1.4作为该子网网段中默认的网络地址,1.1.1.7作为该子网网段中默认的广播地址,剩余的1.1.1.5分配给核心交换机C1的端口eth1作为端口IP地址,1.1.1.6分配给接入交换机T1的端口eth1作为端口IP地址。其它交换机之间的链路做类似处理。
交换机在对数据包进行转发时,根据数据包中的目的IP地址,在预存的路由表中查找与该目的IP地址对应的下一跳IP地址,该下一跳IP地址为邻居交换机的端口IP地址,每台交换机上的不同端口配置有不同的端口IP地址,交换机将数据包发往该端口IP地址对应的邻居交换机,从而实现数据包的转发。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:每一条核心交换机和接入交换机之间的链路都要分配4个IP地址,产生的大量的IP地址不利于管理,而且4个IP地址中默认的网络地址和广播地址无法分配作为端口IP地址,也即50%的IP地址无法得到有效利用。
发明内容
为了解决每一条核心交换机和接入交换机之间链路的都要分配4个IP地址,产生的大量的IP地址不利于管理,且大量IP地址无法得到有效利用的问题,本发明实施例提供了一种数据包转发方法、路由表生成方法及装置。所述技术方案如下:
根据本发明实施例的第一方面,提供一种数据包转发方法,用于交换机中,所述方法包括:
获取数据包的目的IP地址;
根据所述目的IP地址在路由表中查询与所述目的IP地址对应的下一跳IP地址,所述路由表包括所述目的IP地址和所述下一跳IP地址的对应关系,所述下一跳IP地址是邻居交换机的环回地址,每个交换机对应一个环回地址,所述交换机上的每个端口的端口IP均使用所述环回地址;
接收控制器下发的地址解析协议ARP信息表,所述ARP信息表包括所述下一跳IP地址与介质访问控制MAC地址之间的对应关系;
根据所述下一跳IP地址将所述数据包发送给所述邻居交换机;
其中,所述根据所述下一跳IP地址将所述数据包发送给所述邻居交换机包括:
根据所述ARP信息表查询与所述下一跳IP地址对应的MAC地址;
根据所述MAC地址对所述数据包进行封装;
将封装后的所述数据包发送给所述邻居交换机。
根据本发明实施例的第二方面,提供一种路由表生成方法,所述方法包括:
接收各个交换机上报的邻居拓扑信息;
根据所述邻居拓扑信息生成邻居信息表;
根据所述邻居信息表为所述各个交换机生成路由表,每个交换机的路由表包括目的IP地址和下一跳IP地址的对应关系,所述下一跳IP地址是所述交换机的邻居交换机的环回地址,每个交换机对应一个环回地址,所述交换机上的每个端口的端口IP均使用所述环回地址;
向所述各个交换机下发所述路由表;
向所述各个交换机下发地址解析协议ARP信息表,所述ARP信息表包括所述下一跳IP地址与介质访问控制MAC地址之间的对应关系。
根据本发明实施例的第三方面,提供一种数据包转发装置,用于交换机中,所述装置包括:
目的地址获取模块,用于为获取数据包的目的IP地址;
下一跳地址查询模块,用于根据所述目的IP地址在路由表中查询与所述目的IP地址对应的下一跳IP地址,所述路由表包括所述目的IP地址和所述下一跳IP地址的对应关系,所述下一跳IP地址是邻居交换机的环回地址,每个交换机对应一个环回地址,所述交换机上的每个端口的端口IP均使用所述环回地址;
信息表接收模块,用于接收控制器下发的地址解析协议ARP信息表,所述ARP信息表包括所述下一跳IP地址与介质访问控制MAC地址之间的对应关系;
数据包发送模块,用于根据所述下一跳IP地址将所述数据包发送给所述邻居交换机;
其中,所述数据包发送模块,包括:
地址查询单元,用于根据所述ARP信息表查询与所述下一跳IP地址对应的MAC地址;
数据包封装单元,用于根据所述MAC地址对所述数据包进行封装;
数据包发送单元,用于将封装后的所述数据包发送给所述邻居交换机。
根据本发明实施例的第四方面,提供一种路由表生成装置,所述装置包括:
信息接收模块,用于接收各个交换机上报的邻居拓扑信息;
邻居信息表生成模块,用于根据所述邻居拓扑信息生成邻居信息表;
路由表生成模块,用于根据所述邻居信息表为所述各个交换机生成路由表,每个交换机的路由表包括目的IP地址和下一跳IP地址的对应关系,所述下一跳IP地址是所述交换机的邻居交换机的环回地址,每个交换机对应一个环回地址,所述交换机上的每个端口的端口IP均使用所述环回地址;
路由表发送模块,用于向所述各个交换机下发所述路由表;
信息表下发模块,用于向所述各个交换机下发地址解析协议ARP信息表,所述ARP信息表包括所述下一跳IP地址与介质访问控制MAC地址之间的对应关系。
本发明实施例提供的技术方案带来的有益效果是:
通过获取数据包的目的IP地址;根据目的IP地址在路由表中查询与该目的IP地址对应的下一跳IP地址;根据下一跳IP地址将数据包发送给邻居交换机;解决了每一条核心交换机和接入交换机之间的链路都要分配4个IP地址,产生的大量的IP地址不利于管理,且大量IP地址无法得到有效利用的问题;达到了仅为每个交换机分配一个环回地址来实现数据包的路由,不需要为每个交换机上的各个端口都分配一个端口IP地址,从而减少需要分配的IP地址的数量,提高IP地址使用率的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中的一种交换机网络的结构示意图;
图2是本发明各个实施例提供的数据包转发方法、路由表生成方法所涉及的一种可能的实施环境的示意图;
图3是本发明一个实施例提供的路由表生成方法的方法流程图;
图4是本发明一个实施例提供的数据包转发方法的方法流程图;
图5是本发明一个实施例提供的方法流程图;
图6是本发明一个实施例提供的数据包转发方法和路由表生成方法的实施示意图;
图7是本发明一个实施例提供的数据包转发装置的方框图;
图8是本发明另一实施例提供的数据包转发装置的方框图;
图9是本发明一个实施例提供的路由表生成装置的方框图;
图10是本发明另一实施例提供的路由表生成装置的方框图,;
图11是本发明一个实施例提供的交换机的结构方框图;
图12是本发明一个实施例提供的控制器的结构方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图2是本发明各个实施例所涉及的一种可能的实施环境的示意图,该实施环境包括核心交换机C1、核心交换机C2、接入交换机T1、接入交换机T2、接入交换机T3、接入交换机T4和控制器K。
如图2所示,核心交换机C1通过光纤或者网线分别与接入交换机T1、接入交换机T2、接入交换机T3和接入交换机T4直连;核心交换机C2通过光纤或者网线分别与接入交换机T1、接入交换机T2、接入交换机T3和接入交换机T4直连。
核心交换机C1、核心交换机C2、接入交换机T1、接入交换机T2、接入交换机T3和接入交换机T4是用于数据包转发的网络设备,该交换机可以是以太网交换机。
控制器K与每个核心交换机和每个接入交换机通过有线或无线网络相连。
控制器K可以是一台控制器,或者由若干台控制器组成的控制器集群,或者是一个云计算服务中心。
需要说明的是,图2只是以实施环境中包括上述各个设备为例,在实际实现中,在某些应用场景中,实施环境中可以只包括上述部分设备或者同时包括其他设备,本实施例对此并不做限定。
与现有技术不同的是,对于一个交换机来讲,本发明实施例不需要给该交换机的每个端口都分配一个端口IP地址,而是为每个交换机分配一个环回地址,一个交换机上的每个端口的端口IP地址都使用该环回地址表示。具体如下:
请参考图3,其示出了本发明一个实施例提供的路由表生成方法的方法流程图。本实施例以该路由表生成方法用于控制器为例来进行举例说明,该方法包括:
步骤302,接收各个交换机上报的邻居拓扑信息;
每个交换机的邻居拓扑信息包括该交换机的环回地址、第一端口标识、第二端口标识和邻居交换机的环回地址,第一端口标识是在交换机上与邻居交换机相连的端口所对应的端口标识,第二端口标识是在邻居交换机上与交换机相连的端口所对应的端口标识。
步骤304,根据邻居拓扑信息生成邻居信息表;
步骤306,根据邻居信息表为各个交换机生成路由表,每个交换机的路由表包括目的IP地址和下一跳IP地址的对应关系,下一跳IP地址是该交换机的邻居交换机的环回地址,每个交换机对应一个环回地址;
步骤308,向各个交换机下发路由表。
综上所述,本实施例提供的路由表生成方法,通过接收各个交换机上报的邻居拓扑信息;根据所邻居拓扑信息生成邻居信息表;根据邻居信息表为各个交换机生成路由表,每个交换机的路由表包括目的IP地址和下一跳IP地址的对应关系,下一跳IP地址是该交换机的邻居交换机的环回地址,每个交换机对应一个环回地址;向各个交换机下发路由表;解决了每一条核心交换机和接入交换机之间的链路都要分配4个IP地址,产生的大量的IP地址不利于管理,且大量IP地址无法得到有效利用的问题;达到了仅为每个交换机分配一个环回地址来实现数据包的路由,不需要为每个交换机上的各个端口都分配一个端口IP地址,从而减少需要分配的IP地址的数量,提高IP地址使用率的效果。
请参考图4,其示出了本发明一个实施例提供的数据包转发方法的方法流程图。本实施例以该数据包转发方法用于交换机为例来进行举例说明,该方法包括:
步骤402,获取数据包的目的IP地址;
步骤404,根据目的IP地址在路由表中查询与该目的IP地址对应的下一跳IP地址,每个交换机的路由表包括目的IP地址和下一跳IP地址的对应关系,该下一跳IP地址是该交换机的邻居交换机的环回地址,每个交换机对应一个环回地址;
步骤406,根据下一跳IP地址将数据包发送给邻居交换机。
综上所述,本实施例提供的数据包转发方法,通过获取数据包的目的IP地址;根据目的IP地址在路由表中查询与该目的IP地址对应的下一跳IP地址;根据下一跳IP地址将数据包发送给邻居交换机;解决了每一条核心交换机和接入交换机之间的链路都要分配4个IP地址,产生的大量的IP地址不利于管理,且大量IP地址无法得到有效利用的问题;达到了仅为每个交换机分配一个环回地址来实现数据包的路由,不需要为每个交换机上的各个端口都分配一个端口IP地址,从而减少需要分配的IP地址的数量,提高IP地址使用率的效果。
请参考图5,其示出了本发明一个实施例提供的方法流程图。本实施例以该数据包转发方法和路由表生成方法用于图2所示的实施环境为例来进行举例说明,该方法包括:
步骤501,交换机获取交换机的邻居拓扑信息,该邻居拓扑信息包括交换机的环回地址、第一端口标识、第二端口标识和邻居交换机的环回地址,第一端口标识是在交换机上与邻居交换机相连的端口所对应的端口标识,第二端口标识是在邻居交换机上与交换机相连的端口所对应的端口标识。
控制器预先为各个交换机分配一个环回地址,该环回地址可以是32位的IP地址。
交换机通过链路层发现协议(LinkLayerDiscoveryProtocol,LLDP)获取到与其直连的邻居交换机的环回地址和邻居交换机上与该交换机相连的端口所对应的端口标识,即第二端口标识,并获取该交换机自身的环回地址以及交换机上与邻居交换机相连的端口所对应的端口标识,即第一端口标识。
比如,如图6所示,接入交换机T1与核心交换机C1直连,即核心交换机C11为接入交换机T1的邻居交换机。接入交换机T1的环回地址为1.1.1.3,核心交换机C1的环回地址为1.1.1.1,接入交换机T1上与核心交换C1相连的端口对应的端口标识为eth1,核心交换机C1上与接入交换机T1相连的端口对应的端口标识为eth1;又比如,核心交换机C2的环回地址为1.1.1.2,接入交换机T1的环回地址为1.1.1.3,核心交换机C2上与接入交换T1相连的端口对应的端口标识为eth1,接入交换机T1与核心交换机C2相连的端口对应的端口标识为eth2。
步骤502,交换机将邻居拓扑信息上报给控制器。
对于整个拓扑网络中的每个交换机,都需要获取自身的邻居拓扑信息,并将自身的邻居拓扑信息上报给控制器,该控制器将根据各个交换机上报的邻居拓扑信息表归纳生成邻居信息表。
比如,如图6所示,接入交换机T1获取的自身的邻居拓扑信息为“接入交换机T1的环回地址:1.1.1.3、接入交换机T1的第一端口标识:eth1、核心交换机C1的第二端口标识:eth1和核心交换机C1的环回地址:1.1.1.1”和“接入交换机T1的环回地址:1.1.1.3、接入交换机T1第一端口标识:eth2、核心交换机C2第二端口标识:eth1和核心交换机C2的环回地址:1.1.1.2”,接入交换机T1将该邻居拓扑信息上报至控制器;
又比如,核心交换机C1获取的自身的邻居拓扑信息为“核心交换机C1的环回地址:1.1.1.1、核心交换机C1的第一端口标识:eth1、接入交换机T1的第二端口标识:eth1和接入交换机T1的环回地址:1.1.1.3”、“核心交换机C1的环回地址:1.1.1.1、核心交换机C1的第一端口标识:eth2、接入交换机T2的第二端口标识:eth1和接入交换机T2的环回地址:1.1.1.4”、“核心交换机C1的环回地址:1.1.1.1、核心交换机C1的第一端口标识:eth3、接入交换机T3的第二端口标识:eth1和接入交换机T3的环回地址:1.1.1.5”和“核心交换机C1的环回地址:1.1.1.1、核心交换机C1的第一端口标识:eth4、接入交换机T4的第二端口标识:eth1和接入交换机T4的环回地址:1.1.1.6”,核心交换机C1将该邻居拓扑信息上报至控制器。
步骤503,控制器接收各个交换机上报的邻居拓扑信息。
比如,如图6所示,接入交换机T1向控制器上报的邻居拓扑信息可以为“接入交换机T1的环回地址:1.1.1.3、接入交换机T1的第一端口标识:eth1、核心交换机C1的第二端口标识:eth1和核心交换机C1的环回地址:1.1.1.1”和“接入交换机T1的环回地址:1.1.1.3、接入交换机T1第一端口标识:eth2、核心交换机C2第二端口标识:eth1和核心交换机C2的环回地址:1.1.1.2”。
又比如,核心交换机C1向控制器上报的邻居拓扑信息为“核心交换机C1的环回地址:1.1.1.1、核心交换机C1的第一端口标识:eth1、接入交换机T1的第二端口标识:eth1和接入交换机T1的环回地址:1.1.1.3”、“核心交换机C1的环回地址:1.1.1.1、核心交换机C1的第一端口标识:eth2、接入交换机T2的第二端口标识:eth1和接入交换机T2的环回地址:1.1.1.4”、“核心交换机C1的环回地址:1.1.1.1、核心交换机C1的第一端口标识:eth3、接入交换机T3的第二端口标识:eth1和接入交换机T3的环回地址:1.1.1.5”和“核心交换机C1的环回地址:1.1.1.1、核心交换机C1的第一端口标识:eth4、接入交换机T4的第二端口标识:eth1和接入交换机T4的环回地址:1.1.1.6”。
步骤504,控制器根据邻居拓扑信息生成邻居信息表。
控制器接收各个交换机发送的邻居拓扑信息,并将该邻居拓扑信息归纳,生成邻居信息表,该邻居信息表中包括交换机的环回地址、第一端口标识、第二端口标识和邻居交换机的环回地址,第一端口标识是在交换机上与邻居交换机相连的端口所对应的端口标识,第二端口标识是在邻居交换机上与交换机相连的端口所对应的端口标识。该邻居信息表的存储结构可以如表一所示:
表一:
步骤505,控制器根据邻居信息表为各个交换机生成路由表,每个交换机的路由表包括目的IP地址和下一跳IP地址的对应关系,下一跳IP地址是该交换机的邻居交换机的环回地址,每个交换机对应一个环回地址。
控制器在生成邻居信息表后,将根据该邻居信息表为拓扑网络中的各个交换机生成路由表。
如图6所示,核心交换机C1接入公网的IP地址为10.1.1.5/16,根据生成的邻居信息表,可以知悉当数据包的目的IP地址为10.1.1.5/16时,数据包的下一跳交换机为核心交换机C1,以下一跳交换机的环回地址作为下一跳IP地址,即以核心交换机C1的环回地址作为下一跳IP地址,生成表结构如表二所示的路由表:
表二
目的IP地址 | 掩码 | 下一跳IP地址 |
10.1.1.5 | 16 | 1.1.1.1 |
相似的,控制器将根据邻居信息表,为各个交换机生成如表二所示的路由表。
步骤506,控制器向各个交换机下发路由表。
控制器将为拓扑网络中各个交换机生成的路由表发送至交换机,交换机将根据该路由表对数据包进行路由转发。
步骤507,控制器向各个交换机下发ARP信息表,ARP信息表包括下一跳IP地址与MAC地址之间的对应关系。
由于控制器与拓扑网络中的各个交换机相连,将会收集到各个交换机的环回地址与MAC地址的对应关系,根据该对应关系,控制器将会根据路由表的下一跳IP地址,查找与该下一跳IP地址对应的MAC地址,并生成表结构如表三的ARP信息表。
表三
下一跳IP地址 | MAC地址 |
1.1.1.1 | 00-14-78-43-4c-32 |
该MAC地址用于对数据包进行二层封装。
控制器在生成该ARP信息表后,将该ARP信息表发送至拓扑网络中的各个交换机。
需要说明的是,步骤508和步骤507没有严格的先后关系,步骤506可以在步骤507之前执行,也可以与步骤507同时执行,本实施例以步骤506在步骤507之前执行进行举例说明,并不对本发明构成限定。
步骤508,交换机接收并存储控制器下发的路由表。
交换机接收控制器发送的路由表,并对该路由表进行存储。该路由表是控制器根据每个交换机上报的邻居拓扑信息生成邻居信息表后,根据邻居信息表生成的。
步骤509,交换机接收控制器下发的ARP信息表,ARP信息表包括下一跳IP地址与MAC地址之间的对应关系。
交换机接收并存储控制器下发的ARP信息表,该ARP信息表用于查询下一跳IP地址对应的MAC地址,并用该MAC地址对数据包进行二层封装。
上述步骤可以单独实现成为路由表生成方法。经过上述步骤,整个拓扑网络中的交换机都存储有路由表和ARP信息表,当交换机接收到数据包时,根据该数据包携带的目标IP地址,将数据包进行路由转发,具体步骤可以如下述步骤所示。
需要说明的是,下述步骤可以单独实现成为数据包转发方法。由于交换机会接收到多个数据包,对于每一个数据包都要经过下述步骤进行路由转发,所以,下述步骤会重复执行多次。
步骤510,交换机获取数据包的目的IP地址。
交换机接收到接入设备发送的数据包时,会获取该数据包中携带的目的IP地址,该接入设备可以是通过有线网络或者无线网络与交换机相连的电子设备,该电子设备可以是智能手机、平板电脑、电子书阅读器和膝上型便携计算机等等。
步骤511,交换机根据目的IP地址在路由表中查询与目的IP地址对应的下一跳IP地址,该路由表包括目的IP地址和下一跳IP地址的对应关系,下一跳IP地址是邻居交换机的环回地址,每个交换机对应一个环回地址。
比如,如图6所示,接入交换机T1接收到一个数据包,该数据包携带的目的IP地址为10.1.1.5/16,接入交换机T1中存储有如表二所示的路由表,接入交换机T1根据该目的IP地址在路由表中查询到该目的IP地址对应的下一跳IP地址为1.1.1.1。
步骤512,交换机根据下一跳IP地址将数据包发送给邻居交换机。
交换机根据查询到的下一跳IP地址,对数据包进行路由转发,将数据包发送给该下一跳IP地址对应的交换机,步骤512可以包括如下子步骤:
一、交换机根据ARP信息表查询与下一跳IP地址对应的MAC地址。
交换机在查询到下一跳IP地址,在存储的ARP信息表中,查询与该下一跳IP地址对应的MAC地址。
比如,如图6所示,接入交换机T1查询到下一跳IP地址为1.1.1.1,请接入交换机T1中存储了如表三所示的ARP信息表,根据该下一跳IP地址查询到对应的MAC地址为00-14-78-43-4c-32。
二、交换机根据MAC地址对数据包进行封装。
根据查询到的MAC地址,交换机将根据该MAC地址对数据包进行封装,交换机将根据封装后的数据包的MAC地址信息,对封装后的数据包进行转发。
三、交换机将封装后的数据包发送给邻居交换机。
交换机根据封装后的数据包的MAC地址信息,将该数据包发送到对应的邻居交换机。
比如,如图6所示,接入交换机T1根据下一跳IP地址对应的MAC地址对数据包进行封装,并根据该MAC地址,将数据包发送至对应的邻居交换机,即核心交换机C1。
综上所述,本实施例提供的数据包转发方法,通过获取数据包的目的IP地址;根据目的IP地址在路由表中查询与该目的IP地址对应的下一跳IP地址;根据下一跳IP地址将数据包发送给邻居交换机;解决了每一条核心交换机和接入交换机之间的链路都要分配4个IP地址,产生的大量的IP地址不利于管理,且大量IP地址无法得到有效利用的问题;达到了仅为每个交换机分配一个环回地址来实现数据包的路由,不需要为每个交换机上的各个端口都分配一个端口IP地址,从而减少需要分配的IP地址的数量,提高IP地址使用率的效果。
本实施例还通过由控制器根据交换机发送的邻居拓扑信息为各个交换机生成路由表和ARP表,交换机根据该路由表和ARP表对该数据包进行转发,达到了提高交换机转发效率的效果。
请参考图7,其示出了本发明一个实施例所提供的数据包转发装置的结构方框图。该数据包转发装置可以通过软件、硬件或者两者的结合实现成为交换机的全部或者一部分。该数据包转发装置,包括:
目的地址获取模块702,用于为获取数据包的目的IP地址;
下一跳地址查询模块704,用于根据所述目的IP地址在路由表中查询与所述目的IP地址对应的下一跳IP地址,所述路由表包括所述目的IP地址和所述下一跳IP地址的对应关系,所述下一跳IP地址是邻居交换机的环回地址,每个交换机对应一个环回地址;
数据包发送模块706,用于根据所述下一跳IP地址将所述数据包发送给所述邻居交换机。
综上所述,本实施例提供的数据包转发装置,通过获取数据包的目的IP地址;根据目的IP地址在路由表中查询与该目的IP地址对应的下一跳IP地址;根据下一跳IP地址将数据包发送给邻居交换机;解决了每一条核心交换机和接入交换机之间链路的都要分配4个IP地址,产生的大量的IP地址不利于管理,且大量IP地址无法得到有效利用的问题;达到了仅为每个交换机分配一个环回地址来实现数据包的路由,不需要为每个交换机上的各个端口都分配一个端口IP地址,从而减少需要分配的IP地址的数量,提高IP地址使用率的效果。
请参考图8,其示出了本发明另一实施例所提供的数据包转发装置的结构方框图。该数据包转发装置可以通过软件、硬件或者两者的结合实现成为交换机的全部或者一部分。该数据包转发装置,包括:
目的地址获取模块702,用于为获取数据包的目的IP地址;
下一跳地址查询模块704,用于根据所述目的IP地址在路由表中查询与所述目的IP地址对应的下一跳IP地址,所述路由表包括所述目的IP地址和所述下一跳IP地址的对应关系,所述下一跳IP地址是邻居交换机的环回地址,每个交换机对应一个环回地址;
数据包发送模块706,用于根据所述下一跳IP地址将所述数据包发送给所述邻居交换机。
可选地,该装置,包括:
信息获取模块707,用于获取所述交换机的邻居拓扑信息,所述邻居拓扑信息包括所述交换机的环回地址、第一端口标识、第二端口标识和所述邻居交换机的环回地址,所述第一端口标识是在所述交换机上与所述邻居交换机相连的端口所对应的端口标识,所述第二端口标识是在所述邻居交换机上与所述交换机相连的端口所对应的端口标识;
信息发送模块708,用于将所述邻居拓扑信息上报给控制器;
路由表接收模块709,用于接收并存储所述控制器下发的所述路由表;所述路由表是所述控制器根据每个交换机上报的所述邻居拓扑信息生成邻居信息表后,根据所述邻居信息表生成的。
可选地,该装置,还包括:
信息表接收模块710,用于接收所述控制器下发的ARP信息表,所述ARP信息表包括所述下一跳IP地址与MAC地址之间的对应关系;
所述数据包发送模块706,还包括:
地址查询单元706a,用于根据所述ARP信息表查询与所述下一跳IP地址对应的MAC地址;
数据包封装单元706b,用于根据所述MAC地址对所述数据包进行封装;
数据包发送单元706c,用于将封装后的所述数据包发送给所述邻居交换机。
综上所述,本实施例提供的数据包转发装置,通过获取数据包的目的IP地址;根据目的IP地址在路由表中查询与该目的IP地址对应的下一跳IP地址;根据下一跳IP地址将数据包发送给邻居交换机;解决了每一条核心交换机和接入交换机之间链路的都要分配4个IP地址,产生的大量的IP地址不利于管理,且大量IP地址无法得到有效利用的问题;达到了仅为每个交换机分配一个环回地址来实现数据包的路由,不需要为每个交换机上的各个端口都分配一个端口IP地址,从而减少需要分配的IP地址的数量,提高IP地址使用率的效果。
本实施例还通过由控制器根据交换机发送的邻居拓扑信息为各个交换机生成路由表和ARP表,交换机根据该路由表和ARP表对该数据包进行转发,达到了提高交换机转发效率的效果。
请参考图9,其示出了本发明一个实施例所提供的路由表生成装置的结构方框图。该路由表生成装置可以通过软件、硬件或者两者的结合实现成为控制器的全部或者一部分。该路由表生成装置,包括:
信息接收模块902,用于接收各个交换机上报的邻居拓扑信息;
邻居信息表生成模块904,用于根据所述邻居拓扑信息生成邻居信息表;
路由表生成模块906,用于根据所述邻居信息表为所述各个交换机生成路由表,每个交换机的路由表包括目的IP地址和下一跳IP地址的对应关系,所述下一跳IP地址是所述交换机的邻居交换机的环回地址,每个交换机对应一个环回地址;
路由表发送模块908,用于向所述各个交换机下发所述路由表。
综上所述,本实施例提供的路由表生成装置,通过接收各个交换机上报的邻居拓扑信息;根据所邻居拓扑信息生成邻居信息表;根据邻居信息表为各个交换机生成路由表,每个交换机的路由表包括目的IP地址和下一跳IP地址的对应关系,下一跳IP地址是该交换机的邻居交换机的环回地址,每个交换机对应一个环回地址;向各个交换机下发路由表;解决了每一条核心交换机和接入交换机之间链路的都要分配4个IP地址,产生的大量的IP地址不利于管理,且大量IP地址无法得到有效利用的问题;达到了仅为每个交换机分配一个环回地址来实现数据包的路由,不需要为每个交换机上的各个端口都分配一个端口IP地址,从而减少需要分配的IP地址的数量,提高IP地址使用率的效果。
请参考图10,其示出了本发明另一实施例所提供的路由表生成装置的结构方框图。该路由表生成装置可以通过软件、硬件或者两者的结合实现成为控制器的全部或者一部分。该路由表生成装置,包括:
信息接收模块902,用于接收各个交换机上报的邻居拓扑信息;
邻居信息表生成模块904,用于根据所述邻居拓扑信息生成邻居信息表;
路由表生成模块906,用于根据所述邻居信息表为所述各个交换机生成路由表,每个交换机的路由表包括目的IP地址和下一跳IP地址的对应关系,所述下一跳IP地址是所述交换机的邻居交换机的环回地址,每个交换机对应一个环回地址;
路由表发送模块908,用于向所述各个交换机下发所述路由表。
可选地,所述装置还包括:
信息表下发模块909,用于向所述各个交换机下发ARP信息表,所述ARP信息表包括所述下一跳IP地址与MAC地址之间的对应关系。
综上所述,本实施例提供的路由表生成装置,通过接收各个交换机上报的邻居拓扑信息;根据所邻居拓扑信息生成邻居信息表;根据邻居信息表为各个交换机生成路由表,每个交换机的路由表包括目的IP地址和下一跳IP地址的对应关系,下一跳IP地址是该交换机的邻居交换机的环回地址,每个交换机对应一个环回地址;向各个交换机下发路由表;解决了每一条核心交换机和接入交换机之间链路的都要分配4个IP地址,产生的大量的IP地址不利于管理,且大量IP地址无法得到有效利用的问题;达到了仅为每个交换机分配一个环回地址来实现数据包的路由,不需要为每个交换机上的各个端口都分配一个端口IP地址,从而减少需要分配的IP地址的数量,提高IP地址使用率的效果。
需要说明的是:上述实施例提供的数据包转发、路由表生成装置在进行数据包转发时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将交换机和控制器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据包转发方法、路由表生成方法、数据包转发装置和路由表生成装置实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图11,其示出了本发明一个实施例提供的交换机的结构示意图。交换机1100包括存储器1120、通信总线1130、处理器1140、发射器1150和接收器1160等。其中,存储器1120、处理器1140、发射器1150和接收器1160通过通信总线1130连接在一起。
存储器1120还包括一个或者一个以上的程序,该一个或者一个以上程序存储于存储器中,该一个或者一个以上程序包含用于进行本发明实施例提供的数据包转发方法的指令。处理器1140用于执行存储器1120存储的一个或者一个以上程序。
发射器1150用于向控制器发送交换机的邻居拓扑信息和向邻居交换机发送数据包。
接收器1160用于获取控制器发送的路由表和ARP信息表和接收数据包。
请参考图12,其示出了本发明一个实施例提供的控制器的结构示意图。所述控制器1200包括中央处理单元(CPU)1201、包括随机存取存储器(RAM)1202和只读存储器(ROM)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。所述控制器1200还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1206,和用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1207。
所述基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中所述显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。所述基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。所述大容量存储设备1207及其相关联的计算机可读介质为控制器1200提供非易失性存储。也就是说,所述大容量存储设备1207可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器804和大容量存储设备807可以统称为存储器。
根据本发明的各种实施例,所述控制器1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即控制器1200可以通过连接在所述系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的路由表生成方法的指令。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据包转发方法,其特征在于,用于交换机中,所述方法包括:
获取数据包的目的IP地址;
根据所述目的IP地址在路由表中查询与所述目的IP地址对应的下一跳IP地址,所述路由表包括所述目的IP地址和所述下一跳IP地址的对应关系,所述下一跳IP地址是邻居交换机的环回地址,每个交换机对应一个环回地址,所述交换机上的每个端口的端口IP均使用所述环回地址;
接收控制器下发的地址解析协议ARP信息表,所述ARP信息表包括所述下一跳IP地址与介质访问控制MAC地址之间的对应关系;
根据所述下一跳IP地址将所述数据包发送给所述邻居交换机;
其中,所述根据所述下一跳IP地址将所述数据包发送给所述邻居交换机包括:
根据所述ARP信息表查询与所述下一跳IP地址对应的MAC地址;
根据所述MAC地址对所述数据包进行封装;
将封装后的所述数据包发送给所述邻居交换机。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目的IP地址在路由表中查询与所述目的IP地址对应的下一跳IP地址之前,包括:
获取所述交换机的邻居拓扑信息;
将所述邻居拓扑信息上报给所述控制器;
接收并存储所述控制器下发的所述路由表;所述路由表是所述控制器根据每个交换机上报的所述邻居拓扑信息生成邻居信息表后,根据所述邻居信息表生成的。
3.根据权利要求2所述的方法,其特征在于,所述邻居拓扑信息包括所述交换机的环回地址、第一端口标识、第二端口标识和所述邻居交换机的环回地址,所述第一端口标识包括在所述交换机上与所述邻居交换机相连的端口所对应的端口标识,所述第二端口标识包括在所述邻居交换机上与所述交换机相连的端口所对应的端口标识。
4.一种路由表生成方法,其特征在于,所述方法包括:
接收各个交换机上报的邻居拓扑信息;
根据所述邻居拓扑信息生成邻居信息表;
根据所述邻居信息表为所述各个交换机生成路由表,每个交换机的路由表包括目的IP地址和下一跳IP地址的对应关系,所述下一跳IP地址是所述交换机的邻居交换机的环回地址,每个交换机对应一个环回地址,所述交换机上的每个端口的端口IP均使用所述环回地址;
向所述各个交换机下发所述路由表;
向所述各个交换机下发地址解析协议ARP信息表,所述ARP信息表包括所述下一跳IP地址与介质访问控制MAC地址之间的对应关系。
5.根据权利要求4所述的方法,其特征在于,每个交换机的邻居拓扑信息包括:所述交换机的环回地址、第一端口标识、第二端口标识和所述邻居交换机的环回地址,所述第一端口标识是在所述交换机上与所述邻居交换机相连的端口所对应的端口标识,所述第二端口标识是在所述邻居交换机上与所述交换机相连的端口所对应的端口标识。
6.一种数据包转发装置,其特征在于,用于交换机中,所述装置包括:
目的地址获取模块,用于为获取数据包的目的IP地址;
下一跳地址查询模块,用于根据所述目的IP地址在路由表中查询与所述目的IP地址对应的下一跳IP地址,所述路由表包括所述目的IP地址和所述下一跳IP地址的对应关系,所述下一跳IP地址是邻居交换机的环回地址,每个交换机对应一个环回地址,所述交换机上的每个端口的端口IP均使用所述环回地址;
信息表接收模块,用于接收控制器下发的地址解析协议ARP信息表,所述ARP信息表包括所述下一跳IP地址与介质访问控制MAC地址之间的对应关系;
数据包发送模块,用于根据所述下一跳IP地址将所述数据包发送给所述邻居交换机;
其中,所述数据包发送模块,包括:
地址查询单元,用于根据所述ARP信息表查询与所述下一跳IP地址对应的MAC地址;
数据包封装单元,用于根据所述MAC地址对所述数据包进行封装;
数据包发送单元,用于将封装后的所述数据包发送给所述邻居交换机。
7.根据权利要求6所述的装置,其特征在于,所述装置,包括:
信息获取模块,用于获取所述交换机的邻居拓扑信息;
信息发送模块,用于将所述邻居拓扑信息上报给所述控制器;
路由表接收模块,用于接收并存储所述控制器下发的所述路由表;所述路由表是所述控制器根据每个交换机上报的所述邻居拓扑信息生成邻居信息表后,根据所述邻居信息表生成的。
8.根据权利要求7所述的装置,其特征在于,所述邻居拓扑信息包括所述交换机的环回地址、第一端口标识、第二端口标识和所述邻居交换机的环回地址,所述第一端口标识包括在所述交换机上与所述邻居交换机相连的端口所对应的端口标识,所述第二端口标识包括在所述邻居交换机上与所述交换机相连的端口所对应的端口标识。
9.一种路由表生成装置,其特征在于,所述装置包括:
信息接收模块,用于接收各个交换机上报的邻居拓扑信息;
邻居信息表生成模块,用于根据所述邻居拓扑信息生成邻居信息表;
路由表生成模块,用于根据所述邻居信息表为所述各个交换机生成路由表,每个交换机的路由表包括目的IP地址和下一跳IP地址的对应关系,所述下一跳IP地址是所述交换机的邻居交换机的环回地址,每个交换机对应一个环回地址,所述交换机上的每个端口的端口IP均使用所述环回地址;
路由表发送模块,用于向所述各个交换机下发所述路由表;
信息表下发模块,用于向所述各个交换机下发地址解析协议ARP信息表,所述ARP信息表包括所述下一跳IP地址与介质访问控制MAC地址之间的对应关系。
10.根据权利要求9所述的装置,其特征在于,每个交换机的邻居拓扑信息包括:所述交换机的环回地址、第一端口标识、第二端口标识和所述邻居交换机的环回地址,所述第一端口标识是在所述交换机上与所述邻居交换机相连的端口所对应的端口标识,所述第二端口标识是在所述邻居交换机上与所述交换机相连的端口所对应的端口标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410504864.7A CN104301229B (zh) | 2014-09-26 | 2014-09-26 | 数据包转发方法、路由表生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410504864.7A CN104301229B (zh) | 2014-09-26 | 2014-09-26 | 数据包转发方法、路由表生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104301229A CN104301229A (zh) | 2015-01-21 |
CN104301229B true CN104301229B (zh) | 2016-05-04 |
Family
ID=52320802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410504864.7A Active CN104301229B (zh) | 2014-09-26 | 2014-09-26 | 数据包转发方法、路由表生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104301229B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302173B (zh) * | 2015-05-26 | 2019-07-23 | 南宁富桂精密工业有限公司 | 控制设备及其拓扑学习的方法 |
CN107087039B (zh) * | 2016-02-15 | 2021-10-01 | 王正伟 | 交换方法和交换云 |
CN106341330A (zh) * | 2016-08-30 | 2017-01-18 | 广州西麦科技股份有限公司 | 一种sdn控制器的拓扑发现方法及系统 |
CN106453088B (zh) * | 2016-09-28 | 2019-06-25 | 平安科技(深圳)有限公司 | 一种静态路由配置方法及终端 |
US11700673B2 (en) * | 2020-12-24 | 2023-07-11 | Nile Global, Inc. | Methods and systems of automatic network service initiation |
CN115883456B (zh) * | 2023-01-31 | 2023-06-23 | 天翼云科技有限公司 | 一种上行出口识别方法、装置及设备、介质和产品 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101040489B (zh) * | 2004-10-22 | 2012-12-05 | 思科技术公司 | 用于统一输入/输出和降低延迟的网络设备体系结构 |
CN101662391B (zh) * | 2009-09-25 | 2011-08-17 | 迈普通信技术股份有限公司 | 基于简单网络管理协议版本3的以太网交换机集群管理方法 |
CN102694720B (zh) * | 2011-03-24 | 2015-07-29 | 日电(中国)有限公司 | 编址方法、编址装置、架构管理器、交换机和数据路由方法 |
-
2014
- 2014-09-26 CN CN201410504864.7A patent/CN104301229B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104301229A (zh) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104301229B (zh) | 数据包转发方法、路由表生成方法及装置 | |
CN105450555B (zh) | 一种片上网络系统,及片上网络通信链路的建立方法 | |
CN106789667B (zh) | 一种数据转发方法、相关设备及系统 | |
CN102647355B (zh) | Lacp协商处理方法、中继节点及系统 | |
CN102571587B (zh) | 报文转发方法和设备 | |
CN104780088A (zh) | 一种业务报文的传输方法和设备 | |
CN103220219B (zh) | 一种报文转发方法和设备 | |
CN102368727A (zh) | 跨ip网络的trill网络通信方法、系统和设备 | |
CN101789949B (zh) | 一种实现负荷分担的方法和路由设备 | |
CN102857414A (zh) | 一种转发表写入、报文转发方法及装置 | |
CN105659529A (zh) | 通过中央控制的ad-hoc按需路由 | |
CN102957589A (zh) | 业务数据传输的方法、网络节点及系统 | |
CN102316028A (zh) | 发送因特网协议分组的方法及装置 | |
TWI759571B (zh) | 基於流表的資料傳送方法 | |
CN102185782A (zh) | 多链接透明传输互连网络的数据发送方法及其装置 | |
CN104184663A (zh) | 基于软件定义网络和一体化标识网络的通信方法和装置 | |
CN109246624A (zh) | 一种组播转发方法及相关设备 | |
CN105471747A (zh) | 一种智能路由器选路方法和装置 | |
CN105556916A (zh) | 网络流的信息统计方法和装置 | |
WO2020093871A1 (zh) | 下行报文发送、转发方法和装置 | |
CN104365066A (zh) | 用于以太虚拟专用网的方法和设备 | |
CN101883055B (zh) | 路由转发表容量扩展实现方法、装置及交换设备 | |
CN103023773A (zh) | 多拓扑网络中转发报文的方法、装置和系统 | |
CN102801622A (zh) | 一种数据报文的转发方法及转发装置 | |
CN105052106A (zh) | 用于接收和传输互联网协议(ip)数据包的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |