网易首页 > 网易号 > 正文 申请入驻

OpenStack网络原理和实现

0
分享至

本文详细介绍了Openstack的网络原理和实现,主要内容包括:Neutron的网络架构及网络模型还有neutron虚拟化的实现和对二三层网桥的理解。

一、Neutron概述

Neutron是一个用Python写的分布式软件项目,用来实现OpenStack中的虚拟网络服务,实现软件定义网络。Neutron北向有自己的REST API,中间有自己的业务逻辑层,有自己的DB和进程之间通讯的消息机制。同时Neutron常见的进程包括Neutron-server和Neutron-agent,分布式部署在不同的操作系统。

OpenStack发展至今,已经经历了20个版本。虽然版本一直在更替,发展的项目也越来越多,但是Neutron作为OpenStack三大核心之一,它的地位是不会动摇的。只不过当初的Neutron也只是Nova项目的一个模块而已,到F版本正式从中剥离,成为一个正式的项目。

从Nova-Network起步,经过Quantum,多年的积累Neutron在网络各个方面都取得了长足的发展。其主要的功能为:

(1)支持多租户隔离

(2)支持多种网络类型同时使用

(3)支持隧道技术(VXLAN、GRE)

(4)支持路由转发、SNAT、DNAT技术

(5)支持Floating IP和安全组

多平面租户私有网络

图中同时有VXLAN和VLAN两种网络,两种网络之间互相隔离。租户A和B各自独占一个网络,并且通过自己的路由器连接到了外部网络。路由器为租户的每个虚拟机提供了Float IP,完成vm和外网之间的互相访问。

二、Neutron架构及网络模型

1、Neutron架构

Neutron-sever可以理解为类似于nova-api那样的一个专门用来接收API调用的组件,负责将不同的api发送到不同Neutron plugin。

Neutron-plugin可以理解为不同网络功能实现的入口,接收server发来的API,向database完成一些注册信息。然后将具体要执行的业务操作和参数通知给对应的agent来执行。

Agent就是plugin在设备上的代理,接受相应的plugin通知的业务操作和参数,并转换为具体的命令行操作。

总得来说,server负责交互接收请求,plugin操作数据库,agent负责具体的网络创建。

2、Neutron架构之Neutron-Server

(1)Neutron-server的本质是一个Python Web Server Gateway Interface(WSGI),是一个Web框架。

(2)Neutron-server接收两种请求:

REST API请求:接收REST API请求,并将REST API分发到对应的Plugin(L3RouterPlugin)。

RPC请求:接收Plugin agent请求,分发到对应的Plugin(NeutronL3agent)。

3、Neutron架构之Neutron-Plugin

Neutron-plugin分为Core-plugin和Service-plugin。

Core-plugin:ML2负责管理二层网络,ML2主要包括Network、Subnet、Port三类核心资源,对三类资源进行操作的REST API是原生支持的。

Service-plugin:实现L3-L7网络,包括Router、Firewall、VPN。

4、Neutron架构之Neutron-Agent

(1)Neutron-agent配置的业务对象是部署在每一个网络节点或者计算节点的网元。

(2)网元区分为PNF和VNF:

PNF:物理网络功能,指传统的路由器、交换机等硬件设备

VNF:虚拟网络功能,通过软件实现的网络功能(二层交换、三层路由等)

(3)Neutron-agent三层架构如下图:

Neutron-agent架构分为三层,北向为Neutron-server提供RPC接口,供Neutron server调用,南向通过CLI协议栈对Neutron VNF进行配置。在中间会进行两种模型的转换,从RPC模型转换为CLI模型。

5、Neutron架构之通信原理

(1)Neutron是OpenStack的核心组件,官网给出Neutron的定义是NaaS。

(2)Naas有两层含义:

对外接口:Neutron为Network等网络资源提供了RESTful API、CLI、GUI等模型。

内部实现:利用Linux原生或者开源的虚拟网络功能,加上硬件网络,构建网络。

Neutron接收到API请求后,交由模块WSGI进行初步的处理,然后这个模块通过Python API调用neutron的Plugin。Plugin做了相应的处理后,通过RPC调用Neutron的Agent组件,agent再通过某种协议对虚拟网络功能进行配置。其中承载RPC通信的是AMQP server,在部署中常用的开源软件就是RabbitMQ

6、Neutron架构之控制节点网络模型

控制节点没有实现具体的网络功能,它对各种虚拟设备做管理配合的工作。

(1)Neutron:Neutron-server核心组件。

(2)API/CLI:Neutron进程通过API/CLI接口接收请求。

(3)OVS Agent:Neutron通过RPC协议与agent通信。

控制节点部署着各种服务和Neutron-server,Neutron-server通过api/cli接口接收请求信息,通过RPC和Agent进行交互。Agent再调用ovs/linuxbridge等网络设备创建网络。

