实现虚拟机实例与外部网络通信

简介: 实现虚拟机实例与外部网络通信

RDO实现虚机实例与外部网络通信

网络是OpenStack极为重要的资源之一,没有网络,虚拟机实例就会被

完全隔离。


1)虚拟网络

OpenStack网络服务,最主要的功能就是为虚拟机实例提供网络连接。

Neutron为整个OpenStack环境提供软件定义网络(Software Defined

Network, SDK)支持。RDO一体化,默认使用开放式虚拟交换机(Open

vSwith,OVS)。为了提升Neutron的性能,推出了开放式虚拟网络

(Open Virtual Network,OVN)项目。OVN为OVS增加了对虚拟网络的

原生支持,大大提高了OVS在实际应用环境中的性能和规模。

OVN对运行平台没有额外的要求,只要能够运行OVS,就可以运行

OVN,所以,从OVS升级到OVN非常容易。在RDO的OpenStack解决方

案中,从OpenStack的Stein版开始,网络控制平台从之前的OVS升级到

OVN。需要注意的是,其二层网络的虚拟化仍然是由OVS实现的。

Netron虚拟网络包括外部网络、内部网络、虚拟路由器。外部网络负责

连接OpenStack项目之外的网络环境,用于外部物理网络接入。内部网

络又称私有网络,是虚拟机实例本身所在的网络,项目自己可以创建自己

的内部网络。虚拟路由器用于将内部网络与外部网络连接起来。

2)浮动IP

OpenStack虚拟机实例可以分配两类地址:私有地址、浮动IP地址。

私有地址,是由DHCP服务自动分配给虚拟机实例网络接口的IP地址。私

有地址是私有网络的一部分,同一广播域内的实例基于私有地址进行通

信。注,也可以通过虚拟路由器从其他私有网络访问私有地址。

浮动IP地址,不使用DHCP服务,由Neutron组件提供服务,直接在客户

端内静态设置即可。事实上,客户端操作系统并不知道自己被分配了一个

浮动IP地址。将数据包发送到分配有浮动IP地址网口的工作由Neutron负

责。分配有浮动IP地址的实例能够通过浮动IP地址被从外部网络访问。

OpenStack的虚拟机网络实例拥有一个私有IP地址,通过该IP地址,它们

可以在内部网络中相互访问。要从外部网络访问这些实例,需要为实例分

配浮动IP地址。


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

1)查看主机上的网络接口

ens33是主机网卡,“br”打头的是网桥。


2)查看主机上的网桥

br-ex,是外部网桥

br-int,是集成网桥


3)查看网桥端口

上图,发现br-ex网桥,只有一个连接集成网桥br-int的Patch端口,没有端口连接

到OpenStack主机的外部网络,因此,当前OpenStack云平台上的虚拟机实例无

法与外部网络进行通信。解决的办法是:将OpenStack主机上的网卡作为一个端口

添加到br-ex网桥上,可通过执行“ovs-vsctl add-port br-ex 网卡名”命令实

现。Open vSwitch会生成一个普通端口来处理此网卡的数据包。但,以这种方式

实现的配置,在重启主机后会丢失。下面改用网卡配置文件的方式来持久化实现。


4)复制ifcfg-ens33生成ifcfg-br-ex文件(br-ex网桥配置

文件)


cp ./ifcfg-ens33 ./ifcfg-br-ex

image.png5)修改br-ex网桥配置文件

vim /etc/sysconfig/network-scripts/ifcfg-br-ex

image.png6)修改ens33网卡配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33

image.png7)重启网络,使上述配置生效,然后,查看主机网络接口image.png上图可见,网桥br-ex获得原ens33网卡的IP配置,而ens33作为该网桥上的一个端

口后,可以没有IP地址。


2. 调整网络配置

RDO一体化OpenStack云平台默认配置一个内部网络、一个外部网络、

和一个路由器。普通用户只能查看属于自己项目的网络,且默认没有权限

管理外部网络。云管理员可以查看所有网络。

以admin用户身份登录,查看网络及路由

Project > Network > Network

Admin > Network > Network

Project > Network > Routers

Admin > Network > Routers

如果有虚拟路由器,则需要先清除掉(默认配置不能用)。


1)清除现有路由网关

点击“route1”进入路由详情,再点击“Interface”。默认配置的路由已经将外

部网络设置为其网关,所以,需要先将网关清除或直接删除该路由,才能删除外部

网络。

删除外部网关类型的接口image.pngimage.png2)配置外部网络

Admin > Network > Networkimage.png点击“public”进入网络详情,在概况选项卡,可以看到网络基本信息

如上图:

External Network: Yes,表示这是一个外部网络;

Provider Network

Network Type: flat,确保OpenStack能访问连通外部物理网络

Physical Network: extnet

Shared: No,表示该网络不可在项目间共享,即其他项目不能直接使用该外部网络为虚拟机实

例设置网络连接,但,仍然可以使用该外部网络作为虚拟路由器的网关。

上述,外部网络,除子网外,其他基本都符合实验环境。虚拟路由器的网关要设置

具体的子网,每个子网需要定义IP地址的范围和掩码。

①外部网络默认的子网地址范围是172.24.4.0/24;

②当前主机网络地址范围是192.168.233.0/24;

即,需要重设子网(先删除外部网络的子网) Subnets选项卡

再创建一个同名的子网

网络地址设置为与OpenStack主机网段相同,网关设置为与OpenStack主机网关相同

点击“下一步”进入“子网详情”设置界面。外部网络与OpenStack主机同网段,即,

网络有重叠,因此,需要再子网中设置一个专供虚拟机实例使用的地址段,该地址段再

