云计算openstack——虚拟机获取不到ip(13)
一、现象描述:
openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图:


二、分析思路:
(1)查看neutron服务状态,确保dchp服务正常运行
root@controller22::~#neutron agent-list
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
| id | agent_type | host | availability_zone | alive | admin_state_up | binary |
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
| 3812cb30---bd75-9634687937f6 | DHCP agent | controller | nova | :-) | True | neutron-dhcp-agent |
| 51a30db0--42de-b5d8-6b04e2a13baf | Open vSwitch agent | storage | | :-) | True | neutron-openvswitch-agent |
| 63416b42-376b--b89d-12694faa2bf9 | L3 agent | controller | nova | :-) | True | neutron-l3-agent |
| 7ce3b592-240f--bf09-9a7ecbfa7d3c | Open vSwitch agent | controller | | :-) | True | neutron-openvswitch-agent |
| 851ccdd9-ff14-4e8f-971c-9343787ef056 | Open vSwitch agent | compute | | :-) | True | neutron-openvswitch-agent |
| 8c458dca-a306--a851-1c47a19ab3c1 | Metadata agent | controller | | :-) | True | neutron-metadata-agent |
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
root@controller22::~#
(2)查看dnsmsp进程是否正常
root@controller22::/var/log/neutron#ps aux | grep dnsmasq
nobody 0.0 0.0 ? S : : dnsmasq --no-hosts --no-resolv --strict-order --except-interface=lo --pid-file=/var/lib/neutron/dhcp/1a426ffe-2bf0--96a5-74402004a17b/pid --dhcp-hostsfile=/var/lib/neutron/dhcp/1a426ffe-2bf0--96a5-74402004a17b/host --addn-hosts=/var/lib/neutron/dhcp/1a426ffe-2bf0--96a5-74402004a17b/addn_hosts --dhcp-optsfile=/var/lib/neutron/dhcp/1a426ffe-2bf0--96a5-74402004a17b/opts --dhcp-leasefile=/var/lib/neutron/dhcp/1a426ffe-2bf0--96a5-74402004a17b/leases --dhcp-match=set:ipxe, --bind-interfaces --interface=tap2c7d9cb9- --dhcp-range=set:tag0,172.16.0.0,static,86400s --dhcp-option-force=option:mtu, --dhcp-lease-max= --conf-file= --domain=openstacklocal
root 0.0 0.0 pts/ R+ : : grep --color=auto dnsmasq
root@controller22::/var/log/neutron#
(3)检查ovs网桥中的 br-int 集成网桥是否有 tap设备 连接到了dchp-agent 的 namesapce上
root@controller22::~#ovs-vsctl show
552eea67--410a-b683-644af569c52d
Manager "ptcp:6640:127.0.0.1"
is_connected: true
Bridge br-ex
Port "eth2"
Interface "eth2"
Port br-ex
Interface br-ex
type: internal
Port "qg-91819abf-e1"
Interface "qg-91819abf-e1"
type: internal
Bridge br-int
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
Port "tap2c7d9cb9-96"
tag:
Interface "tap2c7d9cb9-96"
type: internal
Port br-int
Interface br-int
type: internal
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Port "qr-4056447b-ea"
tag:
Interface "qr-4056447b-ea"
type: internal
Bridge br-tun
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
Port "vxlan-c0a8fe97"
Interface "vxlan-c0a8fe97"
type: vxlan
options: {df_default="true", in_key=flow, local_ip="192.168.254.150", out_key=flow, remote_ip="192.168.254.151"}
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
Port br-tun
Interface br-tun
type: internal
ovs_version: "2.9.0"
root@controller22::~#i
在dhcp命名空间中找到对应网络的 namespace 中找到 br-int 网桥上对应的 tap 设备,然后查看 ip 配置:
root@controller22::/var/log/neutron#ip netns show
qrouter-3028515a-106a-4d77-b2bb-edd34ddbc7c7 (id: )
qdhcp-1a426ffe-2bf0--96a5-74402004a17b (id: )
root@controller22::/var/log/neutron#
root@controller22::/var/log/neutron#
root@controller22::/var/log/neutron#ip netns exec qdhcp-1a426ffe-2bf0--96a5-74402004a17b ip a
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN group default qlen
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
valid_lft forever preferred_lft forever
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: tap2c7d9cb9-: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN group default qlen
link/ether fa::3e::: brd ff:ff:ff:ff:ff:ff
inet 172.16.199.10/ brd 172.16.255.255 scope global tap2c7d9cb9-
valid_lft forever preferred_lft forever
inet 169.254.169.254/ brd 169.254.255.255 scope global tap2c7d9cb9-
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe18:/ scope link
valid_lft forever preferred_lft forever
root@controller22::/var/log/neutron#
三、定位问题:
通过以上排查思路分析,br-int 上是有 tap设备 连接到了dhcp-namespace 中,但却是外部网络的dhcp服务ip,没有发现虚拟机所连接的192.168.168.0/24的dhcp-namespace
四、故障处理流程:
(1)找到对应网络的subnet,把 dchp 功能启用,打对勾

