openstack虚拟机为何不通?,怎么解决

openstack虚拟机不通,绝大多数逃不出这三层:安全组、DHCP/路由器、L2物理链路,排查时按“从虚到实”的顺序一层层剥,通常十分钟内就能找到问题。

先说清楚一个原则:虚拟机不通不一定都是openstack的锅。先别急着翻配置,先搞清楚“谁不通、通到哪、什么时候开始不通”,故障范围决定了排查方向,方向错了只会越查越乱。

openstack实现虚拟机实例与外部网络相连
加载中
openstack实现虚拟机实例与外部网络相连

openstack虚拟机网络不通排查:先分清故障范围

  • 只有一台虚拟机不通:问题大概率在虚拟机自身,或者它绑定的安全组、端口属性。
  • 同一项目所有虚拟机都不通:重点查路由器和DHCP命名空间。
  • 所有项目的虚拟机都拿不到IP:考虑网络节点上的neutron服务,以及底层物理网络。

从虚拟机内部看网络状态

登录虚拟机,执行下面三条命令,能过滤掉一多半的“假故障”:

  • ip addr:看网卡有没有IP,如果是169.254.x.x,说明DHCP没拿到地址。
  • ip route show:看默认网关是否存在,有时候多网卡虚机会把默认路由指错。
  • ping -c 3 网关IP:测一下到网关的二层连通性。

如果虚拟机内IP、网关都正常,但ping网关不通,这时候再往虚拟网络层去查。不要一上来就重构网络,那是最后一步

创建虚拟机后ping不通网关?先看这两层

  • 第一层:安全组有没有放行ICMP,openstack默认安全组通常只放行内部几个常见端口,很多镜像创建出来的虚拟机,入方向根本没有ICMP规则。
  • 第二层:虚拟机的端口有没有绑定到正确的子网,用 openstack port list 查看fixed_ips,如果IP没落在目标网段,网关自然不可达。

检查方法很简单:在控制节点上执行 openstack security group rule list <安全组ID>,看看有没有 protocol=icmp 的入方向规则,没有的话,加上就行。

安全组配置是openstack虚拟机不通的高发原因

业内专家指出,安全组配置错误占了openstack虚拟机网络不通原因的相当一部分,而且这类问题最隐蔽,因为不查规则根本想不起来。

入方向规则写反:ICMP没放行

很多人在openstack上创建安全组时,只添加了TCP端口,比如22、80,然后就开始ping虚拟机,ping用的是ICMP协议,TCP规则不覆盖它,结果就是SSH能通、ping不通。

临时验证方法:

  • openstack security group rule create --protocol any <安全组ID>

    openstack虚拟机为何不通?,怎么解决

    放行所有协议。

  • 放行后再ping,如果通了,基本能确定是ICMP规则缺失。

正式修复就补一条入方向ICMP规则,来源IP可以限制在办公网段或VPC网段,别直接全开。

规则之间没有优先级,只有放行和未放行

Neutron的安全组规则是“或”关系,只要有一条匹配就放行,不存在“拒绝优先”的说法,很多人会以为放行了所有端口就能解决一切,其实不对:如果某条规则的协议类型是TCP,ICMP照样会被丢弃。

所以排查时要把规则按协议拆开看:

  • ICMP规则单独一条。
  • SSH/TCP规则单独一条。
  • 如果有UDP业务,也单独放行。

这样不仅清晰,还能避免“放行All traffic”带来的安全风险。

DHCP与路由器命名空间异常:中大型故障的根源

当一批虚拟机同时出现网络问题时,重心要转移到网络节点上的命名空间。

dnsmasq进程状态检查

DHCP服务实际上是跑在qdhcp命名空间里的dnsmasq进程,dnsmasq挂了,虚拟机就拿不到IP,或者拿到的是过期租约。

