使用VMware虚拟机创建网络可能会有不可预测到的故障,可以通过dashboard界面,管理员创建admin用户的网络环境

1.第一种: 建立公共提供商网络
在admin管理员用户下创建

source ~/admin-openrc

openstack network create --share --external --provider-physical-network provider --provider-network-type flat provider
#参数解释:
--share 允许所有项目使用虚拟网络
--external 将虚拟网络定义为外部,如果想创建一个内部网络,则可以使用--internal。默认值为internal
--provider-physical-network provider
#指明物理网络的提供者,provider 与下面neutron的配置文件对应,其中provider是标签,可以更改为其他,但是2个地方必须要统一
#配置文件/etc/neutron/plugins/ml2/ml2_conf.ini中的参数
[ml2_type_flat]
flat_networks = provider
[linux_bridge]
physical_interface_mappings = provider:eth0
--provider-network-type flat 指明这里创建的网络是flat类型,即实例连接到此网络时和物理网络是在同一个网段,无vlan等功能。
最后输入的provider 指定网络的名称 

在网络上创建一个子网 192.168.0.0/24 ; 子网对应真实的物理网络

openstack subnet create --network provider \
--allocation-pool start=192.168.0.195,end=192.168.0.210 \
--dns-nameserver 255.5.5.5 --gateway 192.168.0.254 \
--subnet-range 192.168.0.0/24 provider #参数解释:
--network provider 指定父网络
--allocation-pool start=192.168.0.195,end=192.168.0.210 指定子网的起始地址和终止地址
--dns-nameserver 223.5.5.5 指定DNS服务器地址
--gateway 192.168.0.254 指定网关地址
--subnet-range 192.168.0.0/24 指定子网的网段
最后的provider 指定子网的名称 

查看已创建的网络

openstack network list

查看已创建的子网

openstack subnet list

2.第二种: 建立普通租户的私有自助服务网络
自助服务网络,也叫租户网络或项目网络,它是由openstack租户创建的,完全虚拟的,是租户私有的,只在本网络内部连通,不能在租户之间共享

在普通租户下创建网络

source ~/myuser-openrc
openstack network create selfservice

非特权用户通常无法为该命令提供其他参数。该服务使用以下配置文件中的信息自动选择参数

cat /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
[ml2_type_vxlan]
vni_ranges = 1:1000

创建一个子网 172.18.1.0/24

openstack subnet create --network selfservice \
--dns-nameserver 223.5.5.5 --gateway 172.18.1.1 \
--subnet-range 172.18.1.0/24 selfservice #参数解释:
--network selfservice 指定父网络
--allocation-pool start=172.16.10.2,end=172.18.1.200
可以指定子网的起始地址和终止地址,不添加此参数则分配从172.16.1.2到172.18.1.254的IP地址
--dns-nameserver 223.5.5.5 指定DNS服务器地址
--gateway 172.18.1.1 指定网关地址
--subnet-range 172.18.1.0/24 指定子网的网段
最后的selfservice 指定子网的名称 

查看已创建的网络

openstack network list

查看已创建的子网

openstack subnet list 

创建路由器,用myuser普通租户创建

source ~/myuser-openrc
openstack router create router01

查看创建的路由

openstack router list

将创建的租户自助服务网络子网添加为路由器上的接口

openstack router add subnet router01 selfservice

在路由器的公共提供商网络上设置网关

openstack router set router01 --external-gateway provider

查看网络名称空间,一个qrouter名称空间和两个 qdhcp名称空间

[root@controller ~]# ip netns
qrouter-919685b9-24c7-4859-b793-48a2add1fd30 (id: 2)
qdhcp-a7acab4d-3d4b-41f8-8d2c-854fb1ff6d4f (id: 0)
qdhcp-926859eb-1e48-44ed-9634-bcabba5eb8b8 (id: 1) #使用ip netns命令找到这个虚拟路由器之后,用这个虚拟路由器ping真实物理网络中的网关
#ping通即证明OpenStack内部虚拟网络与真实物理网络衔接成功
[root@controller ~]# ip netns exec qrouter-919685b9-24c7-4859-b793-48a2add1fd30 ping 192.168.0.254
PING 192.168.0.254 (192.168.0.254) 56(84) bytes of data.
64 bytes from 192.168.0.254: icmp_seq=1 ttl=128 time=0.570 ms
64 bytes from 192.168.0.254: icmp_seq=2 ttl=128 time=0.276 ms

验证查看创建网络和子网中的IP地址范围,回到admin用户下

source ~/admin-openrc

列出路由器上的端口,以确定提供商网络上的网关IP地址

openstack port list --router router01

...|ip_address='172.18.1.1', |...| ACTIVE
...|ip_address='192.168.0.209', |...| ACTIVE

