管理内部虚拟局域网的装置和系统的制作方法

文档序号:7653259阅读:231来源:国知局
专利名称:管理内部虚拟局域网的装置和系统的制作方法
技术领域
本发明一般地涉及虚拟局域网,具体地说,涉及管理内部虚拟局域网的装置和系统。
背景技术
由于通过局域网(LAN)连接的计算平台(如工作站、服务器和个人计算机)可使计算机用户对公共计算资源进行共享访问,所以它们非常重要。但是,所述公共资源有时使用不同的协议“堆栈”。一种用于描述局域网(和其他网络)互连协议堆栈的分类法是包括七个层的“开放系统互联(OSI)”参考模型。在此类模型中,每个设备都与一个层关联,所述设备在该层中将信息转发到其他设备。第四到七层主要涉及通过网络交换信息的应用类型。第一到三层主要涉及将分组(无论分组包含什么数据)从一处移动到另一处。
第三层是“网络层”,其在设备之间建立路由。在网络层之下是第二层,即数据链路层。数据链路层通过介质访问控制(MAC)和逻辑链路控制在具有唯一物理地址的节点间提供物理传输。通过严格遵循OSI模型的协议,网络层协议通常利用并需要了解诸如网络适配器之类的节点的物理硬件地址。这些物理地址通常称为“MAC”地址。
网络层(第三层)协议的实例包括Appletalk和系统网络体系结构(SNA)。但是,最普遍的第三层协议是公知为TCP/IP协议一部分的互联网协议(IP)。虽然TCP/IP基于OSI参考模型,但是TCP/IP协议堆栈除去了某些层,使得在路由IP业务时不使用第一和第二层。TCP/IP协议的一个功能是可以在单个计算机操作系统映像内的应用间回送IP网络业务。通过IP业务不必使用MAC地址来进行路由的事实来启用此功能,因此,无需提供物理网络接口来支持MAC地址。当需要在单个操作系统映像内的应用间“回送”非IP业务时,可以将多个网络适配器(每个都具有MAC地址)连接到操作系统,使业务从一个适配器路由到另一个适配器。

发明内容
根据本发明的至少一个实施例的系统包括多个内部的虚拟局域网设备。在此类实施例中,每个虚拟局域网设备都具有在所述系统中的所述虚拟局域网设备间唯一的虚拟地址。在某些实施例中,将虚拟局域网驱动器连接到所述多个虚拟局域网设备,以使用所述虚拟地址将分组从操作系统传输到所述虚拟局域网设备。这样,可以形成内部虚拟局域网,因为操作系统可以以与其使用物理局域网设备地址相同的方式来使用虚拟局域网设备地址。
本发明的至少某些实施例通过以下步骤来管理虚拟局域网使用连接到所述虚拟局域网的至少一个虚拟设备的虚拟地址信息来标识所述至少一个虚拟设备。此类实施例可以标识虚拟设备以响应通过操作系统接收到源自应用的分组。此类实施例将所述源自应用的分组转发到所述虚拟设备以响应标识具有所述虚拟地址的所述设备。此类实施例可以采取计算机程序产品的形式,或者由计算机程序产品实现,所述计算机程序产品包括编码有计算机可用程序代码的计算机可用介质。此类计算机可用代码与操作系统和适当的指令执行系统结合可以形成执行本发明的实施例的装置。