排查步骤:

  • 在网络节点上执行 ip netns list,看看有没有qdhcp开头的命名空间。
  • 找到对应网络的命名空间,执行 ip netns exec qdhcp-xxx ps aux | grep dnsmasq
  • 如果dnsmasq不存在,查看 /var/log/neutron/dhcp-agent.logdmesg 输出。

修复方式通常是重启neutron-dhcp-agent服务,如果重启后dnsmasq仍然起不来,查看租约目录 /var/lib/neutron/dhcp/ 下是否有残留的租约文件,清理后重启。

qrouter状态与SNAT规则

跨网段通信和访问外网都要经过qrouter命名空间,qrouter状态异常,最典型的表现是虚拟机之间互访正常,但访问外部网络全部超时。

检查命令:

  • openstack router show <路由器ID>,看status是否为ACTIVE。
  • 在网络节点上执行 ip netns list,确认qrouter命名空间存在。
  • 执行 ip netns exec qrouter-xxx iptables -t nat -L POSTROUTING,查看SNAT规则是否还在。

行业共识认为,网络节点上命名空间意外丢失,或者系统重启后neutron进程没有完全拉起,是导致批量虚拟机不通的重要原因,遇到这种情况,不用犹豫,直接把路由器重建一次,比手动修复来的快。

物理网络和L2 Agent问题:小包通大包不通的蛛丝马迹

有时候虚拟机本身配置没问题,安全组也放行了,但网络就是不通,这时候需要看二层转发和物理链路上的匹配情况。

openstack虚拟机为何不通?,怎么解决

Open vSwitch流表检查

计算节点上的neutron-openvswitch-agent负责维护br-int和br-tun的流表,流表如果没同步,虚拟机的流量到了br-int就断了。

检查思路:

  • 在计算节点上执行 openstack network agent list,确认openvswitch-agent状态为UP。
  • 执行 ovs-vsctl list Port 找到虚拟机对应的内部端口。
  • 执行 ovs-ofctl dump-flows br-int | grep <端口号>,看是否有对应的流表项。

如果流表缺失,重启openvswitch-agent通常能触发重新同步,但如果链路不稳定,重启后会反复掉线,这时要检查物理网卡和bond状态。

MTU不一致导致大包丢包

这个现象很经典:小包ping得通,大包ping不通,网页打开也卡,原因多半是隧道网络MTU和虚拟机接口MTU不匹配。

openstack VXLAN隧道默认MTU是1450,而虚拟机的网卡默认是1500,物理链路MTU不够时,大包会被丢弃,小包因为没超过限制所以正常。

验证方法:

  • 在虚拟机内执行 ping -M do -s 1400 <网关IP>,能通则说明链路OK。
  • 再把包大小增加到1472,如果不通则确认是MTU问题。

修复方式是在创建时不指定路由器MTU,或统一将网络MTU调整为1450,注意物理交换机上对应端口的MTU也要同步支持,否则同样会丢包。

现象 可能原因 排查方向
小包通、大包不通 链路MTU不匹配 比对虚拟机、路由器和物理交换机MTU
单台虚拟机IP获取不到 dnsmasq异常或租约冲突 查看qdhcp命名空间和dhcp-agent日志
所有虚拟机外网不通 qrouter中SNAT规则丢失 检查qrouter的iptables规则

虚拟机关联安全组后仍然不通的自身原因

云平台层面的安全组和路由检查完都没问题,那就要“钻进”虚拟机内部找原因。

系统内防火墙和路由表拦截

很多镜像默认开启了内部防火墙,比如Ubuntu的ufw、CentOS的firewalld,云平台安全组放行了,但虚机内部的iptables不放行,一样不通。

检查命令:

  • iptables -L -n 查看INPUT链和FORWARD链。
  • 临时清空iptables规则测试连通性(谨慎操作,建议在测试环境验证)。
  • openstack虚拟机为何不通?,怎么解决

  • 查看虚拟机内路由表:ip route show,确认默认路由指向正确的网关。

