操作系统:CentOS7.9

网络连接:NAT模式

OpenStack部署方式:--allinone

目录

1.将OpenStack主机网卡添加到br-ex网桥上

2.调整网络配置

3.为虚拟机实例分配浮动IP地址

4.在linux计算机上通过SSH访问虚拟机实例


1.将OpenStack主机网卡添加到br-ex网桥上

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_IP

 其中ens33是主机网卡,“br”开头的是网桥,以下命令可查看网桥

[root@node-a ~]# ovs-vsctl list-br
br-ex
br-int
 

br-ex是外部网桥,br-int是集成网桥,以下命令可以查看网桥的端口

[root@node-a ~]# ovs-vsctl list-ports br-ex
patch-provnet-72ad633c-84ad-4053-94dc-b226a1799588-to-br-int
[root@node-a ~]# 

目前只有一个br-int的Patch端口,并没有端口连接到OpenStack上的外部接口,因此当前OpenStack云平台上的实例无法与外网通信,这里改用网卡配置来将OpenStack主机上的网卡作为一个端口添加到br-ex网桥上(根据自己的网络环境来替换其中的网卡名称、IP地址和DNS服务器等参数值)

创建与br-ex相关的网络配置文件

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_openstack_02

 对ifcfg-br-ex配置文件进行修改

[root@node-a network-scripts]# vi ifcfg-br-ex

关键修改TYPE,DEVICETYPE,以及NAME、DEVICE的值

TYPE="OVSBridge"
 DEVICETYPE=ovs
 PROXY_METHOD="none"
 BROWSER_ONLY="no"
 BOOTPROTO="static"
 DEFROUTE="yes"
 IPV4_FAILURE_FATAL="no"
 IPV6INIT="yes"
 IPV6_AUTOCONF="yes"
 IPV6_DEFROUTE="yes"
 IPV6_FAILURE_FATAL="no"
 IPV6_ADDR_GEN_MODE="stable-privacy"
 NAME="br-ex"
 DEVICE="br-ex"
 ONBOOT="yes"
 IPADDR=192.168.187.128
 PREFIX=24
 GATEWAY=192.168.187.2
 DNS1=114.114.114.114
 ~                                                                                                                      
 ~                             对ifcfg-ens33配置文件修改
[root@node-a network-scripts]# vi ifcfg-ens33 
  关键修改TYPE, 添加最后两行定义
TYPE="OVSPort"
 PROXY_METHOD="none"
 BROWSER_ONLY="no"
 BOOTPROTO="static"
 DEFROUTE="yes"
 IPV4_FAILURE_FATAL="no"
 IPV6INIT="yes"
 IPV6_AUTOCONF="yes"
 IPV6_DEFROUTE="yes"
 IPV6_FAILURE_FATAL="no"
 IPV6_ADDR_GEN_MODE="stable-privacy"
 NAME="ens33"
 UUID="c69819c0-e818-4bf7-9df1-db90a30fa5cc"
 DEVICE="ens33"
 ONBOOT="yes"
 DEVICETYPE=ovs
 OVS_BRIDGE=br-ex
 ~                                                                                                                      
 ~                               重启网络
[root@node-a network-scripts]# systemctl restart network

使用ip命令验证配置更改

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_openstack_03

 再次查看br-ex网桥端口

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_openstack_04

2.调整网络配置

以admin用户登录OpenStack,在“管理员”仪表板下找到“路由”节点,定义了一个名为“route1”的路由器,这是一个虚拟路由器,用于连接外部网络和内部网络,但不符合实际网络环境,所以需要对现有的网络进行重新配置。

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_运维_05

(1)清除现有路由器的网关

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_IP_06

 (2)配置外部网络

从“管理员”仪表盘中打开网络列表,选择“public”网络打开其详情界面

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_运维_07

 将外部网络现有的子网删除

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_运维_08

再创一个同名的子网

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_IP_09

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_openstack_10

 

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_IPV6_11

 (3)调整路由器配置

 以demo用户登录OpenStack,打开路由列表

设置网关

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_IP_12

编辑路由,更改路由名称

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_openstack_13

 (4)查看网络拓扑图

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_运维_14

3.为虚拟机实例分配浮动IP地址

要使外部网络中其他计算机能访问这些实例,就要为该实例分配浮动IP地址

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_IP_15

 

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_运维_16

此时已能与外网互通

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_openstack_17

查看demo与admin账户上路由的接口

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_运维_18

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_IP_19

 

 

4.在linux计算机上通过SSH访问虚拟机实例

 (1)将之前创建实例时下载的密钥传到Linux主机上

(2)给密钥添加可执行权限

(3)使用SSH证书登录

ssh -i 私钥文件 <用户名>@<实例IP地址>

openstack 虚拟机没有获取到IP地址 openstack查看所有虚拟机_IP_20