图1是从操作系统角度示出本发明的实施例的方块图;图2和图3是示出根据本发明的至少某些实施例的方法的流程图;以及图4是示出实现本发明的实例实施例的指令执行系统或平台的系统方块图。
具体实施例方式
实施例的以下详细说明引用了示出本发明的特定实施例的附图。其他具有不同结构和操作的实施例并不偏离本发明的范围。
如本领域的技术人员将理解的,本发明可以被包括为方法、系统或计算机程序产品。因此,本发明可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合了软件和硬件方面的实施例的形式,所有这些实施例在此通常被称为“电路”、“模块”或“系统”。此外,本发明可以采取在计算机可用存储介质(所述介质中包括有计算机可用程序代码)上的计算机程序产品的形式。
可以使用任何适合的计算机可用或计算机可读介质。所述计算机可用或计算机可读介质例如可以是(但不限于)电子、磁、光、电磁、红外线或半导体系统、装置、设备或传播介质。计算机可读介质的更具体的实例(非穷举的列表)将包括以下项具有一条或多条线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦写可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、诸如那些支持因特网或内联网的传输介质或磁存储设备。注意,所述计算机可用或计算机可读介质甚至可以是程序被打印在其上的纸张或其他适合的介质,因为所述程序可以通过例如光扫描所述纸张或其他介质被电子地捕获,然后被编译、解释或另外以适合的方式被处理(如果必要),然后被存储在计算机存储器中。
在此文档的上下文中,计算机可用或计算机可读介质可以是任何能够包含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与指令执行系统、装置或设备有关的程序的介质。计算机可用介质可以包括其中包含计算机可用程序代码(在基带中或作为载波的一部分)的传播数据信号。可以使用任何适当的介质(包括但不限于因特网、线缆、光纤电缆、射频(RF)或其他装置)来传输计算机可用程序代码。
用于执行本发明的操作的计算机程序代码可以以面向对象的编程语言(如Java、Smalltalk或C++等)来编写。但是,用于执行本发明的操作的所述计算机程序代码也可以以传统的过程编程语言(如“C”编程语言或类似的编程语言)来编写。所述程序代码可以完全地在计算机上作为单独的软件包、部分地在本地计算机上并部分地在远程计算机上或完全地在远程计算机或服务器上执行。在后者的情况中,所述远程计算机可以通过物理或其他虚拟局域网(LAN)或广域网(WAN)与所述用户计算机相连,或者可以进行与外部计算机的连接(例如,利用因特网服务提供商并通过因特网)。
参考根据本发明的实施例的方法、装置(系统)和/或计算机程序产品的流程图和/或方块图在下面描述了本发明。将理解,所述流程图和/或方块图的每个方块以及所述流程图和/或方块图中的方块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生一种机器,以便通过所述计算机和/或其他可编程数据处理装置的处理器执行的所述指令将创建用于实现所述流程图和/或方块图方块(多个)中指定的功能/操作的装置。
这些计算机程序指令也可以被存储在能够以特定方式引导计算机或其他可编程数据处理装置执行功能的计算机可读存储器中,以便存储在所述计算机可读存储器中的所述指令将产生一件包括实现在所述流程图和/或方块图方块(多个)中指定的功能/操作的指令装置的制品。
所述计算机程序指令还可以被加载到计算机或其他可编程数据处理装置上以导致将在所述计算机或其他可编程装置上执行一系列的操作步骤以产生计算机实现的过程,以便在所述计算机或其他可编程装置上执行的所述指令将提供用于实现在所述流程图和/或方块图方块(多个)中指定的功能/操作的步骤。
本发明的实施例可以允许使用非IP协议的回送功能。如本领域中公知的,IP协议使用地址解析协议(ARP)来消除操作系统“了解”某些物理设备的物理硬件地址(也称为MAC地址或第二层地址)的需要。作为一个实例,网络接口卡(NIC)通常被分配有MAC地址。但是,其他网络层协议需要这些物理地址。例如,SNA使用配置文件来定义这些第二层地址。需要源和目的地MAC地址以便进行路由可以意味着非IP协议不能使用与IP协议相同的回送机制。因此,根据本发明的至少某些实施例的内部虚拟局域网可以允许应用通过虚拟设备彼此通信,所述虚拟设备不与任何真实硬件对应,但是尽管如此,它们对于操作系统进而对于应用来说,似乎具有真实硬件设备的所有特性。这些虚拟设备可以对所有操作系统命令和用户程序做出响应,仿佛它们是真实的硬件设备一样。可以根据第二层协议在设备间传输数据。可以建立所述设备以表示任何类型的硬件、令牌环、以太网等。
在实例实施例中,所有硬件标头都由驱动器管理和使用以使应用能够发送和接收分组。此类驱动器在此可以称为内部局域网或“iLAN”驱动器。系统管理员可以创建和删除在此称为内部局域网设备的内部虚拟局域网设备。在实例实施例中,可以根据需要更改MAC地址和其他设置(如混杂模式)。可以定义任意数量的虚拟设备。如果需要,可以定义数以百计的内部局域网设备。在显示或修改所述虚拟设备时,使用标准系统工具对它们进行更改,因为虚拟设备对于操作系统来说如同真实硬件设备一样。
在某些实施例中,使用标准操作系统工具和功能并以“非标准”方式使用所述工具和功能来创建内部虚拟局域网,以便创建内部局域网驱动器和虚拟设备。一旦创建了虚拟设备,就按照配置/控制实际硬件设备的方式来配置/控制虚拟设备。作为一个实例,在Linux系统中,可以使Linux内核模块“欺骗”Linux内核。但是,只要使用适当的机制来设置内部虚拟局域网,本发明就可以与任何操作系统一起使用。
在使用的相关硬件地址为MAC地址的实施例中,系统管理员可以定义任何方便的MAC地址。例如,可以使用来自其他机器的实际硬件MAC地址来测试依赖于该MAC地址的应用。备选地,可以使用完全处于“真实”MAC地址范围之外的地址。仍以Linux为例,通常使用标准的“ipconfig”命令来设置MAC地址。再次地,本发明并不限于特定的操作系统并且在此给出Linux只是作为实例。
转到图1,其中示出了本发明的实例实施例的方块图,系统的各个元素对操作系统和在操作系统下运行的应用来说似乎是正常的元素。根据本发明的实施例的内部虚拟局域网系统由局域网102概念性地表示。局域网102在功能上包括内部局域网驱动器104和四个分别具有虚拟硬件地址的虚拟设备。系统管理员或其他用户将两个一般性质的虚拟设备指定为内部局域网设备106和内部局域网设备108。虚拟局域网102还包括两个虚拟以太网设备,即以太网设备110和以太网设备112。图1的系统还包括真实以太网设备,即物理设备114。设备114具有其自己的驱动器(驱动器116),以及通过网络接口卡118到网络的物理连接,从操作系统的角度,网络接口卡118与设备和外部网络关联。
仍然参考图1,示例性实施例中的操作系统包括用户空间120、内核空间122和与外部网络124的连接。所有虚拟和实际的设备都在操作系统内核的控制下由用户空间120中的应用进行访问。内核空间122将真实以太网设备112视为到外部网络124的入口。
在操作期间,图1所示的实例系统的应用130可以向虚拟局域网发送一个或多个数据分组。所述数据传送到网络层中并由内部局域网驱动器104准备传输和排队到内部局域网虚拟设备之一。箭头132表示由应用转发到内部局域网设备的数据分组。当以此方式通过操作系统转发源自应用的分组时,由内部局域网驱动器检查分组的第二层部分,以便使用虚拟地址标识适当的虚拟设备。然后系统将此类分组发送到目的地虚拟设备的入站队列。虚拟设备将分组排队到网络层,就像其来自外部网络一样。
仍以图1的系统为例,网络层可以将先前从应用130接收的数据通过相同或不同的虚拟设备转发到应用134。箭头136表示此方向的数据传送。从虚拟内部局域网上的内部虚拟设备传送到应用的分组被视为像源自任何其他设备的分组一样。操作系统将其转发到应用,如应用134。应用134不了解虚拟设备112与作为真实设备提供给用户空间的真实网络接口卡之间的差异。不必为了利用虚拟局域网而更改应用。网络层和操作系统不会将所述设备识别为不同于物理设备。在本发明的实例实施例中,外部监视器也将所述设备视为真实的物理设备,并报告其成功和准确的使用。
仍参考图1,使用虚线表示的路径138示出了其中将虚拟局域网桥接到真实的物理局域网的可选功能。如果采用此类桥接,来自虚拟局域网的分组可以逃逸到真实局域网,并且在虚拟局域网上可以看到通过真实局域网的单播分组和广播分组。例如,可以使用此类配置来实现将应用从带有故障NIC的崩溃机器移动到后备机器,无需更改应用配置来允许使用具有不同MAC地址的新NIC。与图中示出的许多其他业务/信号路径一样,路径138在本质上是概念性的。通过该路径的业务在操作系统的控制下进行传送。
图2是示出根据本发明的至少某些实例实施例来管理虚拟局域网的方法200的流程图。图2的方法200示出了通过操作系统接收并由上述内部局域网驱动器路由的源自应用的分组的处理。由方法200处理的数据业务概念性地由图1的箭头132表示。方法200从方块202开始。在方块204,虚拟局域网系统接收从操作系统和/或应用出站的分组。在方块206,驱动器判定接收到的分组是广播分组还是多播分组。如果是,在方块208,内部局域网驱动器遍历所有虚拟局域网设备并发送分组。如果否,内部局域网驱动器标识出站分组使用的硬件地址。在图2的实例实施例中,硬件地址是MAC地址。在方块212,如果该分组实际上未流向虚拟局域网成员,则系统丢弃该分组。否则,系统标识所述虚拟设备,并且一旦标识了所述设备,就将源自应用的分组转发到该虚拟设备。
仍参考图2,为了将分组转发到虚拟设备,内部局域网驱动器在方块214锁定目的地设备队列。驱动器和/或系统随后在方块216将分组排队到目的地设备的入站分组队列。内部局域网系统在方块218解锁目的地设备队列。在方块220,系统判定是否已经处理了当前处理的业务流中的所有分组。如果是,过程200在方块222结束。否则,处理返回方块204并按照类似的方式处理下一个分组。
图3是另一个流程图,此次示出了相对于从虚拟设备移动到操作系统或应用的分组来管理虚拟局域网的方法。方法300用于处理如图1的箭头136指示的方向传送的一个或多个分组。过程300从方块302开始。在方块304,虚拟局域网系统接收来自虚拟设备的目的地是操作系统或应用的分组。在方块306,内部局域网驱动器安排源自设备的分组的第二层的格式。在方块308,内部局域网驱动器将所述分组排队到操作系统。在方块310,虚拟局域网系统判定是否已处理所有业务分组。如果系统完成了此次业务中所有源自设备的分组,则过程300在方块312结束。否则,过程返回方块304处理业务流中的下一个分组。
如前所述,在某些实施例中,本发明通过在可编程计算机系统或指令执行系统(如个人计算机、服务器或工作站等)上运行的计算机程序产品来实现。图4示出了实现本发明的实施例的指令执行系统400的更多细节。系统总线401将各组件进行互连。处理器402控制系统。在某些实施例中,处理器402是Intel兼容的微处理器。注意,本发明可以应用于其他体系结构。系统存储器403在某些实施例中可以分成各种存储器区域或类型。由于本发明的一个实施例在图4的系统中运行,因此系统存储器403包括至少一个内部虚拟局域网404的至少一部分。可选地,可以在系统内建立多个内部的虚拟局域网。在图4的实例中,第二虚拟局域网405由系统存储器403内的虚线表示。如果指令执行系统中有多个虚拟局域网运行,则内部的虚拟局域网可以独立运行,或按照任何所需的方式桥接在一起。分别运行两个虚拟局域网是有用的,例如,将系统中的测试业务与生产业务分离。
仍参考图4,其中示出了多个常规输入/输出(I/O)适配器或设备406。这些适配器连接到各种外围设备,包括硬盘驱动器407、光盘驱动器408和显示器409。在此实例实施例中,系统400通过物理网络接口卡(NIC)412连接到网络410。实现本发明实施例的计算机可用程序代码可以编码到光盘414上并根据需要传输到硬盘驱动器407。应当指出,图4的系统只是示例性实例。存在并可以使用许多类型的通用计算机系统。
图中的流程图和方块图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方式的体系结构、功能和操作。在此方面,所述流程图或方块图中的每个方块都可以表示代码的模块、段或部分,所述代码包括用于实现指定的逻辑功能(多个)的一个或多个可执行指令。还应指出,在某些备选实施方式中,在方块中说明的功能可以不按图中说明的顺序发生。例如,示出为连续的两个方块可以实际上被基本同时地执行,或者某些时候,取决于所涉及的功能,可以以相反的顺序执行所述方块。还将指出,所述方块图和/或流程图的每个方块以及所述方块图和/或流程图中的方块的组合可以由执行指定功能或操作的基于硬件的专用系统或专用硬件和计算机指令的组合来实现。
此处使用的术语只是为了描述特定的实施例并且并非旨在限制本发明。如此处所使用的,单数形式“a”、“an”和“the”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特征、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其他特征、步骤、操作、元素、组件和/或其组的存在或增加。
虽然在此示出并说明了特定的实施例,但是本领域的技术人员将理解,任何适合达到相同目的的布置都可以替代示出的特定实施例并且本发明在其他环境中具有其他应用。此应用旨在覆盖本发明的任何修改和变化。下面的权利要求决非旨在将本发明的范围限于在此说明的特定实施例。
权利要求
1.一种系统,所述系统包括多个内部虚拟局域网设备,每个虚拟局域网设备都具有在所述系统中的所述虚拟局域网设备间唯一的虚拟地址;以及虚拟局域网驱动器,所述虚拟局域网驱动器连接到所述多个虚拟局域网设备,以使用所述虚拟地址将分组从操作系统传输到所述虚拟局域网设备,其中形成了内部虚拟局域网,因为操作系统可以以与其使用物理局域网设备地址相同的方式来使用虚拟局域网设备地址。
2.根据权利要求1的系统,其中所述虚拟局域网驱动器可以将第二层格式添加到源自设备的分组并且所述虚拟地址介质访问控制地址。
3.根据权利要求1的系统,其中形成了多个内部的虚拟局域网。
4.根据权利要求1的系统,还包括桥接到所述内部的虚拟局域网的物理局域网。
5.一种管理虚拟局域网的方法,所述方法包括通过操作系统接收源自应用的分组;使用连接到所述虚拟局域网的至少一个虚拟设备的虚拟地址信息来标识所述至少一个虚拟设备;以及将所述源自应用的分组转发到所述至少一个虚拟设备以响应标识所述至少一个虚拟设备。
6.根据权利要求5的方法,还包括从虚拟设备接收源自设备的分组;以及将所述源自设备的分组转发到所述操作系统。
7.根据权利要求5的方法,其中所述至少一个虚拟设备包括所有连接到所述虚拟局域网的虚拟设备。
8.根据权利要求5的方法,其中所述地址信息包括介质访问控制地址。
9.根据权利要求6的方法,其中所述地址信息包括介质访问控制地址,并且还包括将第二层格式添加到所述源自设备的分组以响应接收所述源自设备的分组。
10.一种管理虚拟局域网的装置,所述装置包括通过操作系统接收源自应用的分组的装置;使用连接到所述虚拟局域网的虚拟设备的虚拟地址信息来标识所述虚拟设备的装置;以及将所述源自应用的分组转发到所述虚拟设备以响应标识所述虚拟设备的装置。
11.根据权利要求10的装置,还包括从所述虚拟设备接收源自设备的分组的装置;以及将所述源自设备的分组转发到所述操作系统的装置。
12.根据权利要求10的装置,还包括将广播分组转发到所有连接到所述虚拟局域网的虚拟设备的装置。
13.根据权利要求10的装置,其中所述虚拟地址信息包括介质访问控制地址。
14.根据权利要求11的装置,其中所述虚拟地址信息包括介质访问控制地址,并且还包括将第二层格式添加到所述源自设备的分组的装置。
全文摘要
本发明提供了一种内部虚拟局域网(LAN)。系统包括多个内部的虚拟局域网设备。每个虚拟局域网设备都具有在所述系统中的所述虚拟局域网设备间唯一的虚拟地址。在某些实施例中,将虚拟局域网驱动器连接到所述多个虚拟局域网设备,以使用所述虚拟地址将分组从操作系统传输到所述虚拟局域网设备。这样,可以形成内部虚拟局域网,因为操作系统可以以与其使用物理局域网设备地址相同的方式来使用虚拟局域网设备地址。
文档编号H04L12/24GK101072159SQ20071010471
公开日2007年11月14日 申请日期2007年4月25日 优先权日2006年5月10日
发明者A·H·里希特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1