IT袋

当前位置:主页 > 经验教程 > 系统教程 >

openstack虚拟机实例创建并实现与外部网络通信流程

openstack虚拟机实例创建并实现与外部网络通信流程(11)

时间:2024-01-09 15:57:59 来源:IT袋 作者:马勇
导读:openstack虚拟机实例创建并实现与外部网络通信流程,9.配置虚拟机实例与外部网络通信 网络是 OpenStack 非常重要的资源之一,没有网络,虚拟机实例将被完全隔绝。 RDO 一体化 OpenStack 云平台默认已配置了虚拟

openstack虚拟机实例创建并实现与外部网络通信流程

openstack虚拟机实例创建并实现与外部网络通信流程

9.配置虚拟机实例与外部网络通信

网络是OpenStack非常重要的资源之一,没有网络,虚拟机实例将被完全隔绝。

RDO一体化OpenStack云平台默认已配置了虚拟网络,但是由于没有针对实际环境进行配置,即使分配浮动IP地址,创建的虚拟机实例也不能与外部网络通信。

此时,通过修改相关配置来定制网络,即可实现虚拟机实例与外部网络之间的通信。

OpenStack的虚拟机实例拥有一个私有IP地址,通过该地址,它们可以在内部网络中相互访问,要从外部网络的其他计算机访问这些实例,需要为实例分配浮动IP地址。

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

先查看OpenStack主机的网络接口信息:

[root@mynode-a ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:bb:d5:35 brd ff:ff:ff:ff:ff:ff
    inet 192.168.250.250/24 brd 192.168.250.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:febb:d535/64 scope link 
       valid_lft forever preferred_lft forever
3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 16:91:e1:b4:7c:4b brd ff:ff:ff:ff:ff:ff
4: br-ex: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 7e:27:21:cc:2d:40 brd ff:ff:ff:ff:ff:ff
5: br-int: <BROADCAST,MULTICAST> mtu 1442 qdisc noop state DOWN group default qlen 1000
    link/ether 9a:df:16:e1:29:4f brd ff:ff:ff:ff:ff:ff
6: tap725a7e8c-b4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1442 qdisc pfifo_fast master ovs-system state UNKNOWN group default qlen 1000
    link/ether fe:16:3e:fc:f5:47 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc16:3eff:fefc:f547/64 scope link 
       valid_lft forever preferred_lft forever
7: tapad9cc827-30@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000
    link/ether b6:1c:e1:31:01:0d brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::b41c:e1ff:fe31:10d/64 scope link 
       valid_lft forever preferred_lft forever
8: tap5f3da2e4-3a: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1442 qdisc pfifo_fast master ovs-system state UNKNOWN group default qlen 1000
    link/ether fe:16:3e:92:da:e9 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc16:3eff:fe92:dae9/64 scope link 
       valid_lft forever preferred_lft forever
[root@mynode-a ~]# 

openstack虚拟机实例创建并实现与外部网络通信流程

如上,其中eth0是主机网卡,以br开头的是网桥。

接着查看主机上当前的网桥:

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

可以看到目前主机已经有两个网桥,其中br-ex是外部网桥,br-int是集成网桥。

用下面命令查看br-ex网桥端口:

[root@mynode-a ~]# ovs-vsctl list-ports br-ex
patch-provnet-3391f33e-a5ff-4066-83fd-633340ea4339-to-br-int
[root@mynode-a ~]# 

可以看到,该网桥只有一个连接集成网桥br-intpatch端口,没有端口连接到openstack主机上的外部网络接口,因此当前openstack云平台上的虚拟机实例无法与外部网络进行通信。

解决的办法是将OpenStack主机上的网卡作为一个端口添加到br-ex网桥上

Open vSwitch会生成一个普通端口来处理此网卡的数据包。但是以这种方式实现的配置在开机后会丢失,可以改用网卡配置文件来实现。

1)复制网卡ifcfg-eth0文件

[root@mynode-a network-scripts]# cp ifcfg-eth0 ifcfg-br-ex
[root@mynode-a network-scripts]# 

2)修改ifcfg-br-ex文件

[root@mynode-a network-scripts]# vim ifcfg-br-ex
TYPE=OVSBridge             # 将TYPE值修改为OVSBridge
DEVICETYPE=ovs             # 添加DEVICETYPE,值为ovs
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
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               # NAME值为br-ex
UUID=45242253-7348-405e-946a-40e72803e0ca
DEVICE=br-ex             #DEVICE值为br-ex
ONBOOT=yes
IPADDR=192.168.250.250
PREFIX=24
GATEWAY=192.168.250.1
DNS1=222.222.222.222
PEERDNS=no

openstack虚拟机实例创建并实现与外部网络通信流程

3)修改ifcfg-eth0文件

删除相关信息,配置完成后,用cat命令查看:

[root@mynode-a network-scripts]# cat ifcfg-eth0
TYPE=OVSPort
NAME=eth0
DEVICE=eth0
ONBOOT=yes
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
[root@mynode-a network-scripts]# 

4)重启网络服务

为了使当前配置生效,需重启网络服务:

[root@mynode-a network-scripts]# systemctl restart network

此时,再查看网络配置信息:

[root@mynode-a /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP group default qlen 1000
    link/ether 52:54:00:bb:d5:35 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::5054:ff:febb:d535/64 scope link 
       valid_lft forever preferred_lft forever
3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 16:91:e1:b4:7c:4b brd ff:ff:ff:ff:ff:ff
4: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 7e:27:21:cc:2d:40 brd ff:ff:ff:ff:ff:ff
    inet 192.168.250.250/24 brd 192.168.250.255 scope global br-ex
       valid_lft forever preferred_lft forever
    inet6 fe80::7c27:21ff:fecc:2d40/64 scope link 
       valid_lft forever preferred_lft forever
5: br-int: <BROADCAST,MULTICAST> mtu 1442 qdisc noop state DOWN group default qlen 1000
    link/ether 9a:df:16:e1:29:4f brd ff:ff:ff:ff:ff:ff
6: tap725a7e8c-b4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1442 qdisc pfifo_fast master ovs-system state UNKNOWN group default qlen 1000
    link/ether fe:16:3e:fc:f5:47 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc16:3eff:fefc:f547/64 scope link 
       valid_lft forever preferred_lft forever
7: tapad9cc827-30@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000
    link/ether b6:1c:e1:31:01:0d brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::b41c:e1ff:fe31:10d/64 scope link 
       valid_lft forever preferred_lft forever
8: tap5f3da2e4-3a: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1442 qdisc pfifo_fast master ovs-system state UNKNOWN group default qlen 1000
    link/ether fe:16:3e:92:da:e9 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc16:3eff:fe92:dae9/64 scope link 
       valid_lft forever preferred_lft forever

可以看出,外部网桥br-ex获得源eth0网卡的IP地址192.168.250.250,而eth0网卡作为该网桥上的一个端口后,可以没有IP地址。

9.2调整网络配置

RDO一体化OpenStack云平台默认配置了一个内部网络、一个外部网络和一个路由器

云管理员可以查看所有网络配置,以admin身份登录系统:

管理员–>网络–>网络

可以看出默认系统一个外部网络(public)和一个内部网络(private):

相关阅读