千家信息网

openstack kilo版本虚拟机无法ping通外网是什么情况

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关openstack kilo版本虚拟机无法ping通外网是什么情况,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、简介第
千家信息网最后更新 2026年11月03日openstack kilo版本虚拟机无法ping通外网是什么情况

这篇文章将为大家详细讲解有关openstack kilo版本虚拟机无法ping通外网是什么情况,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

一、简介

第二次搭建Openstack环境,此次并非在自己的VM虚拟机上搭建,环境搭建过程中,出现各种错误,此处只为记录下:

二、测试环境

硬件:两台X86的服务器,6块网卡

系统:Centos7.2的系统,openstack版本为kilo

由于是两台机器,所以架构比较紧凑:

bdc217:controller、compute1

bdc218:network、compute2

三、网卡配置

两台机器一样都是6块网卡,具体配置如下

bdc217:

bond0:两块网卡绑定

IPADDR=192.168.8.217
NETMASK=255.255.0.0
GATEWAY=192.168.5.2

bond2:三块网卡绑定作为存储网络

192.168.13.217

enp4s0f0:未作配置(本来想作为隧道网络)

bdc218:

bond0:两块网卡绑定

IPADDR=192.168.8.218
NETMASK=255.255.0.0
GATEWAY=192.168.5.2

bond2:三块网卡绑定 作为存储网络

192.168.13.218

enp4s0f0:作为网络节点的外部网络

# cat /etc/sysconfig/network-scripts/ifcfg-enp4s0f0TYPE=EthernetBOOTPROTO=noneNAME=enp4s0f0DEVICE=enp4s0f0ONBOOT=yes

说明:

(1)外部网络:为云主机提供上网业务和外界登陆openstack使用

(2)管理网络:三节点之间通信,比如keystone、认证、RabbitMQ消息队列等

(3)隧道网络:网络节点和计算节点之间的虚拟机数据通信,比如DHCP、L2、L3

其实管理网络和隧道网络可以使用同一块网卡。

四、错误记录

1、虚拟机创建失败

新创建的虚拟机一直是error状态

解决思路:

多检查日志尤其是网络方面的日志

我的解决办法:检查neutron的配置文件,重新配置neutron,重启neutron的服务(如ovs等)

2、虚拟机无法获取IP

这种错误的表象就是启动云主机的时候,时间过长,因为一直在检查,查看云主机控制台日志,发现报如下错误,而且会有一连串似乎是20个failed。

Starting network...udhcpc (v1.18.5) startedSending discover...Sending discover...Sending discover...No lease, failingWARN: /etc/rc3.d/S40-network failed

解决思路:

由于我配置的时候用的是GRE网络方式,检查了多次ml2_conf.ini配置文件,一直在关注local_ip,后来发现是自己粗心,在配置IP的时候,网卡配置时ip地址配置错误了,而配置文件并没有错,

因此gre隧道是通的,但是还是获取不到ip,修改网卡的ip设置,问题就解决了。

3、虚拟机无法访问外网

虚拟机可以正常获取到IP,也可以ping以及ssh连接制节点和网络节点,但是无法ping通外网

网络创建过程:

五、创建第一个网络

  • 创建外部网络
# source admin-openrc.sh# neutron net-create ext-net --router:external \    --provider:physical_network external --provider:network_type flatCreated a new network:+---------------------------+--------------------------------------+| Field                     | Value                                |+---------------------------+--------------------------------------+| admin_state_up            | True                                 || id                        | c05070a1-9a4a-40d7-aa53-f1e38c6616e8 || mtu                       | 0                                    || name                      | ext-net                              || provider:network_type     | flat                                 || provider:physical_network | external                             || provider:segmentation_id  |                                      || router:external           | True                                 || shared                    | False                                || status                    | ACTIVE                               || subnets                   |                                      || tenant_id                 | df206060f35a48b78d06aa1a9ec9c10c     |+---------------------------+--------------------------------------+
  • 在外部网络上创建一个子网
# neutron subnet-create ext-net 192.168.12.0/24 --name ext-subnet \   --allocation-pool start=192.168.12.100,end=192.168.12.200 \   --disable-dhcp --gateway 192.168.12.1Created a new subnet:+-------------------+------------------------------------------------------+| Field             | Value                                                |+-------------------+------------------------------------------------------+| allocation_pools  | {"start": "192.168.12.100", "end": "192.168.12.200"} || cidr              | 192.168.12.0/24                                      || dns_nameservers   |                                                      || enable_dhcp       | False                                                || gateway_ip        | 192.168.12.1                                         || host_routes       |                                                      || id                | d9a05de1-4c7d-4c05-b324-a65cbd182b83                 || ip_version        | 4                                                    || ipv6_address_mode |                                                      || ipv6_ra_mode      |                                                      || name              | ext-subnet                                           || network_id        | cbd0e9ab-07d4-49bf-b1ef-67914fbaaf20                 || subnetpool_id     |                                                      || tenant_id         | df206060f35a48b78d06aa1a9ec9c10c                     |+-------------------+------------------------------------------------------+
  • 创建租户网络