从控制器节点或物理提供商网络上的任何主机ping此IP地址进行验证

[root@controller ~]# ping 192.168.0.209
PING 192.168.0.209 (192.168.0.209) 56(84) bytes of data.
64 bytes from 192.168.0.209: icmp_seq=1 ttl=64 time=0.065 ms
64 bytes from 192.168.0.209: icmp_seq=2 ttl=64 time=0.066 ms

创建一个m1.nano的类型模板

#Flavor:类型模板,虚机硬件模板被称为类型模板,包括RAM和硬盘大小,CPU核数等。
#创建一台1核cpu 128M硬盘的类型模板与CirrOS映像一起使用进行测试 openstack flavor create --id 0 --vcpus 1 --ram 128 --disk 1 m1.nano

查看创建的类型模板

openstack flavor list

创建租户的秘钥对(可选)

#生产中登陆最好不要用常规的密码验证登陆,启动实例前要 将公共的秘钥添加
#秘钥在文档开始时的配置基础环境中已经生成,所以可以直接添加
source ~/myuser-openrc
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey #查看创建的密钥对
openstack keypair list

配置安全组规则

#默认情况下,default安全组适用于所有实例,并包括拒绝对实例进行远程访问的防火墙规则。对于CirrOS之类的Linux映像,建议至少允许ICMP(ping)和ssh。
#许可ICMP协议(ping命令)
openstack security group rule create --proto icmp default #允许SSH访问(22端口)
openstack security group rule create --proto tcp --dst-port 22 default #查看安全组
openstack security group list #查看安全组规则
openstack security group rule list

3.启动一个实例

#要启动实例,必须至少指定实例类型,映像名称,网络,安全组,密钥和实例名称
#部署的网络环境可以在提供商网络和自助服务网络上启动实例 #查看可用的类型模板
openstack flavor list #查看可用的镜像
openstack image list #查看可用的网络
openstack network list #查看安全组
openstack security group list

3.1 在公共提供商网络上启动实例
创建公共提供商网络下的实例(也可以在dashboard界面上创建,建议掌握命令行的操作)

#net-id:可用的网络的ID,这里使用公共提供商网络的ID 实例名称(provider-vm1)
source ~/myuser-openrc
openstack server create --flavor m1.nano --image cirros \
--nic net-id=926859eb-1e48-44ed-9634-bcabba5eb8b8 --security-group default \
--key-name mykey provider-vm1

查看创建的实例

[root@controller ~]# openstack server list
+--------------------------------------+--------------+--------+------------------------+--------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+--------------+--------+------------------------+--------+---------+
| 9c2c558f-0573-4483-8031-ec3ba9c41f57 | provider-vm1 | ACTIVE | provider=192.168.0.199 | cirros | m1.nano |
+--------------------------------------+--------------+--------+------------------------+--------+---------+

使用虚拟控制台访问实例

openstack console url show provider-vm1

登陆到cirros实例验证对公共提供商网络网关的访问

$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: seq=0 ttl=64 time=5.128 ms

验证对互联网的访问

$ ping baidu.com
PING baidu.com (220.181.38.148): 56 data bytes
64 bytes from 220.181.38.148: seq=0 ttl=128 time=17.904 ms

从控制器节点或提供商网络上的任何其他主机使用SSH访问实例

[root@controller ~]# ssh cirros@192.168.0.199
$ hostname
provider-vm1
$ pwd
/home/cirros

3.2 在租户自助网络上启动实例
创建租户自助网络下的实例(也可以在dashboard界面上创建)

#net-id:可用的网络的ID,这里使用租户自助网络的ID 实例名称(selfservice-vm1)
source ~/myuser-openrc
openstack server create --flavor m1.nano --image cirros \
--nic net-id=0e3e56b8-67be-4a83-89c4-b23880d7e688 --security-group default \
--key-name mykey selfservice-vm1

查看创建的实例

[root@controller ~]# openstack server list
+--------------------------------------+-----------------+--------+-------------------------+--------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-----------------+--------+-------------------------+--------+---------+
| a9397f81-9f4d-4130-b72c-d607060c2856 | selfservice-vm1 | ACTIVE | selfservice=172.18.1.22 | cirros | m1.nano |
| 9c2c558f-0573-4483-8031-ec3ba9c41f57 | provider-vm1 | ACTIVE | provider=192.168.0.199 | cirros | m1.nano |
+--------------------------------------+-----------------+--------+-------------------------+--------+---------+

使用虚拟控制台访问实例

openstack console url show selfservice-vm1

访问实例的控制台并登陆cirros实例验证对公共提供商网络网关的访问