(2)然后到 subnet 中查看时候有 dhcp 端口且有ip,并检查 dhcp-namespace 中的 tap设备是否有了ip

(3)在次查看namespace发现多了一个dhcp-namespace
root@controller23::/var/log/neutron#ip netns show
qdhcp-cb06eada--46e7-bcd8-c9c07937231d (id: )
qrouter-3028515a-106a-4d77-b2bb-edd34ddbc7c7 (id: )
qdhcp-1a426ffe-2bf0--96a5-74402004a17b (id: )
(4)查看dhcp-namespace的 ip 配置,正好是dhcp的服务ip
root@controller23::/var/log/neutron#ip netns exec qdhcp-cb06eada--46e7-bcd8-c9c07937231d ip a
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN group default qlen
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
valid_lft forever preferred_lft forever
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: tap865fcb34-fc: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN group default qlen
link/ether fa::3e:ce:2f:9b brd ff:ff:ff:ff:ff:ff
inet 192.168.168.2/ brd 192.168.168.255 scope global tap865fcb34-fc
valid_lft forever preferred_lft forever
inet 169.254.169.254/ brd 169.254.255.255 scope global tap865fcb34-fc
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fece:2f9b/ scope link
valid_lft forever preferred_lft forever
root@controller23::/var/log/neutron#
(5)重启虚拟机虚拟机,发现获取到 ip 了

