neutron(为什么说Neutron不是SDN)
本文目录
为什么说Neutron不是SDN
你好,朋友。 Neutron本身不是SDN架构,但是不妨碍其结合其他技术成为SDN的架构,包括现在新的Plguin中Ryu、OpenContrail等,结合对应的SDN控制器,即可将Neutron的架构变成SDN架构。但是这个架构所提供的北向API能被需要使用网络资源的APP调用,还需要大量的工作要做,因为需要网络资源的通常是VM中部署的APP,比如Web服务需要带宽、LB等网络资源,但是让VM里的WEB服务通过调用SDN控制器的北向接口直接分配Openstack部署环境里的Neutron网络资源,这个架构还有很多方面的考虑,比如网络安全和审核、网络资源限制等等。根据这个方面,网络云计算架构中,大多还没有用到SDN这个层面,说是SDN,多是NV而已。
openstack neutron网络介绍
由于网络部分出现了许多得新名词。将从整体到分部细致讲解。
来源于网络得一张图
如图所示,连成了一条线。重要得如何实现互联,接下来以表象论证这张图。
最好将图放在一边,边看边对照图。 这里先介绍从虚拟机访问外网。端口A开始:
表现出来就是虚拟机有张网卡A。
查询此虚拟机得子网ip为 10.1.1.5,以及所在节点,记住这个节点。
通过子网ip查询到端口id为 b65c1085-a971-4333-82dc-57012e9be490 记住这个id
图中A与B互联,意味着A与B一定具有某种映射关系。
若没有此命令则安装: yum install -y bridge-utils 可以看到这个id对应的tap设备!
veth pair是什么?后面再介绍。
由图可知,端口B(qvbXXX)和端口C(tapXXX)在同一个linux网桥上。它们俩互通了。
端口D在ovs网桥上。C和D的互联是veth pair的特性。
由图可以看出,qvoXXX在ovs网桥上,qvb在linux网桥上。它们之间的互联是veth pair的特性,它们就像一根导线的两端。
ovs查询命令:
这里可以看到3种网桥: br-int、br-tun、br-ex。这里有个印象就好。 仔细的查看一下,可以看到qvoXXX在br-int网桥上。 至此D端口也找到了
E、F端口通过ovs网桥自身连接。 ovs-vsctl show 可以看到两个patch类型的端口,用于连接br-int和br-tun。类似于veth pair。
ovs-vsctl show 可以在br-tun网桥上看到vxlan类型的端口,并注明本地ip和remote ip,通过此类型端口,将不同的物理环境互联,对于上层好似就一个网桥。再者br-tun网桥还与br-int互联,这意味,对于再上一层的应用,似乎只有一个br-int。
和【E】【F】相同。
此时携带源ip为子网的流量到达M端口,而L端口得网段为外网网段,因此M网段的流量此时无法直接进入L端口。借助router(网络命名空间),使用iptables,将M端口流量的源ip转换为外网网段。此时流量可进入L端口从而访问外网。(M与N之间连通性非网络对实现,而是ovs tap设备实现。网络对的一个明显特征为 ip a 可以看到@符号连接两个端口)
找到虚拟机所在租户的路由id 本机为 894699dc-bc60-4b5e-b471-e95afa20f1d7
根据路由id找到网络命名空间 在所有节点上执行如下命令,找到对应id的qrouter ip netns 本环境为:qrouter-894699dc-bc60-4b5e-b471-e95afa20f1d7
在此网络命名空间的节点上执行(如下命令意义为进入网络命名空间):
此时已进入网络命名空间。
查看ip
可以看到qg和qr开头的网卡名称。qg为弹性ip地址组,qr为子网网关。此时在虚拟机所在节点上查询ovs网桥,可以在br-int看到与此同名的qg和qr端口。 由于是源地址转换,因此先路由再转换源ip(iptables规则)。 查看路由规则: route -n
第一条可以看到外网的网关,通过qg网卡发送,规则正好匹配。 选好路由规则之后,进行更改源ip。
可以看到 neutron-l3-agent-float-snat(配置了弹性ip才会出现)、neutron-l3-agent-snat。因为neutron-l3-agent-float-snat优先级高于neutron-l3-agent-snat,如果没有配置弹性ip,则会将源ip改为该路由的外网ip;如果配置了弹性ip则会将源ip改为弹性ip。
总的来说,流量从qr出去绕了一圈(网络命名空间)改变了源ip又从qg进入,然后通过ovs patch进入br-ex。
br-ex如何与外网连接的呢?进入网络节点查看ovs网桥:
可以看到 br-ex与em3网卡互联。因此流量直接走em3出去。还记得你这张网卡是干嘛的吗?是那张不配置ip的物理网卡!
通过iptables的prerouting可以看出,在进入之前修改了目的弹性ip为子网ip,后经路由转发。另,网络命名空间可以通过arp发现子网ip与mac地址的对应关系。
lbaas,负载均衡 dhcp,dhcp服务。
通过前面说的br-tun 实现。如果没有单独划分网络,则使用管理网网段。若单独配置了tunnel网络,则br-tun里的网络使用tunnel网络。 br-tun 里定义了vxlan,并且指定了 local_ip、remote_ip。根据这两个ip以及路由信息,可以确定 br-tun 通过哪张网卡与外部通信。也是因此可以为tunnel配置专用网卡。
都是通过iptables实现。 防火墙:qrouter网络命名空间中得iptables实现。 安全组:虚拟机所在得宿主机得iptables实现。
可以看到防火墙规则。
可以看到对应端口id得安全组规则。
已经知道了qrouter 利用na
https://docs.openstack.org/neutron/queens/admin/deploy-ovs.html
openstack常用命令-neutron篇
列出当前租户所有的网络 列出所有租户的所有网络(需要管理员权限)创建一个网络(vlan/flat)查看一个网络的详细信息删除一个网络创建一个子网列出所有的agent创建端口 查看端口列表
neutron 启动流程
neutron-server是neutron的核心组件之一,负责直接接受外部请求(包括CLI API,REST API等),然后调度后端相应的plugin进行处理。启动机制:neutron-server的本质是一个Python Web Server Gateway Interface(WSGI),是通过eventlet lib来实现服务的异步并发模型的。实际工作时,通过’serve_wsgi’启动点(Entry point)来构造了一个NeutronApiService实例,通过该实例生成Eventlet,Greenpool来运行WSGI app并回应客户端请求。研究之前,首先需要先了解下Entry point的概念。Entry point:neutron的所有服务(services)的启动点都定义在setup.cfg的"console_scripts"小节中,这些启动点直接指向各个服务的main()函数,这些函数实际位于neutron/cmd/...目录下。如果一个service使用eventlet lib,服务本身不用直接调用eventlet.monkey_patch()函数,只需要把相应main()函数放到neutron/cmd/eventlet/...目录下。这样,Eventlet lib启动时,会自动启动各个服务。这个函数通过serve_wsgi()启动了一个wsgi服务,该服务的启动分析(主要是启动neutron.api.v2.base的Controller)下一节详细介绍。同时创建一个GreenPool,从线程池中生成一个api_thread用来监听api命令,当命令到达时,通过wsgi服务路由到neutron.api.v2.base中的Controller中去处理;另外还生成一个或多个plugin_workers_thread,这个线程和rpc works关联,并监听topics中的消息队列的请求,完成neutron内部组件之间的通信。
更多文章:
gls500奔驰价格及图片(SUV中的奔驰S级!2.0T+V6/配真7座,奔驰GLS不愧是G级的“大哥”)
2024年8月28日 02:00
华硕vivobooks15(华硕v5000j笔记本是什么型号)
2024年4月9日 04:10
小灵通自动关机怎么回事?中兴小灵通上SO mode (Z)是什么意思
2024年5月10日 19:10
荣威rx5第三代参数(“12万豪华平替”9.99万起第三代荣威RX5有多卷)
2024年3月2日 09:40
e52450处理器能玩什么游戏(处理器英特尔至强E5 2450 可以倩女幽魂多开吗)
2024年11月12日 20:30
三星笔记本内存颗粒(三星2GB DDR3 1333(笔记本-酷黑版)是什么颗粒SEC是谁生产的)
2024年9月26日 10:40
拼接处理器和矩阵的区别(多屏拼接处理器是否可以用vga矩阵代替)
2024年4月4日 03:40
intel 酷睿i5 4460(i54460相当于什么水平)
2024年6月27日 07:20
pcie接口速度(PCI-E3.0,SATA3.0,USB3.0哪个快,速度各为多少)
2024年11月2日 02:20
华硕笔记本k555l配置(求这部手提电脑的参数,华硕k555l)
2024年4月27日 01:10
e3 1220v3相当于哪款cpu(1220v1相当于什么cpu)
2024年5月3日 12:20