$ ping 172.18.1.1
PING 172.18.1.1 (172.18.1.1): 56 data bytes
64 bytes from 172.18.1.1: seq=0 ttl=64 time=25.527 ms

验证对互联网的访问

$ ping baidu.com
PING baidu.com (220.181.38.148): 56 data bytes
64 bytes from 220.181.38.148: seq=0 ttl=127 time=20.649 ms

从控制器节点使用SSH远程访问租户实例

在公共提供商网络上创建一个浮动IP地址

openstack floating ip create provider

Dashboard创建

查看已创建的浮动IP

[root@controller ~]# openstack floating ip list
+--------------------------------------+---------------------+------------------+------+--------------------------------------+-------
| ID | Floating IP Address | Fixed IP Address | Port | Floating Network | Projec
+--------------------------------------+---------------------+------------------+------+--------------------------------------+-------
| f31e429a-4ebd-407a-ae78-220311008f4f | 192.168.0.198 | None | None | 926859eb-1e48-44ed-9634-bcabba5eb8b8 | 6535a5
+--------------------------------------+---------------------+------------------+------+--------------------------------------+-------

将浮动IP地址与实例相关联

openstack server add floating ip selfservice-vm1 192.168.0.198

Dashboard关联


查看浮动IP地址绑定的状态

[root@controller ~]# openstack server list
+--------------------------------------+-----------------+--------+----------------------------------------+--------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-----------------+--------+----------------------------------------+--------+---------+
| a9397f81-9f4d-4130-b72c-d607060c2856 | selfservice-vm1 | ACTIVE | selfservice=172.18.1.22, 192.168.0.198 | cirros | m1.nano |
| 9c2c558f-0573-4483-8031-ec3ba9c41f57 | provider-vm1 | ACTIVE | provider=192.168.0.199 | cirros | m1.nano |
+--------------------------------------+-----------------+--------+----------------------------------------+--------+---------+

通过控制器节点或公共提供商网络上任何主机的浮动IP地址验证与实例的连接性

[root@controller ~]# ping 192.168.0.198
PING 192.168.0.198 (192.168.0.198) 56(84) bytes of data.
64 bytes from 192.168.0.198: icmp_seq=1 ttl=63 time=22.0 ms

从控制器节点或提供商网络上的任何其他主机使用SSH访问实例

[root@controller ~]# ssh cirros@192.168.0.198
$ hostname
selfservice-vm1
$ pwd
/home/cirros

安装文档创建的网络拓扑环境


创建的一个新的网络拓扑,两个独立的租户网络创建路由,并在路由上设置访问外网的网关


3.3 故障记录
安装网桥管理工具brctl来查看网络

yum install bridge-utils -y
brctl show

重启实例的方法,可在控制节点命令行重启 也可在dashboard界面进行重启

source ~/myuser-openrc
openstack server list
nova reboot <ID>

如果重启报错则使用hard重启

nova reboot --hard provider-vm1

nova reboot是软重启虚拟机
nova reboot --hard 是硬重启虚拟机
nova reset-state 是重置虚拟机状态

Web浏览器在无法解析controller主机名的主机上运行

可以替换nova.conf的配置文件中的[vnc]模块,将controller替换为控制节点的IP地址

openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://192.168.0.10:6080/vnc_auto.html

报错:找不到磁盘无法启动的问题
Booting from Hard Disk... GRUB

解决方法,修改计算节点的nova.conf文件

[root@computel01 ~]# vim /etc/nova/nova.conf
[libvirt]
cpu_mode = none
virt_type = qemu

重启计算节点的nova计算服务

[root@computel01 ~]# systemctl restart openstack-nova-compute.service

外部网络没有网的问题

在用VMware虚拟机进行测试时候,要为实例多添加网卡,通过虚拟网络编辑器,否则会导致创建的可访问外部网络没有网
我们部署openstack,大多数都是使用虚拟机,在网络节点的外部网卡,我们需要注意,这个是不需要配置ip地址的。
同时由于每个虚拟机是需要联网的。所以我们需要在原先的网络规划的基础上,在增加一个上网的网卡。

neutron报timeout超时
/etc/neutron/neutron.conf中会有一个配置项rpc_response_timeout,它用来配置RPC的超时时间,默认为60s,所以导致超时异常.解决方法为设置

#在controller节点上
[root@controller ~]# vim /etc/neutron/neutron.conf
[DEFAULT]
...
rpc_response_timeout=180 systemctl restart neutron-linuxbridge-agent.service

