CN1490991A - 虚拟以太网适配卡的方法 - Google Patents
虚拟以太网适配卡的方法 Download PDFInfo
- Publication number
- CN1490991A CN1490991A CNA021472637A CN02147263A CN1490991A CN 1490991 A CN1490991 A CN 1490991A CN A021472637 A CNA021472637 A CN A021472637A CN 02147263 A CN02147263 A CN 02147263A CN 1490991 A CN1490991 A CN 1490991A
- Authority
- CN
- China
- Prior art keywords
- virtual
- address
- mac address
- adapter card
- adapter
- 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.)
- Granted
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种虚拟以太网适配卡的方法,该方法为:在以太网物理适配卡上建立虚拟地址管理器和软件过滤器,并将该卡的过滤模式设置为混杂模式;由虚拟地址管理器生成复数个逻辑适配卡的虚拟MAC地址,生成并维护该复数个虚拟MAC地址信息;对接收分组,由软件过滤器根据虚拟地址管理器中维护的虚拟MAC地址信息完成各逻辑适配卡的虚拟MAC地址的过滤分类;对发送分组由软件过滤器根据虚拟地址管理器中维护的虚拟MAC地址信息完成虚拟MAC地址绑定。本发明在不增加任何额外的硬件设备实现以太网适配器的多路复用,并且能完成虚拟适配卡和虚拟适配卡之间,虚拟适配卡和物理适配卡之间的完全互通。
Description
技术领域
本发明涉及以太网适配卡技术,特别涉及一种虚拟以太网适配卡的方法。
背景技术
以太网技术是一种基带局域网(Local Area Network,简称LAN)技术,IEEE802.3标准描述了最初的以太网技术规范,其传输速率为10Mbps,其后又出现了快速以太网(100Mbps)和千兆以太网(1000Mbps),它们基本都是IEEE 802.3的扩展,在物理(PHY)子层采用了不同的介质传输机制;介质访问控制(MediaAccess Control,简称MAC)子层采用了更加先进的介质访问控制和冲突检测方法,提高了传输速率;在逻辑链路控制(Logic Link Control,简称LLC)子层仍然都遵循了标准的IEEE 802.3帧格式。
IEEE 802.3通常由适配卡(网卡)或主电路板上的电路实现,在实际应用中,常见的就是以太网适配卡。在一般的网络工作站或者路由器设备上,都存在这样的适配卡。通常,一块适配卡只能作为一个单独的网络收发单元工作,它包含了一个由厂商指定的MAC地址(48-bit的唯一地址),这个地址出现在LLC描述的帧结构的地址域中,用于标识接收或者发送的实体。
目前解决物理适配接口多路复用的技术方案通常是连接专门的分叉复用设备或者采用支持通道化的硬件接口卡来实现。此方案的缺点在于需要专门的硬件设备支持。
另外,在逻辑链路层的帧结构载荷数据中增加逻辑通道标识号也可以实现逻辑上的多路复用。此方案的缺点在于由于需要识别附加的逻辑通道标识,因此只能在实现相同技术方案的适配卡之间互相通信。
发明内容
针对背景技术中的不足,本发明的目的在于提供一种虚拟以太网适配卡的方法,以达到在不增加额外硬件和不改变任何物理连接、并且保证原有通信机制的情况下,实现以太网适配卡多路复用
本发明包括步骤:
在以太网物理适配卡上建立虚拟地址管理器和软件过滤器,并将该卡的过滤模式设置为混杂模式;
由虚拟地址管理器生成复数个逻辑适配卡的虚拟MAC地址,生成并维护该复数个虚拟MAC地址信息;
对接收分组,由软件过滤器根据虚拟地址管理器中维护的虚拟MAC地址信息完成各逻辑适配卡的虚拟MAC地址的过滤分类;
对发送分组由软件过滤器根据虚拟地址管理器中维护的虚拟MAC地址信息完成虚拟MAC地址绑定。
根据上述技术方案:
虚拟MAC地址的高位采用国际标准组织尚未分配的标识,低位采用IP地址或物理适配卡本身的硬件地址通过运算得到;该运算为哈希运算。
虚拟地址管理器采用地址冲突检测机制保证生成的虚拟MAC地址的唯一性。
虚拟MAC地址信息包括一地址表,每一个表项至少包括一个逻辑适配卡的设备标识序号和与其对应的虚拟MAC地址。
接收分组时进一步包括步骤:
a.以太网物理适配卡的硬件过滤器将所有分组透传给软件过滤器;
b.软件过滤器对分组目标MAC地址进行判断:
对单播的情况,软件过滤器将此MAC地址和虚拟地址管理器中维护的地址表进行匹配查找,若找到匹配的逻辑适配卡则复制该分组到该逻辑适配卡,否则丢弃;
对于广播地址,软件过滤器复制该分组到所有逻辑适配卡;
对于组播地址,软件过滤器根据组播组成员情况复制到相应的逻辑适配卡。
c.根据逻辑适配卡的设备标识序号,将分组上传。
发送分组时进一步包括下述步骤:
a.上层协议分组通过逻辑适配卡传入软件过滤器;
b.软件过滤器根据逻辑适配卡设备序号查找其对应的虚拟MAC地址填充以太网帧的源地址域,以完成地址绑定;
c.软件过滤器将完成地址绑定的分组传入硬件过滤器。
本发明的优点在于:不增加任何额外的硬件设备实现以太网适配器的多路复用,并且能完成虚拟适配卡和虚拟适配卡之间,虚拟适配卡和物理适配卡之间的完全互通。
附图说明
图1为本发明实现分组接收的示意图;
图2为本发明软件过滤器处理接收分组的流程图;
图3为本发明软件过滤器处理发送分组的流程图;
图4为生成虚拟MAC地址的示意图。
具体实施方式
以太网采用广播机制,所有在同一个网段与网络连接的设备通过以太网适配卡都可以接收网络上传递的数据。每一个网络接口都有一个唯一的硬件地址,这个硬件地址就是适配卡的MAC地址,大多数系统使用48比特的地址。以太网地址包含三类:单播地址(最高位为0),多播地址(最高的8位组的低位为1),广播地址(全是1)。
适配卡接收到数据后,通过查看包含在以太网帧中的目标地址,确定是否进行接收或丢弃。如果证明数据确实是发给自己的,适配卡将会把接收数据并传递给高层协议进行处理。
由于以太网适配卡需要接受所有在网路上广播传送的分组,并确定需要向上层传递哪些数据,因此包含一个硬件过滤器,通常包含有以下几种过滤模式:
单播(unicast)模式:接收所有目的地址是自己的分组。
广播(broadcast)模式:接收所有目的地址是广播地址分组。
多播(multicast)模式:接收目的地址为多播地址的分组。
混杂(promiscuous)模式:不检查目的地址,接收网络上所有的分组。
通常,网卡的硬件过滤器被设置为接收目标地址为单播、广播和多播地址的分组,这样可以确保以太网在链路层寻址的正确性。由于MAC地址是唯一捆绑在适配卡上的,因此也保证的寻址的唯一性。
当希望将一块物理适配卡进行多路复用的时候,根据上面的描述可以知道,必须在适配卡上捆绑多个MAC地址,并且能够根据不同的MAC地址进行过滤分类并提供给上层协议使用,这样,对于上层协议来说,底层就拥有了多个逻辑的适配卡,每一个逻辑适配卡对应绑定一个MAC地址,从而上层对分组数据的处理流程无需改变。
对于本发明,由于硬件过滤器依据适配卡本身的硬件MAC地址进行匹配过滤,因此,不能使用硬件过滤器做地址过滤,必须将过滤模式设置为混杂模式,使所有的分组数据都能通过硬件过滤器传送给上层协议。
同时,在以太网物理适配卡上建立虚拟地址管理器和软件过滤器,在分组数据通过硬件过滤传送给上层协议之前,先经过该两个装置。虚拟地址管理器用于生成和删除各个逻辑适配卡的虚拟MAC地址,检测地址冲突,生成和维护逻辑适配卡的虚拟MAC地址信息。软件过滤器根据虚拟地址管理器中维护的MAC地址信息完成各个逻辑适配卡的虚拟MAC地址的过滤分类和绑定,同时替代硬件过滤器完成各个逻辑适配卡的地址过滤。
虚拟地址管理器提供了一组地址管理的软件功能调用接口,主要提供的功能调用接口包括:
1、生成虚拟MAC地址,建立和虚拟适配卡设备号的对应关系,并加入其维护的地址列表中。该功能在系统设备初始化的时候被调用。
2、从维护的地址列表删除虚拟MAC地址以及和虚拟适配卡设备号的对应关系。该功能在删除虚拟适配卡时被被系统设备管理模块调用。
3、根据虚拟MAC地址查找虚拟适配卡的设备号。该功能接口被软件过滤器在处理接收分组时调用。
4、根据虚拟适配卡的设备号查找对应的虚拟MAC地址。该功能接口被软件过滤器在处理发送分组时调用。
地址的生成和删除由系统的设备管理模块驱动,当用户增删一个逻辑的以太网适配卡的时候,系统的设备管理模块就会调用设备初始化和删除操作的功能接口,在这个功能接口中包含调用虚拟地址管理器提供的增加和删除地址的功能接口做相应的操作。
考虑到MAC地址的唯一性,即各逻辑适配卡的虚拟MAC地址是唯一的,本实施例采取的办法是虚拟MAC地址的高24位采用国际标准组织尚未分配的标识,低24位采用IP地址或者物理以太网卡本身的MAC地址通过哈希运算得到,并加入地址冲突检测机制以保证生成地址的唯一性。冲突检测是对在采用相同虚拟地址管理方案的系统中所有逻辑适配卡生成的虚拟MAC地址而言的,用于保证生成的虚拟MAC地址的唯一性。具体的实现方案可以有所不同。在本实施例中,是靠虚拟MAC地址的生成算法来保证的:高24-bit采用国际标准组织IEEE尚未分配的OUI(Organizationally Unique Identifier,组织唯一标识号),保证与现有的所有硬件适配卡的MAC地址不冲突。低24-bit可以分为两部分,两部分分配的bit数值可由系统中允许的最大逻辑适配卡数目决定,例如若允许24=16个逻辑适配卡,则前一部分可以是20-bit,后一部分是4-bit。前一部分由系统的一个主机IP地址或者物理以太网卡的硬件MAC地址通过一个强无碰撞的哈希(Hash)算法得到,所谓强无碰撞,就是指不同的数据hash的结果相同的概率极小,例如md5算法。这一部分地址值可以保证不同系统之间的虚拟MAC地址不会重复,因为不同系统的主机IP地址或者硬件MAC地址是不会相同的。后一部分可以根据逻辑适配卡的数目顺序分配,也可以是随机生成的不重复的数值。这一部分用于保证同一个系统中的虚拟MAC地址不会重复,参照图4所示。
所有生成的各个逻辑适配卡的地址构成一张地址表,每一个表项至少包含一个逻辑适配卡的设备标识序号和其对应的虚拟MAC地址。
参考图1和图2,当接收分组时,从底层上传的数据经过以太网逻辑链路层的处理成为以太网帧送入硬件过滤器,将硬件过滤器设置成混杂模式使所有分组继续向上透传给软件过滤器。软件过滤器首先判断分组的目的MAC地址的类型(广播/组播/单播),如果是单播,软件过滤器则调用虚拟地址管理器的功能接口查询虚拟适配卡的设备号,若没有查到则丢弃分组,若查到则调用该设备对应的上传接口将分组上传;如果是广播,则软件过滤器根据逻辑卡数目复制该分组到所有逻辑适配卡,并循环上传;如果是组播,软件过滤器根据组播组成员情况复制到相应的逻辑适配卡,并循环上传。
参考图3,发送分组时,其基本结构和图一类似,只是数据流向相反,软件过滤器完成的功能不一样。上层协议分组通过逻辑适配卡传入软件过滤器,软件过滤器获得分组信息后,从分组信息中获取虚拟适配卡的设备号,若获取失败,则返回发送失败消息;若成功则调用虚拟地址管理器的功能接口查找对应的虚拟MAC地址,若未查到则返回发送失败消息,否则将此地址填入发送分组的源地址域,调用下层的发送接口发送此分组。
Claims (7)
1、一种虚拟以太网适配卡的方法,其特征在于包括步骤:
在以太网物理适配卡上建立虚拟地址管理器和软件过滤器,并将该卡的过滤模式设置为混杂模式;
由虚拟地址管理器生成复数个逻辑适配卡的虚拟MAC地址,生成并维护该复数个虚拟MAC地址信息;
对接收分组,由软件过滤器根据虚拟地址管理器中维护的虚拟MAC地址信息完成各逻辑适配卡的虚拟MAC地址的过滤分类;
对发送分组,由软件过滤器根据虚拟地址管理器中维护的虚拟MAC地址信息完成虚拟MAC地址绑定。
2、如权利要求1所述的方法,其特征在于虚拟MAC地址的高位采用国际标准组织尚未分配的标识,低位采用IP地址或物理适配卡本身的硬件地址通过运算得到。
3、如权利要求2所述的方法,其特征在于所述运算为哈希运算。
4、如权利要求1、2或3所述的方法,其特征在于虚拟地址管理器采用地址冲突检测机制保证生成的虚拟MAC地址的唯一性。
5、如权利要求1所述的方法,其特征在于所述虚拟MAC地址信息包括一地址表,每一个表项至少包括一个逻辑适配卡的设备标识序号和与其对应的虚拟MAC地址。
6、如权利要求1或5所述的方法,其特征在于接收分组时进一步包括步骤:
a.以太网物理适配卡的硬件过滤器将所有分组透传给软件过滤器;
b.软件过滤器对分组的目标MAC地址类型进行判断:
如果是单播,软件过滤器将此MAC地址和虚拟地址管理器中维护的地址表进行匹配查找,若找到匹配的逻辑适配卡则复制该分组到该逻辑适配卡,否则丢弃;
如果是广播,软件过滤器复制该分组到所有逻辑适配卡;
如果是组播,软件过滤器根据组播组成员情况复制到相应的逻辑适配卡。
c.软件过滤器调用逻辑适配卡对应的上传接口将分组上传。
7、如权利要求1或5所述的方法,其特征在于发送分组时进一步包括下述步骤:
a.上层协议分组通过逻辑适配卡传入软件过滤器;
b.软件过滤器从分组信息中获取虚拟适配卡的设备号,若获取失败,则返回发送失败消息;若成功则调用虚拟地址管理器的功能接口查找对应的虚拟MAC地址,并用查找到的虚拟MAC地址填充以太网帧的源地址域,以完成地址绑定;
c.软件过滤器调用下层的发送接口发送此分组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02147263 CN1249956C (zh) | 2002-10-18 | 2002-10-18 | 虚拟以太网适配卡的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02147263 CN1249956C (zh) | 2002-10-18 | 2002-10-18 | 虚拟以太网适配卡的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1490991A true CN1490991A (zh) | 2004-04-21 |
CN1249956C CN1249956C (zh) | 2006-04-05 |
Family
ID=34148692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02147263 Expired - Fee Related CN1249956C (zh) | 2002-10-18 | 2002-10-18 | 虚拟以太网适配卡的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1249956C (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008031361A1 (en) * | 2006-09-11 | 2008-03-20 | 3Dsp Corporation | A multi-gateway system and methods for same |
CN100391150C (zh) * | 2006-01-19 | 2008-05-28 | 华为技术有限公司 | 数据传送装置及数据传送方法 |
CN100399273C (zh) * | 2005-08-19 | 2008-07-02 | 联想(北京)有限公司 | 一种虚拟机系统及其硬件配置方法 |
CN100423503C (zh) * | 2004-09-14 | 2008-10-01 | 三星电子株式会社 | 通信适配器切换方法和设备 |
CN101001263B (zh) * | 2006-01-09 | 2010-11-24 | 中兴通讯股份有限公司 | 内部交换网中各节点配置mac地址的方法 |
CN102143067A (zh) * | 2011-02-26 | 2011-08-03 | 华为数字技术有限公司 | 减少介质访问控制mac地址表规模的方法和装置 |
CN101656648B (zh) * | 2009-09-11 | 2012-01-25 | 中兴通讯股份有限公司 | 一种局域网动态监控方法和装置 |
CN101610258B (zh) * | 2009-07-21 | 2012-03-28 | 北京九方中实电子科技有限责任公司 | 一种docsis mac地址过滤方法 |
WO2013138977A1 (en) * | 2012-03-19 | 2013-09-26 | Intel Corporation | Techniques for packet management in an input/output virtualization system |
WO2016187783A1 (zh) * | 2015-05-25 | 2016-12-01 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN111432044A (zh) * | 2020-03-17 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 多链路设备mac地址管理方法、装置和多链路设备 |
-
2002
- 2002-10-18 CN CN 02147263 patent/CN1249956C/zh not_active Expired - Fee Related
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100423503C (zh) * | 2004-09-14 | 2008-10-01 | 三星电子株式会社 | 通信适配器切换方法和设备 |
CN100399273C (zh) * | 2005-08-19 | 2008-07-02 | 联想(北京)有限公司 | 一种虚拟机系统及其硬件配置方法 |
CN101001263B (zh) * | 2006-01-09 | 2010-11-24 | 中兴通讯股份有限公司 | 内部交换网中各节点配置mac地址的方法 |
CN100391150C (zh) * | 2006-01-19 | 2008-05-28 | 华为技术有限公司 | 数据传送装置及数据传送方法 |
WO2008031361A1 (en) * | 2006-09-11 | 2008-03-20 | 3Dsp Corporation | A multi-gateway system and methods for same |
CN101610258B (zh) * | 2009-07-21 | 2012-03-28 | 北京九方中实电子科技有限责任公司 | 一种docsis mac地址过滤方法 |
CN101656648B (zh) * | 2009-09-11 | 2012-01-25 | 中兴通讯股份有限公司 | 一种局域网动态监控方法和装置 |
CN102143067A (zh) * | 2011-02-26 | 2011-08-03 | 华为数字技术有限公司 | 减少介质访问控制mac地址表规模的方法和装置 |
WO2013138977A1 (en) * | 2012-03-19 | 2013-09-26 | Intel Corporation | Techniques for packet management in an input/output virtualization system |
US9231864B2 (en) | 2012-03-19 | 2016-01-05 | Intel Corporation | Techniques for packet management in an input/output virtualization system |
CN107743093A (zh) * | 2012-03-19 | 2018-02-27 | 英特尔公司 | 用于输入/输出虚拟化系统中的分组管理的技术 |
CN107743093B (zh) * | 2012-03-19 | 2020-11-03 | 英特尔公司 | 用于输入/输出虚拟化系统中分组管理的装置、方法和介质 |
WO2016187783A1 (zh) * | 2015-05-25 | 2016-12-01 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN106489252A (zh) * | 2015-05-25 | 2017-03-08 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN111432044A (zh) * | 2020-03-17 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 多链路设备mac地址管理方法、装置和多链路设备 |
Also Published As
Publication number | Publication date |
---|---|
CN1249956C (zh) | 2006-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1324843C (zh) | 专门网络中分配因特网协议地址和检测其复制品的方法 | |
CN1310536C (zh) | 无线接入网中的自动信道选择 | |
CN1132347C (zh) | 维护所选网络站和移动站之间的路由路径的系统 | |
CN1154324C (zh) | 标准化网络和非标准化节点的无线耦合 | |
CN1279732C (zh) | 多播组管理的方法和设备 | |
CN1716877A (zh) | 用于自行配置网络中的路由设备的方法和装置 | |
CN1249956C (zh) | 虚拟以太网适配卡的方法 | |
CN1333617A (zh) | 基于mac地址的通信限制方法 | |
CN1787489A (zh) | 将接口流量在多个网络处理器引擎中均担的方法 | |
CN1866910A (zh) | 一种基于vlan的数据报文传输方法和以太网桥设备 | |
CN1287576C (zh) | 通信网中用于减小数据处理时间的方法和设备 | |
CN1402480A (zh) | 介质访问控制桥路的地址管理方法和该桥路 | |
CN1859304A (zh) | 一种邻居发现的实现方法 | |
CN101056246A (zh) | 一种实现负载分担的方法和装置 | |
CN1677982A (zh) | 虚拟局域网标识的可个别地编程的最高有效位 | |
CN1925452A (zh) | 数据转发系统、方法以及网络转发设备 | |
CN1277373C (zh) | 网络通信系统中用户位置信息的传递方法 | |
CN1992672A (zh) | 一种防止由于地址老化时间不一致导致网络中断的方法 | |
CN1291341C (zh) | 以太网无源光网络系统动态过滤数据库的实现方法及装置 | |
CN1859417A (zh) | 一种多台网络设备链路聚集的实现方法 | |
CN1738258A (zh) | 用户单元冗余系统和用户单元冗余方法 | |
CN1677951A (zh) | 基于虚拟局域网的数据交换方法 | |
CN1878147A (zh) | 平衡网络文件系统服务器多网卡间负载的方法 | |
CN1677950A (zh) | 基于虚拟局域网的数据交换方法 | |
CN1490994A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060405 Termination date: 20111018 |