五、总结
在创建虚拟机下发请求后,dnsmasq进程会给虚拟机分配好mac地址和ip地址,并写入到/var/lib/neutron/dhcp/network-id 目录下的host文件中。虚拟机在内网中发送广播来获取ip的过程中,dnsmasq 会监听到然后将host文件中的对应ip通过dchp-namespace分配给虚拟机。
所以,在虚拟机获取ip过程中,必须虚拟机发出的包可以到达dhcp-namespace 经过的虚拟网络设备都存在且正常工作。
如果没有在subnet中开启上述的dhcp功能,那就少了一个对应网络的name-sapce dhcp服务了,所以虚拟机获取不到 ip。
云计算openstack——虚拟机获取不到ip(13)的更多相关文章
- openstack虚拟机获取不到ip
一.现象描述: openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图: 二.分析思路: (1)查看neut ...
- linux虚拟机获取不到ip的解决方法 --
问题描述: 在win10操作系统上,安装了centos7 虚拟机,安装后,用wifi网络可以获取ip,但是切换到手机热点或有线网络就获取不到ip 解决办法: 按照一般的修改ONBOOT =yes, 然 ...
- OpenStack中虚拟机获取不到IP地址的解决方法
OpenStack源码交流群: 538850354 系统环境: centos6.5 + icehouse多节点部署 问题描述: 使用测试镜像cirros,虚拟机实例可以正常启动,但是不能从IP池中获取 ...
- 云计算与OpenStack(虚拟机Nova篇)
<云计算与OpenStack(虚拟机Nova篇)> 基本信息 作者: 伯龙 程志鹏 张杰 出版社:电子工业出版社 ISBN:9787121201202 上架时间:2013-8-5 出版日期 ...
- 云计算OpenStack---虚拟机获取不到ip(12)
一.现象描述 openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图: 二.分析 1.查看neutron服务 ...
- linux虚拟机正常安装完成后获取不到IP的解决办法
通常正常情况下安装完linux虚拟机,只需要使用桥接并修改配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,将如下参数值改为如下: ONBOOT=yes NM ...
- java获取本机ip(排除虚拟机等一些ip)最终解,总算找到方法了
本文参考https://blog.csdn.net/u011809209/article/details/77236602 本文参考https://blog.csdn.net/yinshuomail/ ...
- 获取本机的ip地址(排除虚拟机,蓝牙等ip)
项目中遇到了要获取本地ip的需求,网上查找资料遇到很多坑,很多Java获取本机ip地址的方法要么是根本获取不到,要么是获取的有问题. 网上常见的方法如下 InetAddress.getLocalHos ...
- 虚拟机Linux下一直获取不到ip怎么办
虚拟机Linux下一直获取不到ip怎么办 Ifconfig -a 只显示了本地的ip127.0.0.1 和另一个eth1 但是找不到ip地址. 需要做的是: 申请ipdhclient eth1 另外释 ...
随机推荐
- 非确定性有穷状态决策自动机练习题Vol.3 D. Dp搬运工3
非确定性有穷状态决策自动机练习题Vol.3 D. Dp搬运工3 题目描述 给定两个长度为 \(n\) 的排列,定义 \(magic(A,B)=∑_{i=1}^nmax(Ai,Bi)\) . 现在给定 ...
- 笔记:Linux下软件的安装、CentOS更新yum源、LAMP环境搭建、kali软件管理
一.Linux下软件的安装 方式:yum源 / rpm /源码安装 1.yum:(帮助管理员解决依赖关系) yum是通过分析rpm的包头数据后,根据各种软件的相关性质做出属性相对应的解决方案,然后可以 ...
- CentOS 7.3安装指南
下载CentOs 7.3 1.ISO 镜像启动完成后,你机器上会显示如下首屏.在菜单中选择 “Install CentOS 7”并按下回车继续. 2.在安装镜像加载到内存完成后,会显示一个欢迎页面.选 ...
- Navicat15破解+网盘位置
百度网盘Navicat.15位置 链接:https://pan.baidu.com/s/1Vn0Qnt8IUA37a-p4hAnk5g 提取码:clq3 1.百度网盘下载完后,点这个安装Navicat ...
- linux驱动之模块化编程
今天刚开始学习linux驱动的编写.在网上开了许多网友的博客,感觉比较好的摘抄下来,以便以后忘记可以随时查看.下面是摘抄文章的地址,非常感谢他们. http://blog.chinaunix.net/ ...
- nvm -- node 多版本管理器
Node.js 越来越热,应用的场景也越来越多. 在开发中,我们可能同时在进行多个 node 项目,而这些不同的项目所使用的 node 版本又是不一样的,或者是要用更新的 node 版本进行试验和学习 ...
- Linux下启动、关闭SVN服务
1.命令:ps -ef|grep svnserve,查看SVN是否允许,执行如下: 2.命令:svnserve -d -r /home/svn,启动SVN,/home/svn是SVN安装路径,执行如下 ...
- Docker 安装及配置镜像加速
Docker 版本 随着 Docker 的飞速发展,企业级功能的上线,更好的服务意味着需要支付一定的费用,目前 Docker 被分为两个版本: community-edition 社区版 enterp ...
- in文件注意事项及详细解释(转载)
转载自:https://www.cnblogs.com/sysu/p/10817315.html 和 https://www.cnblogs.com/panscience/p/4953940.h ...
- 2020重新出发,MySql基础,MySql视图&索引&存储过程&触发器
@ 目录 视图是什么 视图的优点 1) 定制用户数据,聚焦特定的数据 2) 简化数据操作 3) 提高数据的安全性 4) 共享所需数据 5) 更改数据格式 6) 重用 SQL 语句 MySQL创建视图 ...