7、Neutron架构之计算节点网络模型

(1)qbr:Linux Bridge网桥

(2)br-int:OVS网桥

(3)br-tun:OVS隧道网桥

(4)VXLAN封装:网络类型的转变

8、Neutron架构之网络节点网络模型

网络节点部署了Router、DHCP Server服务,网桥连接物理网卡。

(1)Router:路由转发

(2)DHCP: 提供DNS、DHCP等服务。

(3)br-ex: 连接物理网口,连接外网

三、Neutron虚拟化实现功能及设备介绍

1、Neutron虚拟化实现功能

Neutron提供的网络虚拟化能力包括:

(1)二层到七层网络的虚拟化:L2(virtual Switch)、L3(virtual Router 和 LB)、L47(virtual Firewall )等

(2)网络连通性:二层网络和三层网络

(3)租户隔离性

(4)网络安全性

(5)网络拓展性

(6)REST API

(7)更高级的服务,包括 LBaaS,FWaaS,VPNaaS 等

2、Neutron虚拟化功能之二层网络

(1)按照用户权限创建网络:

Provider network:管理员创建,映射租户网络到物理网络

Tenant network:租户创建的普通网络

External network:物理网络

(2)按照网络类型:

Flat network:所有租户网络在一个网络中

Local network:只允许在服务器内通信,不通外网

VLAN network:基于物理VLAN实现的虚拟网络

VXLAN network:基于VXLAN实现的虚拟网络

3、Neutron虚拟化实现功能之租户隔离

Neutron是一个支持多租户的系统,所以租户隔离是Neutron必须要支持的特性。

(1)租户隔离三种含义:管理面隔离、数据面的隔离、故障面的隔离。

(2)不同层次租户网络的隔离性

租户与租户之间三层隔离

同一租户不同网络之间二层隔离

同一租户同一网络不同子网二层隔离

(3)计算节点的 br-int 上,Neutron 为每个虚机连接 OVS 的 access port 分配了内部的 VLAN Tag。这种 Tag 限制了网络流量只能在 Tenant Network 之内。

(4)计算节点的 br-tun 上,Neutron 将内部的 VLAN Tag 转化为 VXLAN Tunnel ID,然后转发到网络节点。

(5)网络节点的 br-tun 上,Neutron 将 VXLAN Tunnel ID 转发了一一对应的 内部 VLAN Tag,使得 网络流被不同的服务处理。

(6)网络节点的 br-int 上连接的 DHCP 和 L3 agent 使用 Linux Network Namespace 进行隔离。

4、Neutron虚拟化实现功能之租户网络安全

除了租户隔离以外 Neutron还提供数据网络与外部网络的隔离性。

(1)默认情况下,所有虚拟机通过外网的流量全部走网络节点的L3 agent。在这里,内部的固定IP被转化为外部的浮动IP地址

(1)Neutron还利用Linux iptables特性,实现其Security Group特性,从而保证访问虚机的安全性

(3)Neutron利用网络控制节点上的Network Namespace中的iptables,实现了进出租户网络的网络防火墙,从而保证了进出租户网络的安全性。

5、Neutron虚拟化设备

(1)端口:Port代表虚拟网络交换机上的一个虚拟交换机端口

虚拟机的网卡连接到Port上就会拥有MAC地址和IP地址

(2)虚拟交换机:Neutron默认采用开源的Openvswitch,

同时还支持Linux Bridge

(3)虚拟路由器VR:

  • 路由功能
  • 一个VR只属于一个租户,租户可以有多个VR
  • 一个VR可以有若干个子网
  • VR之间采用Namespace隔离

四、Neutron网桥及二三层网络理解

1、Neutron-Local-Bridge

仅用于测试;网桥没有与物理网卡相连VM不通外网。

图中创建了两个local network,分别有其对应的qbr网桥。Vm123的虚拟网卡通过tap连接到qbr网桥上。其中2和3属于同一个network可以通信,1属于另一个网络不能和23进行通信。并且qbr网桥不连物理网卡,所以说local网络虚拟机只能同网络通信,不能连通外网。

2、Neutron-Flat-Bridge

  • Linux Bridge直接与物联网卡相连
  • 每个Flat独占一个物理网卡
  • 配置文件添加响应mapping

Flat网络是在local网络的基础上实现不同宿主机之间的二层互联,但是每个flat network都会占用一个宿主机的物理接口。其中qbr1对应的flatnetwork 连接 eth1 qbr2,两个网络的虚机在物理二层可以互联。其它跟local network类似。

3、Neutron-VLAN-Bridge

在基于linux bridge的vlan网络中,eht1物理网卡上创建了两个vlan接口,1.1连接到qbr1网桥,1.2连接到了qbr2网桥。在这种情况下vm通过eth1.1或者eth1.2发送到eth1的包会被打上各自的vlan id。此时vm2和vm3属于同一个network所以是互通的,vm与vm2和vm3不通。

