CN106059803A - 一种在计算节点上实现虚拟机南北向通信的方法 - Google Patents
一种在计算节点上实现虚拟机南北向通信的方法 Download PDFInfo
- Publication number
- CN106059803A CN106059803A CN201610364228.8A CN201610364228A CN106059803A CN 106059803 A CN106059803 A CN 106059803A CN 201610364228 A CN201610364228 A CN 201610364228A CN 106059803 A CN106059803 A CN 106059803A
- Authority
- CN
- China
- Prior art keywords
- netns1
- netns2
- interface
- virtual
- network
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及虚拟机通信技术领域,特别是一种在计算节点上实现虚拟机南北向通信的方法。所述方法包括:在虚拟机所在计算节点上安装iproute工具,创建netns1并加入虚拟机相关的接口,创建netns2并增加连通外网的接口和路由,创建veth设备连通netns1和netns2,在netns1和netns2中添加路由策略。采用本发明提供的方法可以解决云平台中网络节点的单点故障问题,同时提高网络通信性能;用于云计算节点上实现虚拟机南北向通信。
Description
技术领域
本发明涉及虚拟机通信技术领域,特别是一种在计算节点上实现虚拟机南北向通信的方法。
背景技术
策略路由及路由策略数据库
路由策略数据库的规则用于控制选择路由的算法。Internet上采用的路由算法一般是基于数据包目的地址的,而在某些情况下,我们不只是需要通过数据包的目的地址决定路由,可能还需要通过其他一些域,如:源地址、IP协议、传输层端口甚至数据包的负载。这就叫做:策略路由(policy routing)。
目前所有的在用Linux内核都默认支持策略路由,我们可以使用iproute提供的iprule,ip route等工具来实现。
云计算的发展催生了各级别的云平台,一般云平台通用的特点就是存在网络节点单点故障问题,即所有计算节点的虚拟机数据包,尤其是南北向的数据通信(南北向通信是指内部私有网络与外部公网或者管理网进行数据通信,即进行外网通信)都必须经过网络节点来实现;这样当网络节点发生故障时,所有虚拟机的通信都中断。虽然目前有提出利用网络节点HA,即多个网络节点来避免单点故障,但是这样的方法也存在如下问题:
1、网络性能差,HA解决的是单点故障,当一个节点错误时,另一个节点接管错误节点的所有功能,对于虚拟机南北向数据通信,所有虚拟机的数据包都是发到这个网络节点来实现的,所以会造成通信质量差的问题。
2、无法做到区域隔离,即所有计算节点的虚拟机在通信过程中都是相互影响的,极端情况下,如果HA的网络节点都错误,或者某一台虚拟机的网络通信占满网卡带宽,那所有的其他虚拟机都会无法通信。
发明内容
本发明解决的技术问题在于提供一种在计算节点上实现虚拟机南北向通信的方法,实现各个计算节点上让虚拟机进行南北向通信,且相互之间完全隔离;避免云平台中存在的网络节点单点故障问题,同时极大的提高了网络通信质量。
本发明解决上述技术问题的技术方案是,
所述的方法是先在虚拟机所在计算节点上安装iproute工具;然后,创建netns1并加入虚拟机相关的接口,创建netns2并增加连通外网的接口和路由;再创建veth设备连通netns1和netns2;最后在netns1和netns2中添加路由策略。
所述的iproute是一个用以替代net-tools的linux网络管理工具;
所述的netns1和netns2是linux命名空间,不同的命名空间使用不同的网络协议栈,各自互不影响;其提供网络资源的隔离方案。
所述的创建netns1并加入虚拟机相关的接口中,接口指的是虚拟机所在网络子网的网关接口,保证虚拟机在进行南北向通信时默认路由指向该接口;
所述的网关接口定义在openvswitch(开放虚拟交换标准,是在开源的Apache2.0许可下的产品级质量的多层虚拟交换标准)的虚拟网桥br-int上,且配置了本地tag,用于实现二层隔离。
所述的创建netns2并增加连通外网的接口和路由进一步包括:
所述的外网的接口可以是定义在openvswitch虚拟网桥上的接口,也可以是直接连通外网网络的物理网卡接口;如果是虚拟网桥上的接口,则进一步需要保证该虚拟网桥有连通外网的能力;所述的能力可以是直接在所述虚拟网桥上添加外网网卡,也可以通过类似openflow流规则控制数据包流向外网;
所述的增加连通外网的路由是指虚拟机南北向通信过程中出去的路由规则。
所述的veth设备是利用iproute工具成对创建出来的虚拟设备;
所述的创建veth设备连通netns1和netns2是指分别将成对生成的虚拟设备一个加入netns1命名空间,另一个加入netns2命名空间。
所述的在netns1和netns2中添加路由策略进一步包括:
在两个命名空间中分别为veth设备的两端设置网络IP;
在netns1中添加从外网进来继而转发到netns2命名空间的路由规则;
在netns2中增加linux高级路由策略,保证虚拟机数据包进来继而转发到netns1命名空间;
所述的linux高级路由策略是指根据路由策略数据库来选择执行路由规则,这些规则可以有多种不同的状态,完全由管理员控制。
本发明方案的有益效果如下:
1、提供一种方法让虚拟机直接通过计算节点进行南北向数据通信,解决了云平台中存在的网络节点单点故障问题。
2、本发明方法极大的提升了虚拟机南北向通信的通信质量。
3、本发明实现了各个计算节点上的虚拟机之间南北向通信完全隔离,相互之间无影响,实现了虚拟机通信的区域化管理。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员没有做出实质性创造获得的方案,都属于本发明保护的范围。
请参见图1,为本发明实施例提供的一种在计算节点上实现虚拟机南北向通信的方法的流程示意图,本实施类以其中一个计算节点为例进行描述,其他计算节点类似。所述方法包括:
首先安装iproute工具:
yum install iproute
接着利用ip工具创建命名空间qrouter-f60bd48a-3282-40de-ae1a-c72963253c66,并添加虚拟机所在网络子网的网关接口,同时配置网关IP:
ip netns add qrouter-f60bd48a-3282-40de-ae1a-c72963253c66
ovs-vsctl add-port br-int qr-4b9cbdc2-80--set Interface dev-test type=internal
ip link set qr-4b9cbdc2-80netns qrouter-f60bd48a-3282-40de-ae1a-c72963253c66
为虚拟机网关节点qr-4b9cbdc2-80设置网关ip:
ip netns exec qrouter-f60bd48a-3282-40de-ae1a-c72963253c66ip addradd12.12.1.1/24dev qr-4b9cbdc2-80
继续创建命名空间fip-21138cb8-1090-41cb-87d7-aadfe954af45并增加连通外网的接口和路由:
ip netns add fip-21138cb8-1090-41cb-87d7-aadfe954af45
同网关接口一样在fip-21138cb8-1090-41cb-87d7-aadfe954af45空间内增加通外网接口fg-1594c406-99,并设置外网IP,并做arp代理。
ip netns exec fip-21138cb8-1090-41cb-87d7-aadfe954af45sysctlnet.ipv4.conf.fg-081d537b-06.proxy_arp
添加通外网的默认路由:
ip netns exec fip-21138cb8-1090-41cb-87d7-aadfe954af45ip route adddefault via 20.251.43.254dev fg-081d537b-06
创建veth设备连通qrouter-f60bd48a-3282-40de-ae1a-c72963253c66和fip-21138cb8-1090-41cb-87d7-aadfe954af45两个namespace。
ip link add fpr-f60bd48a-3type veth peer name rfp-f60bd48a-3
ip link set rfp-f60bd48a-3netns qrouter-f60bd48a-3282-40de-ae1a-c72963253c66
ip link set fpr-f60bd48a-3netns fip-21138cb8-1090-41cb-87d7-aadfe954af45
最后在上面两个namespace内分别为接口添加IP,同时添加相应的策略路由:
ip netns exec qrouter-f60bd48a-3282-40de-ae1a-c72963253c66ip addradd169.254.31.28/31dev fpr-f60bd48a-3
ip netns exec fip-21138cb8-1090-41cb-87d7-aadfe954af45ip addradd169.254.31.29/31dev rfp-f60bd48a-3
ip netns exec fip-21138cb8-1090-41cb-87d7-aadfe954af45ip addradd20.251.42.105/32dev rfp-f60bd48a-3
添加路由策略如下:
ip netns exec qrouter-f60bd48a-3282-40de-ae1a-c72963253c66ip rule addfrom$VM_IP loopup 16
ip netns exec qrouter-f60bd48a-3282-40de-ae1a-c72963253c66ip routeadd default via 169.254.31.29
另外需要在命名空间qrouter-f60bd48a-3282-40de-ae1a-c72963253c66中对虚拟机的内网IP做DNAT转换。
通过上面两条高级路由策略,将把来自IP为$VM_IP的虚拟机数据包,经过接口fpr-f60bd48a-3传到了169.254.31.29接口所在的命名空间fip-21138cb8-1090-41cb-87d7-aadfe954af45,继而与外网进行南北向通信。
Claims (10)
1.一种在计算节点上实现虚拟机南北向通信的方法,其特征在于,所述的方法是先在虚拟机所在计算节点上安装iproute工具;然后,创建netns1并加入虚拟机相关的接口,创建netns2并增加连通外网的接口和路由;再创建veth设备连通netns1和netns2;最后在netns1和netns2中添加路由策略。
2.根据权利要求1所述的方法,其特征在于:
所述的iproute是一个用以替代net-tools的linux网络管理工具;
所述的netns1和netns2是linux命名空间,不同的命名空间使用不同的网络协议栈,各自互不影响;其提供网络资源的隔离方案。
3.根据权利要求1所述的方法,其特征在于,所述的创建netns1并加入虚拟机相关的接口中,接口指的是虚拟机所在网络子网的网关接口,保证虚拟机在进行南北向通信时默认路由指向该接口;
所述的网关接口定义在openvswitch的虚拟网桥br-int上,且配置了本地tag,用于实现二层隔离。
4.根据权利要求2所述的方法,其特征在于,所述的创建netns1并加入虚拟机相关的接口中,接口指的是虚拟机所在网络子网的网关接口,保证虚拟机在进行南北向通信时默认路由指向该接口;
所述的网关接口定义在openvswitch的虚拟网桥br-int上,且配置了本地tag,用于实现二层隔离。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述的创建netns2并增加连通外网的接口和路由进一步包括:
所述的外网的接口可以是定义在openvswitch虚拟网桥上的接口,也可以是直接连通外网网络的物理网卡接口;如果是虚拟网桥上的接口,则进一步需要保证该虚拟网桥有连通外网的能力;所述的能力可以是直接在所述虚拟网桥上添加外网网卡,也可以通过类似openflow流规则控制数据包流向外网;
所述的增加连通外网的路由是指虚拟机南北向通信过程中出去的路由规则。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述的veth设备是利用iproute工具成对创建出来的虚拟设备;
所述的创建veth设备连通netns1和netns2是指分别将成对生成的虚拟设备一个加入netns1命名空间,另一个加入netns2命名空间。
7.根据权利要求5所述的方法,其特征在于,所述的veth设备是利用iproute工具成对创建出来的虚拟设备;
所述的创建veth设备连通netns1和netns2是指分别将成对生成的虚拟设备一个加入netns1命名空间,另一个加入netns2命名空间。
8.根据权利要求1至4任一项所述的方法,其特征在于,所述的在netns1和netns2中添加路由策略进一步包括:
在两个命名空间中分别为veth设备的两端设置网络IP;
在netns1中添加从外网进来继而转发到netns2命名空间的路由规则;
在netns2中增加linux高级路由策略,保证虚拟机数据包进来继而转发到netns1命名空间;
所述的linux高级路由策略是指根据路由策略数据库来选择执行路由规则,这些规则可以有多种不同的状态,完全由管理员控制。
9.根据权利要求5所述的方法,其特征在于,所述的在netns1和netns2中添加路由策略进一步包括:
在两个命名空间中分别为veth设备的两端设置网络IP;
在netns1中添加从外网进来继而转发到netns2命名空间的路由规则;
在netns2中增加linux高级路由策略,保证虚拟机数据包进来继而转发到netns1命名空间;
所述的linux高级路由策略是指根据路由策略数据库来选择执行路由规则,这些规则可以有多种不同的状态,完全由管理员控制。
10.根据权利要求6所述的方法,其特征在于,所述的在netns1和netns2中添加路由策略进一步包括:
在两个命名空间中分别为veth设备的两端设置网络IP;
在netns1中添加从外网进来继而转发到netns2命名空间的路由规则;
在netns2中增加linux高级路由策略,保证虚拟机数据包进来继而转发到netns1命名空间;
所述的linux高级路由策略是指根据路由策略数据库来选择执行路由规则,这些规则可以有多种不同的状态,完全由管理员控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610364228.8A CN106059803A (zh) | 2016-05-26 | 2016-05-26 | 一种在计算节点上实现虚拟机南北向通信的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610364228.8A CN106059803A (zh) | 2016-05-26 | 2016-05-26 | 一种在计算节点上实现虚拟机南北向通信的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106059803A true CN106059803A (zh) | 2016-10-26 |
Family
ID=57175548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610364228.8A Withdrawn CN106059803A (zh) | 2016-05-26 | 2016-05-26 | 一种在计算节点上实现虚拟机南北向通信的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106059803A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990123A (zh) * | 2019-12-05 | 2020-04-10 | 北京京东尚科信息技术有限公司 | 构建虚拟机网络系统的方法及装置 |
CN111277500A (zh) * | 2020-01-15 | 2020-06-12 | 山东汇贸电子口岸有限公司 | 一种数据中心evpn组网多出口设计方法及系统 |
CN112187500A (zh) * | 2019-07-04 | 2021-01-05 | 中兴通讯股份有限公司 | 一种网元管理装置及报文的处理方法 |
CN112291252A (zh) * | 2020-11-02 | 2021-01-29 | 浪潮云信息技术股份公司 | 一种南北向流量对称性引流的实现架构及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394130A (zh) * | 2014-11-12 | 2015-03-04 | 国云科技股份有限公司 | 一种多租户虚拟网络隔离方法 |
CN104468746A (zh) * | 2014-11-23 | 2015-03-25 | 国云科技股份有限公司 | 一种适用于云平台的分布式虚拟网络实现方法 |
CN104506403A (zh) * | 2014-12-05 | 2015-04-08 | 国云科技股份有限公司 | 一种支持多级隔离的虚拟网络管理方法 |
-
2016
- 2016-05-26 CN CN201610364228.8A patent/CN106059803A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394130A (zh) * | 2014-11-12 | 2015-03-04 | 国云科技股份有限公司 | 一种多租户虚拟网络隔离方法 |
CN104468746A (zh) * | 2014-11-23 | 2015-03-25 | 国云科技股份有限公司 | 一种适用于云平台的分布式虚拟网络实现方法 |
CN104506403A (zh) * | 2014-12-05 | 2015-04-08 | 国云科技股份有限公司 | 一种支持多级隔离的虚拟网络管理方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187500A (zh) * | 2019-07-04 | 2021-01-05 | 中兴通讯股份有限公司 | 一种网元管理装置及报文的处理方法 |
WO2021000713A1 (zh) * | 2019-07-04 | 2021-01-07 | 中兴通讯股份有限公司 | 一种网元管理装置及报文的处理方法 |
CN110990123A (zh) * | 2019-12-05 | 2020-04-10 | 北京京东尚科信息技术有限公司 | 构建虚拟机网络系统的方法及装置 |
CN110990123B (zh) * | 2019-12-05 | 2023-11-03 | 北京京东尚科信息技术有限公司 | 构建虚拟机网络系统的方法及装置 |
CN111277500A (zh) * | 2020-01-15 | 2020-06-12 | 山东汇贸电子口岸有限公司 | 一种数据中心evpn组网多出口设计方法及系统 |
CN112291252A (zh) * | 2020-11-02 | 2021-01-29 | 浪潮云信息技术股份公司 | 一种南北向流量对称性引流的实现架构及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7483074B2 (ja) | 仮想スイッチを実現し且つ管理する方法及び装置 | |
JP6779341B2 (ja) | ボーダゲートウェイプロトコルを用いた最大セグメント識別子深度の外部アプリケーションへの呈示 | |
US10986024B1 (en) | Dynamic prefix list for route filtering | |
US11444864B2 (en) | Optimized datapath troubleshooting with trace policy engine | |
US10454821B2 (en) | Creating and maintaining segment routed traffic engineering policies via border gateway protocol | |
EP3254417B1 (en) | Method and system for supporting port ranging in a software-defined networking (sdn) system | |
US10257082B2 (en) | Multi-level learning for classifying traffic flows | |
EP3420708B1 (en) | Dynamic re-route in a redundant system of a packet network | |
CN107770066B (zh) | 一种跨主机、跨VLAN、跨集群的Docker容器导流方法 | |
US9473404B2 (en) | Symmetric flow processing in a software-defined networking (SDN) system | |
US11115328B2 (en) | Efficient troubleshooting in openflow switches | |
US20190089620A1 (en) | Selective Route Exporting Using Source Type | |
CN113765829A (zh) | 软件定义联网分布式系统中的活性检测和路由收敛 | |
CN113765782A (zh) | 使用前缀独立收敛的针对底层故障的局部修复 | |
US11509581B2 (en) | Flow-based local egress in a multisite datacenter | |
CN102611618B (zh) | 路由保护切换方法及装置 | |
WO2018100437A1 (en) | Policy based configuration in programmable access networks | |
EP3456020B1 (en) | Mechanism for inline packet response generation in software defined networks | |
TW201618503A (zh) | OpenFlow交換器、封包交換方法、SDN控制器及資料流控制方法 | |
WO2016108140A1 (en) | Ccn fragmentation gateway | |
CN106059803A (zh) | 一种在计算节点上实现虚拟机南北向通信的方法 | |
US20160352604A1 (en) | Real time caching effficient check in ccn | |
KR20180104377A (ko) | 패킷 광 전송 네트워크를 통한 클라우드 간 가상 네트워킹 제공 방법 | |
Ranjbar et al. | Domain isolation in a multi-tenant software-defined network | |
Nakamura et al. | Flowfall: A service chaining architecture with commodity technologies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20161026 |