OpenStack中通过分配地址池进行设置。为了便于虚拟机实例通过域名访问外部网络,还要设

置DNS。另,勾选“Enable DHCP”复选框,使用子网提供的DHCP服务,如不勾选则会使用

物理网络(OpenStack主机)中的DHCP服务。

设置完毕后,单击“Create”按钮完成子网的创建image.pngimage.pngimage.pngimage.png3)调虚拟整路由配置

虚拟路由的操作以各项目为主,每个项目都可以定义自己的路由。下面以

demo用户身份登录OpenStack。

Project > Network > Routers

可见,demo项目有一个自己的路由route1,其,“动作”下拉菜单中的“设置网关”命令可

用,表明该路由目前没有设置网关。

设置demo项目的路由网关,使该项目的虚拟机实例能够内外网通信

从“External Network”下拉列表中选择“public”选项

编辑修改路由名(router-demo),并启用该路由image.pngimage.pngimage.pngimage.png4)查看网络拓扑

Project > Network > Network Topology

如上图所示,虚拟路由将内外网连接起来。另,由于名称为“public”的外部网络

未设置“可共享”,因此,这里看不到该外部网络的子网地址信息。将鼠标指针移

动到虚拟路由图标上,可进行一步显示路由的配置信息。image.png3. 给云虚拟机实例分配浮动IP

浮动IP 和 私有IP 能够同时用于一个单独的网络接口。要使

外部网络能够访问云虚拟机实例,就要为这些云虚拟机实例

分配浮动IP。

demo用户登录OpenStack,Project > Compute >

Instances

点击“CirrOS-VM-demo”虚拟机实例右端“动作”下拉菜单中的“绑

定浮动IP”选项

弹出“关联浮动IP”对话框

可见,默认没有分配浮动IP,单击“+”按钮,弹出“分配浮动IP”对话

从“Pool”下拉列表中选择“Public”选项,单击“Allocate IP”按钮,

返回到“关联浮动IP”对话框,此时分配了一个IP地址

单击“关联(Associate)”按钮,将该IP地址分配给实例

上面为处于关闭状态的CirrOS-VM-demo实例成功分配了浮动IP地址。

实际上也可以为正在运行的实例分配浮动IP地址。

至此,可以进行虚拟机实例与外部网络间的通信测试了

1)查看CirrOS-VM-demo实例的网络接口

发现该虚拟机实例的IP地址使内部网络地址,即外部网络的浮动IP地址并

未直接注入虚拟机实例中。

2)CirrOS-VM-demo实例ping外部网关和百度

3)OpenStack主机pingCirrOS-VM-demo实例的浮动

IP(192.168.233.247)

至此,云平台虚拟机实例与外部网络已经连通。image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png可以发现网络通了image.pngimage.png






目录
相关文章
|
25天前
|
Ubuntu Windows
【Ubuntu/Arm】Ubuntu 系统如何链接有线网络(非虚拟机)?
【Ubuntu/Arm】Ubuntu 系统如何链接有线网络(非虚拟机)?
|
26天前
|
Ubuntu
虚拟机Ubuntu连接不了网络的解决方法
虚拟机Ubuntu连接不了网络的解决方法
|
1月前
|
网络协议 Linux Shell
搭建虚拟机的网络布局类型和配置操作
搭建虚拟机的网络布局类型和配置操作
|
2天前
|
存储 监控 网络协议
【计算机网络】第三章 数据链路层(虚拟机与局域网)
【计算机网络】第三章 数据链路层(虚拟机与局域网)
|
16天前
|
存储 安全 测试技术
网络奇谭:虚拟机中的共享、桥接与Host-Only模式解析
网络奇谭:虚拟机中的共享、桥接与Host-Only模式解析
19 0
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
卷积神经元网络中常用卷积核理解及基于Pytorch的实例应用(附完整代码)
卷积神经元网络中常用卷积核理解及基于Pytorch的实例应用(附完整代码)
20 0
|
1月前
|
关系型数据库 MySQL 数据库
虚拟机Linux-Centos系统网络配置常用命令+Docker 的常用命令
虚拟机Linux-Centos系统网络配置常用命令+Docker 的常用命令
46 0
|
2月前
|
弹性计算 大数据 测试技术
2024年阿里云服务器价格购买价格表(实例配置价格+磁盘价格+网络宽带价格)
2024年阿里云服务器价格购买价格表来了!2024年阿里云服务器租用费用,轻量应用服务器和云服务器ECS优惠价格表,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服务器30元3个月,幻兽帕鲁4核16G和8核32G服务器配置,云服务器ECS可以选择经济型e实例、通用算力u1实例、ECS计算型c7、通用型g7、c8i、g8i等企业级实例规格。今天分享阿里云服务器租用费用最新报价:
73 2
|
2月前
|
网络安全 虚拟化
【网络安全 | 工具】Kali虚拟机安装教程及报错详析
【网络安全 | 工具】Kali虚拟机安装教程及报错详析
108 0
【网络安全 | 工具】Kali虚拟机安装教程及报错详析
|
3月前
|
Shell
openstack 查询网络的port 关联的虚拟机
在OpenStack中,可以通过以下步骤查询网络的端口关联的虚拟机: 打开命令行终端,并使用OpenStack的命令行工具(如openstack命令行客户端)登录到OpenStack平台。 执行以下命令来获取所有端口的列表: bash openstack port list 这将显示所有端口的列表,包括端口ID、网络ID、MAC地址等信息。 3. 从端口列表中,找到与虚拟机相关的端口。通常情况下,虚拟机的端口具有与虚拟机实例相关的标识符,例如MAC地址或端口ID。 4. 执行以下命令来获取虚拟机实例的详细信息: bash openstack instance show <instanc