OpenStack Train版-12.创建虚拟网络并启动实例(控制节点)的更多相关文章

  1. OpenStack Train版-13.安装块存储服务cinder(控制节点)

    Cinder的核心功能是对卷的管理,允许对卷.卷的类型.卷的快照.卷备份进行处理.它为后端不同的存储设备提供给了统一的接口,不同的块设备服务厂商在Cinder中实现其驱动,可以被Openstack整合 ...

  2. OpenStack Train版-10.安装neutron网络服务(网络节点:可选)

    可选:安装neutron网络服务节点(neutron01网络节点192.168.0.30)网络配置按照官网文档的租户自助网络 配置系统参数 echo 'net.ipv4.ip_forward = 1' ...

  3. OpenStack Train版-8.安装neutron网络服务(控制节点)

    安装neutron网络服务(controller控制节点192.168.0.10) 创建neutron数据库 mysql -uroot CREATE DATABASE neutron; GRANT A ...

  4. OpenStack Train版-9.安装neutron网络服务(计算节点)

    在计算节点安装neutron网络服务(computel01计算节点192.168.0.20)安装组件 yum install openstack-neutron-linuxbridge ebtable ...

  5. OpenStack Train版-14.安装块存储服务cinder(存储节点)

    安装cindoer块存储服务节点(存储节点192.168.0.40)使用默认的LVM卷方法,之后改为ceph存储 安装LVM软件包 [root@cinder01 ~]# yum install lvm ...

  6. CentOS7安装OpenStack(Rocky版)-09.安装Cinder存储服务组件(控制节点)

    本文分享openstack的Cinder存储服务组件,cinder服务可以提供云磁盘(卷),类似阿里云云盘 ----------------------- 完美的分隔线  -------------- ...

  7. OpenStack Train版-15.创建并挂载存储卷

    1.创建并挂载存储卷 创建一个1GB的卷 source ~/demo-openrc openstack volume create --size 1 volume1 很短的时间后,卷状态应该从crea ...

  8. CentOS7安装OpenStack(Rocky版)-03.安装Glance镜像服务组件(控制节点)

    上篇文章分享了keystone的安装配置,本文接着分享openstack的镜像服务glance. --------------- 完美的分割线 ---------------- 3.0.glance概 ...

  9. OpenStack Train版 简单部署流程

    environment 1.网络平面 management(管理网络)→软件安装,组件通信 provider(提供实例网络)→:提供者网络:直接获取ip地址,实例之间直接互通   自服务网络(私有网络 ...

随机推荐

  1. CTFHub - Web(一)

    请求方法: 1.进入页面,提示:HTTP 请求方法, HTTP/1.1协议中共定义了八种方法(也叫动作)来以不同方式操作指定的资源. 2.当前http的请求方式是get请求,当你使用CTFHUB为请求 ...

  2. awk中引用shell变量的方法

    1.通过命令行参数定义变量时引用: awk -v awk变量名= shell变量名 #!/bin/bash var4bash=test awk -v var4awk="$var4bash&q ...

  3. Java 栈的使用

    讲栈之前,要先讲一下Deque双端队列 既可以添加到队尾,也可以添加到队首 既可以从队首获取又可以从队尾获取 public interface Deque<E> extends Queue ...

  4. linux自定义位置安装tomcat8.5

    1 下载tomcat安装文件 下载地址:https://tomcat.apache.org/download-80.cgi  2 解压文件 tar -zxvf apache-tomcat-8.5.56 ...

  5. MATLAB图像处理_Bayer图像处理 & RGB Bayer Color分析

    Bayer图像处理   Bayer是相机内部的原始图片, 一般后缀名为.raw. 很多软件都可以查看, 比如PS. 我们相机拍照下来存储在存储卡上的.jpeg或其它格式的图片, 都是从.raw格式转化 ...

  6. Redisson 分布式锁实战与 watch dog 机制解读

    Redisson 分布式锁实战与 watch dog 机制解读 目录 Redisson 分布式锁实战与 watch dog 机制解读 背景 普通的 Redis 分布式锁的缺陷 Redisson 提供的 ...

  7. FTP使用Socket SSL流程认证(一)

    关于Ftp使用SSL流程认证 本文章使用的是C#,ftp服务器为FileZilla 注:如果不是使用的Socket可以使用FtpWebRequst类,说实话,该类比较简单,但现在说的是SOCKET,网 ...

  8. cisco交换机路由器静态路由配置

    一.切换模式 router>en                           //用户模式enable router#conf t                      //特权模式 ...

  9. C#高级编程第11版 - 第五章 索引

    [1]5.1 泛型概述 1.通过泛型,你可以创建独立于特定类型(contained types)以外的方法和类,而不用为不同类型编写多份同样功能的代码,你只需要创建一个方法或者类. 2.泛型类使用泛型 ...

  10. (010)每日SQL学习:按字母顺序排列字符串

    需求:一串字母'ADFGH',需要按照顺序来显示:A D F G H 第一步:先把字符串拆分 with test as( select 'ADFGH' as a from dual ) select ...