Openstack Neutron原理1.Neutron架构Neutron是Openstack的网络组件,整体架构如下:' `) D' _& {0 Q$ g3 c' o* v
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020172243861.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
9 O+ `1 f# J( z简单来说就是:
1、neutron通过plugin和agent提供的网络服务,提供对网络、子网、端口、防火墙等的管理。
2、plugin位于neutron server,包括core plugin和service plugin。
3、agent位于各个节点,负责实现网络服务。
4、core plugin提供L2功能,ML2是推荐的plugin。
5、使用最广泛的L2 agent是linux bridage和openvswitch。
6、service plugin和agent提供扩展功能,包括dhcp, routing, load balance, firewall等。
2.外网访问原理借助一张图说明如何使用Openstack构建虚拟网络且支持物理外网互通。
e$ ?/ Z5 X; }% j3 Z B" L2 y9 `https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020172630746.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
为这个Tenant创建一个private network,不同的private network是需要通过VLAN tagging进行隔离的,互相之间广播(broadcast)不能到达,这里我们我们用的是GRE模式,也需要一个类似VLANID的东西,称为Segment ID
为private network创建一个subnet,subnet才是真正配置IP网段的地方,对于私网,我们常常用192.168.0.0/24这个网段
为这个Tenant创建一个Router,才能够访问外网
将private network连接到Router上
创建一个External Network
创建一个External Network的Subnet,这个外网逻辑上代表了我们数据中心的物理网络,通过这个物理网络,我们可以访问外网。因而PUBLIC_GATEWAY应该设为数据中心里面的Gateway,PUBLCI_RANGE也应该和数据中心的物理网络的CIDR一致,否则连不通。之所以设置PUBLIC_START和PUBLIC_END,是因为在数据中心中,不可能所有的IP地址都给OpenStack使用,另外的可能搭建了VMware Vcenter,可能有物理机,所以仅仅分配一个区间给OpenStack来用。
将Router连接到External Network
0 q7 L# }1 r2 [5 s7 o( U
经过这个流程,从虚拟网络到物理网络即逻辑上联通了。
基于Dashboard创建网络根据上面的原理我们基于控制台进行操作。
1.创建外网(1) 使用管理员账号进行登录,左侧菜单进入管理员->网络->网络,点击创建网络
; w; v! U4 E- M! j+ u* s4 Bhttps://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020173144985.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
! D& T& p: t0 ~, J/ q1 _7 v- F6 |, }(2)编辑外网信息
选择Flat类型作为供应商网络类型
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020174410122.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center6 q" Y3 {* s% D
其中物理网络的值必须与/etc/neutron/plugins/ml2/ml2_conf.ini里面定义一致
[ml2_type_flat]flat_networks=physnet1- 1
- 2
$ j" \5 C3 Z4 O- g+ G' D
(2)编辑外网子网信息
根据物理网络配置编辑外网的子网信息" }+ _) Z& J! {2 _
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020174755554.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
(3) 编辑子网详情
不需要激活DHCP,分配池的地址选择物理网络可分配的范围
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020174905572.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
2.创建内网(1)使用管理员账号进行登录,通过管理员->网络->网络,点击创建网络
(2)编辑内网信息
选择VXLAN作为供应商网络类型7 t0 S+ q, d3 G- x3 | j0 m
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020175251684.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center! q* T. w" P4 Z8 k4 U1 P3 j/ ~
(3)编辑内网子网信息
内网信息自定义即可7 C9 ~% m* e6 G' j# B
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020175351846.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center1 h3 M$ I) S0 Y7 d$ z
(4) 编辑子网详情 P# @' }& c7 o% G0 p
内网信息自定义即可
' l! k4 j# a% a; D$ A3 f1 l: Rhttps://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020175454235.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
创建完成后,可以看到两个网络信息
; ^( f: P% a5 ]: j ihttps://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020175555100.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
3.创建路由与接口(1)使用管理员账号进行登录,左侧菜单进入管理员->网络->路由,点击新建路由
外部网络选择我们上面新增的外网
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020175644213.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center7 j9 E8 p+ O! G( @: `7 T- u' u7 F
新增成功后,可以看到相关记录:
5 x; U N5 {* c6 _# ?" A7 e( ]! C4 shttps://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020175915580.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center1 i# J& [- z7 G+ U* y' U
(2)点击名称所在列,查看具体信息如下
可以看到网关分配的IP为192.168.1.1.199
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020180557339.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center3 \8 w% _+ [6 i5 `9 \# ` X
选择接口的TAB,可以看到路由目前的接口信息,状态为运行中就是正常的。: l2 \/ F4 A) E4 ^ f
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020180640177.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center% g. N" G( B* m* \2 q9 N
(3) 在接口列表点击增加接口
选择上面新建的子网4 {. Y' |# k, o+ s( x
https://codeantenna.com/image/https://img-blog.csdnimg.cn/2020102018223069.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center! l' G4 z( W6 D2 N: e$ @2 p0 `9 h4 a
新增成功后,在路由的接口列表可以看到外部网关以及内部接口的运行状态
5 s7 f0 C# v% c5 X7 Y- G) r- Hhttps://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020182416766.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
4.分配浮动IP为了让虚拟机能够访问物理网络,需要从外网分配一个IP
使用管理员账号进行登录,左侧菜单进入管理员->网络->浮动IP,点击分配IP给项目,资源池选择上面的外网,浮动IP可以自定义,也可以不填写,按照外网的子网分配地址池分配。
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020182537482.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
新增成功后,左侧菜单进入项目->网络->网络拓扑可以看到目前外网与内网的连接情况" j' ]) O0 Y+ Y, ]
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020182857648.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
5.创建安全组上面我们分配了一个浮动IP,需要定义入口安全组,实现物理网络访问虚拟网络,以ssh的22端口为例,配置一个安全组.
左侧菜单进去项目->网络->安全,点击右侧按钮``创建安全组
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020183133850.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
新增安全组完成后,在该安全组所在行,点击管理规则 c% W- C; X0 a
https://codeantenna.com/image/https://img-blog.csdnimg.cn/2020102018343718.png#pic_center
9 Q( B. {) `) r6 y: ?编辑规则如下,点击添加即可。' k. N' K& c4 l$ p' y- Q5 k
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020183247900.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
创建虚拟机实例1.上传镜像(1) 登录后,左侧菜单进去计算->镜像,点击右侧按钮创建镜像
* x/ w, X5 A7 ], Q; |- Ghttps://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020183522969.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center- D9 A3 W9 ?' x1 ^( m7 q( S& Z
选择本地镜像文件,编辑基本信息如下,点击创建即可。! q: ^% @7 [: R3 Y2 A- ?
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020183644878.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
2.创建实例(1) 登录后,左侧菜单进去计算->实例,点击右侧按钮创建实例- ^7 H# q! K: |$ r4 B1 ~5 W3 c- N+ U
https://codeantenna.com/image/https://img-blog.csdnimg.cn/2020102018374152.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center9 B Z9 z8 C; h( {/ `; r
(2)选择镜像0 k2 Y9 Q! J2 s( z# O4 I! t
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020183820639.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
3 k4 o% g4 h" }(3)选择实例类型
m4 b" X/ t* k5 J6 ?9 f. l% }https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020183844157.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
" ^$ V& k$ p- @2 |; M- v(4)选择网络
选择内网
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020183906213.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center) k5 X" m1 {& B9 B; R( b
(5)选择安全组
选择创建的22端口规则的安全组
; u- I0 U0 t, {, }) ]" ?3 khttps://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020183938424.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center6 I/ S, T8 S* E6 c
(6) 点击创建实例等待创建
3.绑定浮动IP创建成功后,在实例所在行的动作列,选择绑定浮动IP,选择上面创建的浮动IP,成功后实例的IP地址有一个内网地址跟外网地址。
* I3 J# p# ~% t; T: C% thttps://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020184122520.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center
4.验证网络互通(1) 在物理网络通过ssh登录虚拟机5 v: o) t- x8 D$ L
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020184517486.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center4 }5 d$ H9 r. f+ ]
(2)在虚拟网络ping外部物理网络
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020184600875.png#pic_center
查看路由跳转https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020184937781.png#pic_center
* T- A) c% p" s* @8 X8 `7 G6 p网络拓扑如下:! B* S/ d/ c3 ]
https://codeantenna.com/image/https://img-blog.csdnimg.cn/20201020185034640.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NTQwNDQz,size_16,color_FFFFFF,t_70#pic_center