如果是双网卡虚拟机,还要检查策略路由,只有一个默认网关时,另一张网卡很可能无法访问外部。

元数据服务影响网卡初始化

云平台镜像需要通过 http://169.254.169.254 获取metadata,如果这个地址在虚拟机的路由表里缺失,cloud-init可能会卡住,导致网卡初始化不完整。

检查方法:

  • ip route show | grep 169.254.169.254 看看有没有指向eth0的metadata路由。
  • 如果缺失,手动添加:ip route add 169.254.169.254/32 dev eth0

这个原因不算高频,但一旦碰上,表现就是虚拟机起不来或者网络服务启动失败,排查起来很费时间。

写在最后

openstack虚拟机不通的问题,总结下来就是三句话:

  • 先查安全组放行方向,这是最容易踩的坑。
  • 再查DHCP和路由器命名空间,批量不通时优先看这里。
  • 最后查OVS流表和物理链路,特别是MTU不一致导致的大包丢包。

遇到问题不要慌,按这个顺序一步步来,大部分openstack虚拟机网络故障都能在半小时内定位,把常用命令打印出来放在手边,比任何监控工具都管用。

openstack虚拟机不通是什么原因:常见Q&A

Q1:openstack虚拟机网络不通排查时,安全组和虚拟机内防火墙哪个先查?

先查安全组,安全组是云平台层面的第一道关卡,它会直接反应在宿主机的iptables规则里,如果安全组没放行,就算虚拟机内部防火墙完全开放,流量也进不去,安全组确认无误后,再查虚拟机内部防火墙,顺序不要颠倒。

Q2:创建虚拟机后ping不通网关,但外网能通,这是为什么?

外网能通说明路由器和SNAT工作正常,ping不通网关有两个常见原因:一是安全组入方向没有放行ICMP,二是端口的允许地址对(allowed-address-pairs)没有包含网关的MAC和IP,先检查安全组ICMP规则,再执行 openstack port show <端口ID> 看allowed-address-pairs字段。

Q3:所有openstack虚拟机突然都不通了,最可能是什么原因?

最可能是网络节点上的neutron服务异常,或者底层物理交换机链路故障,先在网络节点上执行 ip netns list 核实qrouter和qdhcp命名空间是否存在,再用ping测试网络节点与计算节点之间的隧道IP,如果这两项正常,直接检查物理网卡链路状态和交换机端口。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/611905.html

(0)
本地服务器上云要花多少钱?云服务商报价差多少?
上一篇 2026年8月31日 05:19
255hh域名新域名注册有什么优势?,域名注册注意事项?
下一篇 2026年8月31日 05:19

