一种数据包转发的方法、装置及系统的制作方法

文档序号:8907612阅读:410来源:国知局
一种数据包转发的方法、装置及系统的制作方法
【技术领域】
[0001] 本发明涉及虚拟化技术领域,具体涉及一种数据包转发的方法、装置及系统。
【背景技术】
[0002] 虚拟化技术目前使用非常广泛,在现有的虚拟化技术中,一个物理主机可以运行 多个虚拟机,每个虚拟机都共享该物理机的硬件资源,但是针对该物理主机上每个虚拟机 的10访问都必须基于该物理主机上的同一个虚拟机监控器(VirtualMachineMonitor, VMM)进行转发,因此,如果该物理主机上虚拟机的数量非常巨大时,所有的数据包都集中通 过VMM,必然造成网络数据流拥塞,从而影响系统性能。
[0003] 现有的虚拟化网络的使用方式,所有的数据包都必须在VMM内进行转发,通过查 找VMM中的转发表,找到每个数据包对应的目的端口,从而通过该端口将数据包转发到对 应的接收设备或发到指定的外网,同时每当端口收到一个新的数据包时,都会对数据包信 息进行记录,从而刷新转发表,将目的端口和指定的MAC地址建立对应关系,如果虚拟机数 量不断增加,每个虚拟机访问的目标主机也不断改变,必然会造成转发表巨大,同时需要经 常刷新,造成访问转发表查找目的端口的时间延长,造成性能瓶颈。
[0004] 现有技术在VMM中通过一个转发表管理所有的虚拟机的上下行端口,当虚拟机数 量增加时,必然会导致表的体积急剧增大,从而延长查找时间,而且业务类型复杂多样,每 个虚拟机都会访问大量不同的目的地址,因此表的体积会随着业务复杂度增加而增大,造 成性能下降。

【发明内容】

