CN102752203A - 一种创建多个虚拟网络接口的方法和网络设备 - Google Patents
一种创建多个虚拟网络接口的方法和网络设备 Download PDFInfo
- Publication number
- CN102752203A CN102752203A CN2012102230244A CN201210223024A CN102752203A CN 102752203 A CN102752203 A CN 102752203A CN 2012102230244 A CN2012102230244 A CN 2012102230244A CN 201210223024 A CN201210223024 A CN 201210223024A CN 102752203 A CN102752203 A CN 102752203A
- Authority
- CN
- China
- Prior art keywords
- interface
- virtual network
- network
- establishment
- packet
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种创建多个虚拟网络接口的方法,所述方法包括:设备初始化,包括加载MACVLAN模块;通过加载网络设备接口驱动创建至少一个网络接口;基于所述创建得到的网络接口,通过MACVLAN机制创建多个虚拟网络接口。本发明实施例还公开了一种实现创建多个虚拟网络接口的网络设备。采用本发明,可以实现在一个物理接口上创建多个虚拟接口。
Description
技术领域
本发明涉及通信领域,尤其涉及一种创建多个虚拟网络接口的方法和网络设备。
背景技术
网络设备通讯中,TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)协议上层业务的展开需依赖于网络的底层驱动。在内核中需要创建网络接口以实现相应的功能。现有的技术中,一个或者多个物理接口通常在内核中初始化为一个网络设备接口。以市面上现有的多WAN(Wide Area Network,广域网)口路由器而言,多WAN口路由器为了实现可以同时接入不同外网线路,比如物理接口WAN1接网通、WAN2接电信,使得内网访问网通的服务走网通线路,访问电信的服务走电信的线路,需要在硬件上连接多个物理接口,如多WAN口路由器可以采用多个RJ45接口的交换机来达到多WAN口的目的。可见现有技术存在以下缺陷:
1、业务的区分依赖于硬件的接口实现,有多个业务想要实现,就需要有多个物理接口来支撑,因此极大的限制了业务多样化的开展,也极大地影响了运营商的盈利模式以及用户日益增长的需求。
2、多业务的运营需要多个物理接口的实现,从而无形中提高了网络设备的成本,提高了运营商的运维成本。
发明内容
本发明所要解决的技术问题在于,提供一种创建多个虚拟网络接口的方法和网络设备,可实现在一个物理接口上创建多个虚拟接口。
为了解决上述技术问题,本发明提供了一种创建多个虚拟网络接口的方法,所述方法包括:
设备初始化,包括加载MACVLAN模块;
通过加载网络设备接口驱动创建至少一个网络接口;
基于所述创建得到的网络接口,通过MACVLAN机制创建多个虚拟网络接口。
其中,所述通过MACVLAN机制创建多个虚拟网络接口之后还包括:
建立所述网络接口与所述多个虚拟网络接口之间的NAT映射关系。
其中,所述通过MACVLAN机制创建多个虚拟网络接口包括:
注册MAC VLAN接口的通知链函数;
注册MAC VLAN接口的帧处理函数;
注册MAC VLAN接口的链接操作函数。
其中,所述通过MACVLAN机制创建多个虚拟网络接口后还包括:
获取需要发送的数据包;
调用创建所述虚拟网络接口时注册的函数对所述数据包进行处理;
通过所述网络设备接口驱动发送经过处理的数据包。
相应的,本发明实施例还提供了一种实现创建多个虚拟网络接口的网络设备,所述网络设备包括:
初始化单元,用于进行设备初始化,包括加载MACVLAN模块;
网络接口创建单元,用于通过加载网络设备接口驱动创建至少一个网络接口;
虚拟网络接口创建单元,用于基于所述创建得到的网络接口,通过MACVLAN机制创建多个虚拟网络接口。
其中,所述网络设备还包括:
映射关系建立单元,用于建立所述网络接口与所述多个虚拟网络接口之间的NAT映射关系。
其中,所述网络接口创建单元通过加载网络设备接口驱动创建至少一个网络接口包括:
注册MAC VLAN接口的通知链函数;
注册MAC VLAN接口的帧处理函数;
注册MAC VLAN接口的链接操作函数。
其中,所述网络设备还包括:
数据包获取单元,用于获取需要发送的数据包;
数据包处理单元,用于调用创建所述虚拟网络接口时注册的函数对所述数据包进行处理;
数据包发送单元,用于通过所述网络设备接口驱动发送经过处理的数据包。
实施本发明,具有如下有益效果:通过采用Linux的MACVLAN机制,实现在一个物理接口上创建多个虚拟接口,可以在创建得到的多个虚拟网络接口上开展多个业务,从而达到一线多网或者一线多业务,有效的降低了成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种创建多个虚拟网络接口的方法的流程示意图;
图2是本发明调用创建得到的虚拟网络接口进行数据包发送的流程示意图;
图3是本发明一种实现创建多个虚拟网络接口的网络设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明一种创建多个虚拟网络接口的方法的流程示意图。本发明实施例可以实现在如个人电脑、路由器、交换机、通讯服务器等各种网络设备上。如图所示本发明实施例中创建多个虚拟网络接口的方法至少包括:
步骤S101,设备初始化,包括加载MACVLAN(Media Access Control Addressbased Virtual Local Area Network,基于虚拟局域网的媒体访问控制地址)模块。具体实现中,该步骤可以包括网络设备上电启动至加载内核,然后初始化网络协议栈,加载文件系统,加载Linux的MACVLAN模块。
步骤S102,通过加载网络设备接口驱动创建至少一个网络接口。具体实现中,以路由器创建网络接口为例,加载的是以太网交换机的相关驱动,以实现基于一个物理接口创建得到一个网络接口。当有多个物理接口时,可以对应每个物理接口创建得到一个网络接口。
步骤S103,基于所述创建得到的网络接口,通过MACVLAN机制创建多个虚拟网络接口。利用Linux的MACVLAN机制可以基于一个网络接口创建多个虚拟网络接口,具体实现中包括:在加载MACVLAN模块并初始化后进行以下函数的注册:
注册MAC VLAN接口的Notifier通知链函数(网络设备状态变动时的处理函数);
注册MAC VLAN接口的帧处理函数;
注册MAC VLAN接口的链接操作函数。
成功完成MAC VLAN的上述三类函数注册后,即基于一个网络接口的多个虚拟网络接口创建成功。
进一步的所述一种创建多个虚拟网络接口的方法还可以包括:
建立所述网络接口与所述多个虚拟网络接口之间的NAT(Network AddressTranslation,网络地址转换)映射关系。该步骤为可选,例如在路由器中实现本方案的时候,建立所述NAT映射关系,可以实现循环处理数据时进行网络地址转换并由对应的网络接口转发数据包。
为了说明如何使用所述创建得到的虚拟网络接口,下面通过一个使用上述方法创建得到的虚拟网络接口发送数据包的流程进行阐述:
图2是本发明调用创建得到的虚拟网络接口进行数据包发送的流程示意图,如图所示该流程包括:
步骤S201,获取需要发送的数据包。具体为网络设备接口驱动获取到所述需要发送的数据包。
步骤S202,调用创建所述虚拟网络接口时注册的函数进行处理。具体实现中,所述网络设备接口驱动在获取到所述数据包后,可以调用网络协议栈对所述数据包进行处理,包括调用之前创建所述虚拟网络接口时注册成功的三种类型的函数对所述数据包进行处理,处理完毕后将经过处理的数据包返回给所述网络设备接口驱动。
步骤S203,通过所述网络设备接口驱动发送经过处理的数据包。
图3是本发明一种实现创建多个虚拟网络接口的网络设备的结构示意图。本发明中的网络设备可以在如个人电脑、路由器、交换机、通讯服务器等设备上实现。
初始化单元310,用于进行设备初始化,包括加载MACVLAN模块。具体的,初始化单元310在网络设备上电启动至加载内核后初始化网络协议栈,加载文件系统,加载Linux的MACVLAN模块。
网络接口创建单元320,用于通过加载网络设备接口驱动创建至少一个网络接口。具体实现中,已路由器创建网络接口为例,网络接口创建单元320加载的是以太网交换机的相关驱动,以实现基于一个物理接口创建得到一个网络接口。当有多个物理接口时,网络接口创建单元320可以对应每个物理接口创建得到一个网络接口。
虚拟网络接口创建单元330,用于基于所述创建得到的网络接口,通过MACVLAN机制创建多个虚拟网络接口。利用Linux的MACVLAN机制可以基于一个网络接口创建多个虚拟网络接口,具体实现中包括:在加载MACVLAN模块并初始化后虚拟网络接口创建单元330进行以下函数的注册:
注册MAC VLAN接口的Notifier通知链函数(网络设备状态变动时的处理函数);
注册MAC VLAN接口的帧处理函数;
注册MAC VLAN接口的链接操作函数。
成功完成MAC VLAN的上述三类函数注册后,虚拟网络接口创建单元330基于一个网络接口的多个虚拟网络接口创建成功。
进一步的所述实现创建多个虚拟网络接口的网络设备还可以包括:
映射关系建立单元340,用于建立所述网络接口与所述多个虚拟网络接口之间的NAT映射关系。该步骤为可选,例如在路由器中实现本方案的时候,建立所述NAT映射关系,可以实现循环处理数据时进行网络地址转换并由对应的网络接口转发数据包。
进一步的所述实现创建多个虚拟网络接口的网络设备还可以包括:
数据包获取单元350,用于获取需要发送的数据包。
数据包处理单元360,用于调用创建所述虚拟网络接口时注册的函数对所述数据包进行处理。具体实现中,所述数据包处理单元360在获取到所述数据包后,可以调用网络协议栈对所述数据包进行处理,包括调用之前创建所述虚拟网络接口时注册成功的三种类型的函数对所述数据包进行处理,处理完毕后将经过处理的数据包返回给网络设备接口驱动。
数据包发送单元370,用于通过所述网络设备接口驱动发送经过处理的数据包。
本发明实施例通过采用Linux的MACVLAN机制,实现在一个物理接口上创建多个虚拟接口,可以在创建得到的多个虚拟网络接口上开展多个业务,从而达到一线多网或者一线多业务,有效的降低了成本。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (8)
1.一种创建多个虚拟网络接口的方法,其特征在于,所述方法包括:
设备初始化,包括加载MACVLAN模块;
通过加载网络设备接口驱动创建至少一个网络接口;
基于所述创建得到的网络接口,通过MACVLAN机制创建多个虚拟网络接口。
2.如权利要求1所述的创建多个虚拟网络接口的方法,其特征在于,所述通过MACVLAN机制创建多个虚拟网络接口之后还包括:
建立所述网络接口与所述多个虚拟网络接口之间的NAT映射关系。
3.如权利要求1所述的创建多个虚拟网络接口的方法,其特征在于,所述通过MACVLAN机制创建多个虚拟网络接口包括:
注册MAC VLAN接口的通知链函数;
注册MAC VLAN接口的帧处理函数;
注册MAC VLAN接口的链接操作函数。
4.如权利要求3所述的创建多个虚拟网络接口的方法,其特征在于,所述通过MACVLAN机制创建多个虚拟网络接口后还包括:
获取需要发送的数据包;
调用创建所述虚拟网络接口时注册的函数对所述数据包进行处理;
通过所述网络设备接口驱动发送经过处理的数据包。
5.一种实现创建多个虚拟网络接口的网络设备,其特征在于,所述网络设备包括:
初始化单元,用于进行设备初始化,包括加载MACVLAN模块;
网络接口创建单元,用于通过加载网络设备接口驱动创建至少一个网络接口;
虚拟网络接口创建单元,用于基于所述创建得到的网络接口,通过MACVLAN机制创建多个虚拟网络接口。
6.如权利要求5所述的实现创建多个虚拟网络接口的网络设备,其特征在于,还包括:
映射关系建立单元,用于建立所述网络接口与所述多个虚拟网络接口之间的NAT映射关系。
7.如权利要求5或6所述的实现创建多个虚拟网络接口的网络设备,其特征在于,所述网络接口创建单元通过加载网络设备接口驱动创建至少一个网络接口包括:
注册MAC VLAN接口的通知链函数;
注册MAC VLAN接口的帧处理函数;
注册MAC VLAN接口的链接操作函数。
8.如权利要求7所述的实现创建多个虚拟网络接口的网络设备,其特征在于,还包括:
数据包获取单元,用于获取需要发送的数据包;
数据包处理单元,用于调用创建所述虚拟网络接口时注册的函数对所述数据包进行处理;
数据包发送单元,用于通过所述网络设备接口驱动发送经过处理的数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012102230244A CN102752203A (zh) | 2012-06-30 | 2012-06-30 | 一种创建多个虚拟网络接口的方法和网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012102230244A CN102752203A (zh) | 2012-06-30 | 2012-06-30 | 一种创建多个虚拟网络接口的方法和网络设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102752203A true CN102752203A (zh) | 2012-10-24 |
Family
ID=47032107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012102230244A Pending CN102752203A (zh) | 2012-06-30 | 2012-06-30 | 一种创建多个虚拟网络接口的方法和网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102752203A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103391217A (zh) * | 2013-07-24 | 2013-11-13 | 深信服网络科技(深圳)有限公司 | 实现异构集群设备同步的方法和异构集群系统 |
CN105405280A (zh) * | 2015-10-22 | 2016-03-16 | 宁波三星医疗电气股份有限公司 | 一种用于调试电力采集终端并获得抄表信息的实现方法 |
CN106982170A (zh) * | 2017-04-19 | 2017-07-25 | 上海海加网络科技有限公司 | 基于Linux系统的多链路负载均衡方法及装置 |
CN111147391A (zh) * | 2019-12-05 | 2020-05-12 | 深圳市任子行科技开发有限公司 | DPDK用户态与linux内核网络协议栈之间的数据传输方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1703016A (zh) * | 2003-03-06 | 2005-11-30 | 微软公司 | 虚拟网络拓扑结构生成 |
CN101322432A (zh) * | 2006-09-20 | 2008-12-10 | 香港应用科技研究院有限公司 | 使用单个无线网络适配器在多个无线网络之间无缝漫游的方法 |
CN102025787A (zh) * | 2010-11-22 | 2011-04-20 | 中兴通讯股份有限公司 | 数据卡设备网络接口联网的方法和装置 |
-
2012
- 2012-06-30 CN CN2012102230244A patent/CN102752203A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1703016A (zh) * | 2003-03-06 | 2005-11-30 | 微软公司 | 虚拟网络拓扑结构生成 |
CN101322432A (zh) * | 2006-09-20 | 2008-12-10 | 香港应用科技研究院有限公司 | 使用单个无线网络适配器在多个无线网络之间无缝漫游的方法 |
CN102025787A (zh) * | 2010-11-22 | 2011-04-20 | 中兴通讯股份有限公司 | 数据卡设备网络接口联网的方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103391217A (zh) * | 2013-07-24 | 2013-11-13 | 深信服网络科技(深圳)有限公司 | 实现异构集群设备同步的方法和异构集群系统 |
CN103391217B (zh) * | 2013-07-24 | 2016-08-10 | 深信服网络科技(深圳)有限公司 | 实现异构集群设备同步的方法和异构集群系统 |
CN105405280A (zh) * | 2015-10-22 | 2016-03-16 | 宁波三星医疗电气股份有限公司 | 一种用于调试电力采集终端并获得抄表信息的实现方法 |
CN105405280B (zh) * | 2015-10-22 | 2018-11-30 | 宁波三星医疗电气股份有限公司 | 一种用于调试电力采集终端并获得抄表信息的实现方法 |
CN106982170A (zh) * | 2017-04-19 | 2017-07-25 | 上海海加网络科技有限公司 | 基于Linux系统的多链路负载均衡方法及装置 |
CN111147391A (zh) * | 2019-12-05 | 2020-05-12 | 深圳市任子行科技开发有限公司 | DPDK用户态与linux内核网络协议栈之间的数据传输方法及系统 |
CN111147391B (zh) * | 2019-12-05 | 2023-04-07 | 深圳市任子行科技开发有限公司 | DPDK用户态与linux内核网络协议栈之间的数据传输方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2586160B1 (en) | Distributed virtual network gateways | |
US8601158B2 (en) | Virtual gateway router | |
US9876756B2 (en) | Network access method and device for equipment | |
WO2013159518A1 (en) | Migration of a security policy of a virtual machine | |
CN106464534A (zh) | 配设和管理用户驻地设备装置的片 | |
CN101800690B (zh) | 一种使用地址池实现源地址转换的方法和装置 | |
CN103270507A (zh) | 根据刀片的物理位置,实现刀片的自动供应和配置的集成软件和硬件系统 | |
CN102598592A (zh) | 智能客户端路由 | |
CN102845123A (zh) | 虚拟私云的连接方法及隧道代理服务器 | |
CN104426680A (zh) | 数据传输方法、装置和系统 | |
CN103781055A (zh) | 一种数据下载方法及相关设备 | |
CN1832458B (zh) | 用于实现应用服务器功能性的方法和接入节点 | |
CN102752203A (zh) | 一种创建多个虚拟网络接口的方法和网络设备 | |
CN108833472B (zh) | 云主机的连接建立系统 | |
EP3964970B1 (en) | Heterogeneous and/or hosted physical layer management system | |
CN108540588A (zh) | Mac地址获取方法及系统、网络安全设备及可读存储介质 | |
CN105827496B (zh) | 管理pe设备的方法及装置 | |
CN105573801A (zh) | 堆叠系统中实现软件升级的方法、装置及系统 | |
CN103141072B (zh) | Ip地址获取方法及网络接入设备 | |
CN102158567A (zh) | 设备配置方法、策略服务器及网络地址转换设备 | |
CN1332539C (zh) | 自动创建虚拟局域网地址池的实现方法 | |
CN105577433A (zh) | 一种acs集群管理方法、装置和系统 | |
CN114048028A (zh) | 服务调用方法、装置、存储介质和电子设备 | |
US20170264454A1 (en) | Method and apparatus for routing data to cellular network | |
US6839764B2 (en) | Domain encapsulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20121024 |