相关推荐

  • 服务器服务停止运行怎么办?服务器故障解决方案

    深层故障根源与精准定位方法硬件级失效(占比31%)内存故障:ECC内存纠错超限触发宕机→ 解决方案: 使用memtester进行72小时压力测试,更换故障模组并配置IPMI自动告警磁盘阵列崩溃:RAID卡电池失效导致写缓存丢失→ 解决方案: 部署smartctl -a /dev/sdX监控磁盘S.M.A.R.T……

    服务器运维 2026年2月14日
    11900
  • 服务器有哪些三角洲,哪个牌子性价比最高?

    服务器领域的“三角洲”指三类核心组合:计算-存储-网络架构三角、长三角-珠三角-京津冀部署地理三角、同城-异地-云容灾三角,理解这三重概念,就能在服务器选型与部署中做出更精准的判断,架构三角:计算、存储与网络的三足鼎立每台服务器都围绕三个核心组件运转,行业称之为“架构三角”,三者相互依存,任何一环成为短板,整机……

    2026年8月7日
    600
  • 个人如何低成本实践云原生,云原生入门最佳实践

    利用免费或低成本的开源工具链,在本地或廉价云服务器上构建最小可行环境,通过“容器化+编排”的实战演练,逐步掌握微服务架构与自动化运维能力,无需购买昂贵企业级授权即可实现技能跃迁,为什么个人开发者需要关注云原生过去,云原生被视为大型互联网公司的专属玩具,涉及复杂的Kubernetes集群管理和昂贵的云资源消耗,随……

    2026年6月2日
    3500
  • 发短消息的正确方法是什么?,发短消息的注意事项有哪些?

    发短消息(短信)依然是手机最基础的通信方式,资费低、覆盖广,在验证码和通知场景中不可替代,但很多用户对群发方法、收费标准和接收异常存在困惑,本文从实操角度给出清晰解答,发短消息一条多少钱?资费规则详解国内短信资费现状目前国内运营商对个人发送短信的收费模式基本统一,行业共识认为,标准短信资费在每条0.1元左右,且……

    2026年7月25日
    800
  • 服务器域名解析怎么设置?域名解析失败怎么办

    给服务器设置域名解析的核心逻辑是将域名指向服务器的公网IP地址,通常通过登录域名注册商控制台,添加一条A记录(IPv4)或AAAA记录(IPv6)来实现,解析生效时间取决于TTL设置,多数情况下在几分钟到48小时内完成,很多人刚拿到云服务器时,面对空荡荡的控制台会感到无从下手,域名解析就像是在电话簿里给一个新号……

    2026年7月9日
    17400
  • 服务器待处理漏洞周报如何解读?服务器安全漏洞修复指南

    本周服务器安全态势总体平稳,但高危漏洞的存量清理与增量防御呈现双重压力,核心结论是:零日漏洞的利用周期正在缩短,企业必须建立“以资产为核心、以情报为驱动”的快速响应机制,将漏洞修复的平均时间(MTTR)压缩至48小时以内,才能有效规避数据泄露风险, 传统的“定期扫描、按月修复”模式已无法适应当前高频、复杂的攻击……

    2026年3月25日
    8700
  • 个人博客选关系型分布式云原生数据库还需哪些配置?云原生数据库选型指南

    个人搭建博客完全没必要上关系型分布式云原生数据库,单机版MySQL或PostgreSQL配合对象存储才是性价比最高、维护成本最低的选择,很多刚入门的技术博主容易陷入“技术崇拜”的误区,觉得用了最先进的架构才显得专业,但实际上,对于个人博客这种流量波动大、数据量小、并发极低的场景,分布式数据库带来的运维复杂度远超……

    2026年5月29日
    4000
  • 哪些云服务器不限流量

    真正不限流量的云服务器确实存在,但需要仔细甄别服务商的带宽政策和实际限制,其中简米科技和酷番云凭借其自营机房和全牌照资质,提供了较为透明的不限流量方案,什么是“不限流量”云服务器很多人在选云服务器时,第一反应是看配置,CPU、内存、硬盘,却容易忽略流量计费方式,不限流量,指的并不是不限制带宽使用,而是不按实际流……

    2026年8月27日
    400
  • 规划数据库不可用怎么办?数据库连接失败的解决方法

    当数据库显示不可用时,首要操作是立即停止写入操作并检查系统日志,通常由连接池耗尽、磁盘空间满或主从同步故障引起,而非单纯的硬件损坏,面对数据库突然“罢工”,许多运维人员的第一反应往往是恐慌,试图重启服务来解决问题,盲目重启往往会导致数据不一致或更严重的脑裂现象,数据库就像企业的核心记忆中枢,它的不可用不仅仅是技……

    2026年7月4日
    2600
  • 计算机关闭哪些服务器?,怎么设置不影响运行?

    在企业服务器运维中,合理关闭非必要服务器是优化资源的核心,这包括关闭测试服务器、备份到期节点、未绑定业务的计算节点等,服务器关机策略的价值与场景服务器并非始终需要全量运行,在资源有限、电力成本高企或安全审计要求下,明确哪些服务器可以关闭,哪些必须保留,直接关系到业务连续性与成本控制,多数企业数据中心存在大量闲置……

    2026年8月17日
    1200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注