[0005] 本发明实施例提供的一种数据包转发的方法,可以使虚拟机上下行的数据包不必 每个都经过虚拟机监控器,从而提高了数据包转发的效率,减轻了虚拟机监控器的负担。本 发明实施例还提供了相应的装置及物理主机。
[0006] 本发明第一方面提供一种数据包转发的方法,所述方法应用于物理主机中的源通 信端口,所述物理主机包括多个虚拟机VM、虚拟机监控器VMM和物理网卡,所述源通信端口 包括每个VM上的虚拟通信端口,以及所述物理网卡上的物理通信端口,每个虚拟通信端口 和每个物理通信端口中都维护有本通信端口的第一数据转发表,所述第一数据转发表由与 所述本通信端口关联的媒体访问控制MAC地址与目的通信端口标识的对应关系组成,所述 方法包括:
[0007] 接收待发送的数据包,所述待发送的数据包携带目的MAC地址;
[0008] 从所述本通信端口维护的第一数据转发表中,查找与所述本通信端口关联的所述 目的MAC地址对应的目的通信端口标识;
[0009] 当查找到与所述目的MAC地址对应的目的通信端口标识,直接向所述目的通信端 口标识对应的目的通信端口发送所述待发送的数据包,其中,当所述源通信端口为虚拟机 的虚拟通信端口时,所述目的通信端口为目的物理通信端口,当所述源通信端口为物理通 信端口时,所述目的通信端口为目的虚拟机的虚拟通信端口。
[0010] 结合第一方面,在第一种可能的实现方式中,所述方法还包括:
[0011] 删除所述本通信端口维护的第一数据转发表中满足删除条件的MAC地址与目的 通信端口标识的对应关系,以保持所述本通信端口维护的第一数据转发表的容量。
[0012] 结合第一方面或第一方面第一种可能的实现方式,在第二种可能的实现方式中, 所述方法还包括:
[0013] 当未查找到与所述目的MAC地址对应的目的通信端口标识,向所述VMM发送所述 待发送的数据包,所述待发送的数据包由所述VMM从所述VMM中维护的第二数据转发表中, 确定与所述目的MAC地址对应的目的通信端口标识,并向所述目的MAC地址对应的目的通 信端口发送所述待发送的数据包,所述第二数据转发表包含每一个MAC地址与目的通信端 口标识的对应关系。
[0014] 结合第一方面第二种可能的实现方式,在第三种可能的实现方式中,所述向所述 VMM发送所述待发送的数据包之后,所述方法还包括:
[0015] 接收所述VMM发送的所述目的MAC地址与对应的目的通信端口标识的对应关 系;
[0016] 将所述目的MAC地址与对应的目的通信端口标识的对应关系添加到所述第一数 据转发表中,所述目的MAC地址与对应的目的通信端口标识的对应关系用于发送下一个携 带所述目的MAC地址的数据包。
[0017] 结合第一方面第二种可能的实现方式,在第四种可能的实现方式中,所述方法还 包括:
[0018] 当任意一个MAC地址对应的目的通信端口标识发生变更时,接收所述VMM发送的 所述任意一个MAC地址与更新后的目的通信端口标识的对应关系;
[0019] 将所述任意一个MAC地址与更新后的目的通信端口标识的对应关系,更新到所述 第一数据转发表中,所述任意一个MAC地址与更新后的目的通信端口标识的对应关系用于 发送携带所述任意一个MAC地址的数据包到更新后的目的端口。
[0020] 本发明第二方面提供一种数据包转发的装置,所述装置为物理主机中的源通信端 口,所述物理主机包括多个虚拟机VM、虚拟机监控器VMM和物理网卡,所述源通信端口包括 每个VM上的虚拟通信端口,以及所述物理网卡上的物理通信端口,每个虚拟通信端口和每 个物理通信端口中都维护有本通信端口的第一数据转发表,所述第一数据转发表由与所述 本通信端口关联的媒体访问控制MAC地址与目的通信端口标识的对应关系组成,所述装置 包括:
[0021] 接收模块,用于接收待发送的数据包,所述待发送的数据包携带目的MAC地址;
[0022] 查找模块,用于从所述本通信端口维护的第一数据转发表中,查找与所述本通信 端口关联的所述目的MAC地址对应的目的通信端口标识;
[0023] 发送模块,用于当所述查找模块查找到与所述目的MAC地址对应的目的通信端口 标识,直接向所述目的通信端口标识对应的目的通信端口发送所述待发送的数据包,其中, 当所述源通信端口为虚拟机的虚拟通信端口时,所述目的通信端口为目的物理通信端口, 当所述源通信端口为物理通信端口时,所述目的通信端口为目的虚拟机的虚拟通信端口。
[0024] 结合第二方面,在第一种可能的实现方式中,所述装置还包括:
[0025] 转发表管理模块,用于删除所述本通信端口维护的第一数据转发表中满足删除条 件的MAC地址与目的通信端口标识的对应关系,以保持所述本通信端口维护的第一数据转 发表的容量。
[0026] 结合第二方面或第二方面第一种可能的实现方式,在第二种可能的实现方式中,
[0027] 所述发送模块,还用于当所述查找模块未查找到与所述目的MAC地址对应的目的 通信端口标识,向所述VMM发送所述待发送的数据包,所述待发送的数据包由所述VMM从所 述VMM中维护的第二数据转发表中,确定与所述目的MAC地址对应的目的通信端口标识,并 向所述目的MAC地址对应的目的通信端口发送所述待发送的数据包,所述第二数据转发表 包含每一个MAC地址与目的通信端口标识的对应关系。
[0028] 结合第二方面第二种可能的实现方式,在第三种可能的实现方式中,所述装置还 包括:添加模块,
[0029] 所述接收模块,还用于接收所述VMM发送的所述目的MAC地址与对应的目的通信 端口标识的对应关系;
[0030] 所述添加模块,用于将所述接收模块接收的所述目的MAC地址与对应的目的通信 端口标识的对应关系添加到所述第一数据转发表中,所述目的MAC地址与对应的目的通信 端口标识的对应关系用于发送下一个携带所述目的MAC地址的数据包。
[0031] 结合第二方面第二种可能的实现方式,在第四种可能的实现方式中,所述装置还 包括:更新模块,
[0032] 所述接收模块,还用于当任意一个MAC地址对应的目的通信端口标识发生变更 时,接收所述VMM发送的所述任意一个MAC地址与更新后的目的通信端口标识的对应关 系;
[0033] 所述更新模块,用于将所述接收模块接收的所述任意一个MAC地址与更新后的目 的通信端口标识的对应关系,更新到所述第一数据转发表中,所述任意一个MAC地址与更 新后的目的通信端口标识的对应关系用于发送携带所述任意一个MAC地址的数据包到更 新后的目的端口。
[0034] 本发明第三方面提供一种物理主机,包括多个虚拟机VM、虚拟机监控器VMM和物 理网卡,每个VM上包括虚拟通信端口,所述物理网卡上包括多个物理通信端口,每个虚拟 通信端口和每个物理通信端口中都维护有本通信端口的第一数据转发表,所述第一数据转 发表由与所述本通信端口关联的媒体访问控制MAC地址与目的通信端口标识的对应关系 组成,
[0035] 当每个虚拟通信端口和每个物理通信端口中的任意一个作为源通信端口时,所述 源通信端口用于:
[0036] 接收待发送的数据包,所述待发送的数据包携带目的MAC地址;
[0037] 从所述本通信端口维护的第一数据转发表中,查找与所述本通信端口关联的所述 目的MAC地址对应的目的通信端口标识;
[0038] 当查找到与所述目的MAC地址对应的目的通信端口标识,向所述目的通信端口标 识对应的目的通信端口发送所述待发送的数据包,其中,当所述源通信端口为虚拟机的虚 拟通信端口时,所述目的通信端口为目的物理通信端口,当所述源通信端口为物理通信端 口时,所述目的通信端口为目的虚拟机的虚拟通信端口。
[0039] 本发明实施例提供的数据包转发的方法,所述方法应用于物理主机中的源通信端 口,所述物理主机包括多个虚拟机VM、虚拟机监控器VMM和物理网卡,所述源通信端口包括 每个VM上的虚拟通信端口,以及所述物理网卡上的物理通信端口,每个虚拟通信端口和每 个物理通信端口中都维护有本通信端口的第一数据转发表,所述第一数据转发表由与所述 本通信端口关联的媒体访问控制MAC地址与目的通信端口标识的对应关系组成,所述方法 包括:接收待发送的数据包,所述待发送的数据包携带目的MAC地址;从所述本通信端口维 护的第一数据转发表中,查找与所述本通信端口关联的所述目的MAC地址对应的目的通信 端口标识;当查找到与所述目的MAC地址对应的目的通信端口标识,直接向所述目的通信 端口标识对应的目的通信端口发送所述待发送的数据包,其中,当所述源通信端口为虚拟 机的虚拟通信端口时,所述目的通信端口为目的物理通信端口,当所述源通信端口为物理 通信端口时,所述目的通信端口为目的虚拟机的虚拟通信端口。与现有技术中虚拟机上下 行的数据包都要经过VMM,由VMM从包含每一个MAC地址与目的通信端口标识的对应关系的 大表中确定待发送的数据包要发往的目的端口相比,本发明实施例提供的数据包转发的方 法,在虚拟机的虚拟通信端口和物理网卡的物理通信端口中维护一个只与本通信端口关联 的第一数据转发表,所述第一数据转发表由与所述本通信端口关联的媒体访问控制MAC地 址与目的通信端口标识的对应关系组成,从而加快了确定目的通信端口的速度,并且在确 定到目的通信端口后,源通信端口直接将数据包发送到目的通信端口,也就是说数据包可 以绕过VMM,从而减轻了VMM的负担,提高了数据包转发的效率。
【附图说明】
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1