4、Neutron-VXLAN-Bridge

这个是以Linux bridge作agent的Vxlan网络:

Vxlan网络比Vxlan网络多了个VXLAN隧道,在Openstack中创建好内部网络和实例后,agent就会在计算节点和网络节点创建一对vxlan vtep.组成隧道的两个端点。

Vxlan连接在eth0网口。在网络节点多了两个组件dhcp 和router,他们分别通过一对veth与qbr网桥连接在一起,多个dhcp和路由之间使用namesapce隔离,当vm产生ping包时,发往linux 网桥qbr1,通过网桥在vxlan12上封装数据包,数据通过eth0网卡出计算节点到网络节点的eth0,在vxlan12解包。到达路由器之后经过nat地址转换,从eth1出去访问外网,由租户网络到运营商网络再到外部网络。

5、Neutron-VLAN-OVS

与Linux bridge不同,openvswitch 不是通过eth1.1 eth1.2这样的vlan接口来隔离不同的vlan,而是通过openvswitch的流表规则来指定如何对进出br-int的数据进行转发,实现不同vlan的隔离。

图中计算节点的所有虚拟机都连接在int网桥上,虚拟机分为两个网络。Int网桥会对到来的数据包根据network的不同打上vlan id号,然后转发到eth网桥,eth网桥直连物理网络。这时候流量就从计算节点到了网络节点。

网络节点的ehx int网桥的功能相似,多了一个ex网桥,这个网桥是管理提前创建好的,和物理网卡相连,ex网桥和int网桥之间通过一对patch-port相连,虚拟机的流量到达int网桥后经过路由到ex网桥。

6、Neutron-VXLAN-OVS

Vxlan的模型和vlan的模型十分相似,从表面上来看,他俩相比只有一个不同,vlan对应的是ethx网桥,而vxlan对应的是tun网桥。

在这里ethx和tun都是ovs网桥,所以说两者的差别不是实现组件的差别而是组件所执行功能的差别,ethx执行的是普通二层交换机的功能,tun执行的是vxlan中的vtep的功能,图中俩tun对应的接口ip就是vxlan的隧道终结点ip。所以说虚机的数据包在到达tun网桥之前是打的是vlan tag,而到达tun之后会发生网络类型的转换,从vlan封装为vxlan然后到达网络节点。而之前的vlan类型的网络,虚机数据包的类型一直都是vlan。

7、物理的二层与虚拟的二层(VLAN模式)

(1)物理的二层指的是:物理网络是二层网络,基于以太网协议的广播方式进行通信。

(2)虚拟的二层指的是:Neutron实现的虚拟网络也是二层网络(openstack的vm机所用的网络必须是大二层),也是基于以太网协议的广播方式进行通信,但毫无疑问的是该虚拟网络是依赖于物理的二层网络。

(3)物理二层+虚拟二层的典型代表:VLAN网络模式。

8、物理的三层与虚拟的二层(GRE模式与VXLAN模式)

(1)物理三层指的是:物理网络是三层网络,基于IP路由的方式进行通信。

(2)虚拟的二层指的是:Neutron实现的虚拟网络仍然是二层网络(openstack的vm机所用的网络必须是大二层),仍然是基于以太网的广播方式进行通信,但毫无疑问的是该虚拟机网络是依赖于物理的三层网络,这点有点类似于VPN的概念,根本原理就是将私网的包封装起来,最终打上隧道的ip地址传输。

(3)物理三层+虚拟二层的典型代表:GRE模式与VXLAN模式。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
马斯克罕见牵手39岁印度裔伴侣,赴海湖庄园婚宴,女高管已生四娃

马斯克罕见牵手39岁印度裔伴侣,赴海湖庄园婚宴,女高管已生四娃

译言
2026-02-02 05:34:02
这回马斯克,“硅谷钢铁侠”的脸,算是被自己亲手打肿了!

这回马斯克,“硅谷钢铁侠”的脸,算是被自己亲手打肿了!

云中浮生
2026-02-02 15:09:57
牢A命中,被一窝端16人都是女留学生

牢A命中,被一窝端16人都是女留学生

雪中风车
2026-01-28 13:23:54
孩子私卖长辈金镯被金店1.7万元回收,家长半年后发现要求退还遭拒绝,市监局和警方介入调查

孩子私卖长辈金镯被金店1.7万元回收,家长半年后发现要求退还遭拒绝,市监局和警方介入调查

极目新闻
2026-02-02 13:58:31
注意!A股超4600股下跌背后:聪明资金已在这三条战线完成集结

注意!A股超4600股下跌背后:聪明资金已在这三条战线完成集结