# source demo-openrc.sh# neutron net-create demo-netCreated a new network:+-----------------+--------------------------------------+| Field           | Value                                |+-----------------+--------------------------------------+| admin_state_up  | True                                 || id              | dc14ee5b-4bb6-4773-89f3-c1c4c064315a || mtu             | 0                                    || name            | demo-net                             || router:external | False                                || shared          | False                                || status          | ACTIVE                               || subnets         |                                      || tenant_id       | 23652ebf5833435aa243e1a7665cb9dc     |+-----------------+--------------------------------------+
  • 在租户网络下创建子网
# neutron subnet-create demo-net 10.10.1.0/24 \   --name demo-subnet --dns-nameserver 8.8.4.4 --gateway 10.10.1.1Created a new subnet:+-------------------+----------------------------------------------+| Field             | Value                                        |+-------------------+----------------------------------------------+| allocation_pools  | {"start": "10.10.1.2", "end": "10.10.1.254"} || cidr              | 10.10.1.0/24                                 || dns_nameservers   | 8.8.4.4                                      || enable_dhcp       | True                                         || gateway_ip        | 10.10.1.1                                    || host_routes       |                                              || id                | f4758b79-5a53-4f9d-9838-5e372802da3f         || ip_version        | 4                                            || ipv6_address_mode |                                              || ipv6_ra_mode      |                                              || name              | demo-subnet                                  || network_id        | dc14ee5b-4bb6-4773-89f3-c1c4c064315a         || subnetpool_id     |                                              || tenant_id         | 23652ebf5833435aa243e1a7665cb9dc             |+-------------------+----------------------------------------------+
  • 为租户网络创建路由,并将外部网络以及租户网络添加进去

创建路由

# neutron router-create demo-routerCreated a new router:+-----------------------+--------------------------------------+| Field                 | Value                                |+-----------------------+--------------------------------------+| admin_state_up        | True                                 || external_gateway_info |                                      || id                    | fbb96045-517d-4956-990a-01668151a70e || name                  | demo-router                          || routes                |                                      || status                | ACTIVE                               || tenant_id             | 23652ebf5833435aa243e1a7665cb9dc     |+-----------------------+--------------------------------------+

添加路由到demo租户的子网

# neutron router-interface-add demo-router demo-subnetAdded interface b5153ea2-4ed5-4c68-b599-29fc48d251b7 to router demo-router.

添加路由到外部网络并将其作为网关

# neutron router-gateway-set demo-router ext-netSet gateway for router demo-router

整个网络的配置过程完全按照官方文档的步骤,但是创建实例后依旧无法ping通外网,最后检查发现为网卡的配置问题,因为默认网关是192.168.5.2,只有配了该网关才能连接到外网上,但是 在外部网络上创建一个子网 步骤使用的是

# neutron subnet-create ext-net 192.168.12.0/24 --name ext-subnet \

--allocation-pool start=192.168.12.100,end=192.168.12.200 \

--disable-dhcp --gateway 192.168.12.1

网关只能选择12网段的ip,不能改成5.2,最后将外部网络的子网修改为5网段的,网关也修改成了5.2,发现可以ping通外网。

另外,子网掩码也需要注意,/24表示255.255.255.0 是三个255,而测试环境的子网掩码是255.255.0.0,这就导致非12网段不能ping通浮动IP,最终创建子网的语句修改为

# neutron subnet-create ext-net 192.168.5.0/16 --name ext-subnet \

--allocation-pool start=192.168.5.100,end=192.168.5.200 \

--disable-dhcp --gateway 192.168.5.2

这样创建新实例,绑定浮动IP后,云主机既可以访问外网,自己的PC也可以访问云主机。

关于openstack kilo版本虚拟机无法ping通外网是什么情况就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

网络 配置 网卡 子网 节点 主机 租户 网关 错误 检查 环境 路由 隧道 版本 外部网 文件 日志 时候 网段 过程 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡网 互联网科技公司的优势 科技互联网公司装修 致骋互联网科技 迪茉互联网科技 苏州铭阳互联网科技有限公司 互联网科技人工智能实验室 为客找房互联网科技公司怎么样 互联网第三次科技革命特征 互联网风格科技公司名称 广州互联网高科技取餐柜 上海乐五互联网科技有限公司 普陀区互联网教育科技管理办法 艺电能源互联网科技有限公司招聘 互联网科技和医药行业 恒生科技指数 中概互联网 恒生互联网科技趋势 互联网科技快速发展优美句子 科技发展第三阶段互联网时代 广州全民伙伴互联网科技有限公司 湖北九亚互联网络科技有限公司 天津市摩尔互联网科技 互联网金融监管科技数据 互联网金融科技创新 居家互联网科技有限公司 深圳互联网科技怎么样 现代互联网科技股 速维有品互联网信息科技(苏州)有限公司 迪庆互联网科技招生 科技信息时代互联网发展
0