风风顺
2026-02-03 04:00:03
香港前二号人物离世!一餐21万,豪掷千万给上海女友买楼,却因贪腐入狱,晚年太凄凉...

香港前二号人物离世!一餐21万,豪掷千万给上海女友买楼,却因贪腐入狱,晚年太凄凉...

港港地
2026-02-02 13:22:17
硬刚“达芬奇”,中国85后夫妻,将国产手术机器人推上240亿市值

硬刚“达芬奇”,中国85后夫妻,将国产手术机器人推上240亿市值

最华人
2026-02-02 13:10:39
36年前陈宝国主演的盗墓恐怖片!尺度大到少儿不宜

36年前陈宝国主演的盗墓恐怖片!尺度大到少儿不宜

释凡电影
2025-08-14 09:33:19
一觉醒来微信群炸了!腾讯开撒10亿现金红包,已有16人翻出万元奖励“小马卡”!网友:群聊已被刷屏

一觉醒来微信群炸了!腾讯开撒10亿现金红包,已有16人翻出万元奖励“小马卡”!网友:群聊已被刷屏

每日经济新闻
2026-02-01 16:10:05
领导是如何看待不卑不亢下属的?网友:太监遇到完整男人的感觉

领导是如何看待不卑不亢下属的?网友:太监遇到完整男人的感觉

带你感受人间冷暖
2026-02-01 06:20:47
“废除ICE”!格莱美颁奖典礼上,比伯、“碧梨”、Bad Bunny等多名歌手公开反对美政府移民执法行动

“废除ICE”!格莱美颁奖典礼上,比伯、“碧梨”、Bad Bunny等多名歌手公开反对美政府移民执法行动

环球网资讯
2026-02-02 14:18:44
斯诺克赛程:决出8席16强,4场冠军PK,丁俊晖领衔,中国6人上阵

斯诺克赛程:决出8席16强,4场冠军PK,丁俊晖领衔,中国6人上阵

刘姚尧的文字城堡
2026-02-03 07:36:56
深夜,美股猛拉!沪银,跌停!特朗普,启动“金库计划”!

深夜,美股猛拉!沪银,跌停!特朗普,启动“金库计划”!

证券时报e公司
2026-02-02 23:38:07
小米“YU9”等实车首次官曝!藏玄机

小米“YU9”等实车首次官曝!藏玄机

IT之家
2026-02-02 20:29:25
上海炒股大赛冠军的箴言:如果手里只有10万,不妨死磕"七大口诀"

上海炒股大赛冠军的箴言:如果手里只有10万,不妨死磕"七大口诀"

一方聊市
2026-01-19 13:13:48
杰我睿兑付最新进展,有消费者称“绝不接受”!又一黄金平台兑付困难…

杰我睿兑付最新进展,有消费者称“绝不接受”!又一黄金平台兑付困难…

北京商报
2026-02-02 23:47:01
春运大巴逆袭封神,干翻高铁的,是数亿打工人回家刚需

春运大巴逆袭封神,干翻高铁的,是数亿打工人回家刚需

老特有话说
2026-02-02 22:26:24
TOP14位身高170以上的女神,有颜有灯有演技

TOP14位身高170以上的女神,有颜有灯有演技

素然追光
2026-01-02 02:45:02
奔驰中国正式宣布大量车型降价!包括大量热门车型

奔驰中国正式宣布大量车型降价!包括大量热门车型

XCiOS俱乐部
2026-02-02 20:22:58
张小斐瘦得胸都没有了,居然还有小肚子,可见减肥真的太难了!

张小斐瘦得胸都没有了,居然还有小肚子,可见减肥真的太难了!

喜欢历史的阿繁
2026-02-02 12:03:34
2026-02-03 09:04:49
星融元Asterfusion
星融元Asterfusion
开放网络的先行者与推动者
51文章数 2关注度
往期回顾 全部

科技要闻

马斯克官宣,SpaceX并购xAI,打造天基算力

头条要闻

牛弹琴:美印突然和好 一个与俄方有关的细节很不寻常

头条要闻

牛弹琴:美印突然和好 一个与俄方有关的细节很不寻常

体育要闻

澳网男单决赛,属于阿尔卡拉斯的加冕仪式

娱乐要闻

57岁音乐人袁惟仁去世,家属发文悼念

财经要闻

“精准查人”黑产链条遭查

汽车要闻

雷克萨斯LC500将于今年底停产 "最美雷克萨斯"谢幕

态度原创

本地
教育
家居
游戏
房产

本地新闻

云游中国|拨开云雾,巫山每帧都是航拍大片

教育要闻

《陪班班摆阵》

家居要闻

现代几何彩拼 智焕童梦居

《欧陆风云5》2026年计划发布 首个大型DLC开发中

房产要闻

狂卖1548亿后,海南又上演疯狂抢地!

无障碍浏览 进入关怀版