云计算openstack-虚拟机获取不到ip(13)

一、现象描述:

openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图:

二、分析思路:

(1)查看neutron服务状态,确保dchp服务正常运行

[email protected]:15:11~#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-7440-4080-bd75-9634687937f6 | DHCP agent         | controller | nova              | :-)   | True           | neutron-dhcp-agent        |
| 51a30db0-9525-42de-b5d8-6b04e2a13baf | Open vSwitch agent | storage    |                   | :-)   | True           | neutron-openvswitch-agent |
| 63416b42-376b-4576-b89d-12694faa2bf9 | L3 agent           | controller | nova              | :-)   | True           | neutron-l3-agent          |
| 7ce3b592-240f-4090-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-4882-a851-1c47a19ab3c1 | Metadata agent     | controller |                   | :-)   | True           | neutron-metadata-agent    |
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
[email protected]:16:24~#

(2)查看dnsmsp进程是否正常

[email protected]:48:28/var/log/neutron#ps aux | grep dnsmasq
nobody   28488  0.0  0.0  53888  1164 ?        S    21:51   0:00 dnsmasq --no-hosts --no-resolv --strict-order --except-interface=lo --pid-file=/var/lib/neutron/dhcp/1a426ffe-2bf0-4785-96a5-74402004a17b/pid --dhcp-hostsfile=/var/lib/neutron/dhcp/1a426ffe-2bf0-4785-96a5-74402004a17b/host --addn-hosts=/var/lib/neutron/dhcp/1a426ffe-2bf0-4785-96a5-74402004a17b/addn_hosts --dhcp-optsfile=/var/lib/neutron/dhcp/1a426ffe-2bf0-4785-96a5-74402004a17b/opts --dhcp-leasefile=/var/lib/neutron/dhcp/1a426ffe-2bf0-4785-96a5-74402004a17b/leases --dhcp-match=set:ipxe,175 --bind-interfaces --interface=tap2c7d9cb9-96 --dhcp-range=set:tag0,172.16.0.0,static,86400s --dhcp-option-force=option:mtu,1450 --dhcp-lease-max=65536 --conf-file= --domain=openstacklocal
root     30314  0.0  0.0 112724   988 pts/0    R+   22:48   0:00 grep --color=auto dnsmasq
[email protected]:48:52/var/log/neutron#

(3)检查ovs网桥中的 br-int 集成网桥是否有 tap设备 连接到了dchp-agent 的 namesapce上

[email protected]:16:29~#ovs-vsctl show
552eea67-4365-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: 2
            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: 1
            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"
[email protected]:16:48~#i

在dhcp命名空间中找到对应网络的 namespace 中找到 br-int 网桥上对应的 tap 设备,然后查看 ip 配置:

[email protected]:26:29/var/log/neutron#ip netns show
qrouter-3028515a-106a-4d77-b2bb-edd34ddbc7c7 (id: 1)
qdhcp-1a426ffe-2bf0-4785-96a5-74402004a17b (id: 0)
[email protected]:26:44/var/log/neutron#
[email protected]:27:14/var/log/neutron#
[email protected]:27:14/var/log/neutron#ip netns exec qdhcp-1a426ffe-2bf0-4785-96a5-74402004a17b 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
15: tap2c7d9cb9-96: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether fa:16:3e:18:16:47 brd ff:ff:ff:ff:ff:ff
    inet 172.16.199.10/16 brd 172.16.255.255 scope global tap2c7d9cb9-96
       valid_lft forever preferred_lft forever
    inet 169.254.169.254/16 brd 169.254.255.255 scope global tap2c7d9cb9-96
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe18:1647/64 scope link
       valid_lft forever preferred_lft forever
[email protected]:27:47/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

[email protected]:26:15/var/log/neutron#ip netns show
qdhcp-cb06eada-2249-46e7-bcd8-c9c07937231d (id: 2)
qrouter-3028515a-106a-4d77-b2bb-edd34ddbc7c7 (id: 1)
qdhcp-1a426ffe-2bf0-4785-96a5-74402004a17b (id: 0)

(4)查看dhcp-namespace的 ip 配置,正好是dhcp的服务ip

[email protected]:26:20/var/log/neutron#ip netns exec qdhcp-cb06eada-2249-46e7-bcd8-c9c07937231d 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
21: tap865fcb34-fc: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether fa:16:3e:ce:2f:9b brd ff:ff:ff:ff:ff:ff
    inet 192.168.168.2/24 brd 192.168.168.255 scope global tap865fcb34-fc
       valid_lft forever preferred_lft forever
    inet 169.254.169.254/16 brd 169.254.255.255 scope global tap865fcb34-fc
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fece:2f9b/64 scope link
       valid_lft forever preferred_lft forever
[email protected]:26:54/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。

原文地址:https://www.cnblogs.com/cloudhere/p/10987195.html

时间: 2024-10-13 12:31:32

云计算openstack-虚拟机获取不到ip(13)的相关文章

openstack虚拟机获取不到ip

一.现象描述: openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图: 二.分析思路: (1)查看neutron服务状态,确保dchp服务正常运行 [email protected]:15:11~#neutron agent-list neutron CLI is deprecated and will be removed in the future. Use openstack CLI instea

linux虚拟机获取不到ip的解决方法 --

问题描述: 在win10操作系统上,安装了centos7 虚拟机,安装后,用wifi网络可以获取ip,但是切换到手机热点或有线网络就获取不到ip 解决办法: 按照一般的修改ONBOOT =yes, 然后service netowrk restart重启,可能会生效,但是我本地不行 所以上网看其他办法,可以手动指定ip: 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/10733723.html

APUE之通过popen,fputc等函数获取本虚拟机网卡eth0的IP

任务:unix环境通过c程序获取本虚拟机网卡eth0的IP. 总结: 1. 标准I/O库函数相对于系统调用的函数多了个缓冲区(,buf),安全性上通过buf 防溢出. 2.用system函数输出是标准输出,进一步理解fork函数和exec函数重新开启一个进程运行程序: 3.printf 这类输出函数中" "若包含"记得要换成转义字符\"            资料链接:   http://blog.csdn.net/ce123_zhouwei/article/det

虚拟机网卡桥接centos系统获取不到IP

今天把虚拟机跟新到新的版本,发现虚拟机网卡桥接centos系统获取不到IP!在想更新过后有可能是恢复初始默认的了!所以就修改一下 进去编辑一下: 重启系统就可以了!

openstack虚拟机修改IP地址

1).查找虚拟机的网络端口 mysql> use neutron; mysql> select * from ports where device_id="3ab73261-82ce-4b9a-9a1c-519624e19dc2"; +----------------------------------+--------------------------------------+------+--------------------------------------+-

linux虚拟机正常安装完成后获取不到IP的解决办法-网卡

通常正常情况下安装完linux虚拟机,只需要使用桥接并修改配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,将如下参数值改为如下: ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp 然后重启网络服务即可:service network restart 家里的笔记本用这种方式确实可行,可是带到公司后发现就获取不到IP了,而且也重启不了网卡,原来是因为路由器的dhcp功能有问题,如果路由器不调整,此种方式肯定是行不通了.

别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(5)

八.KVM 这一步,像virsh start命令一样,将虚拟机启动起来了.虚拟机启动之后,还有很多的步骤需要完成. 步骤38:从DHCP Server获取IP 有时候往往数据库里面,VM已经有了IP,很多人就认为虚拟机就得到了IP,可是总是连不进去,不知从何入手,其实界面上能看到VM的IP和VM真正从DHCP获得IP是两回事情. 步骤39:cloud-init连接Metadata Server,并注入Key Metadata Server有很复杂的架构,cloud-init连接Metadata

十二、openstack虚拟机创建流程

一.创建虚拟机拓扑图 二.流程讲解 虚拟机创建过程: 界面或命令行通过RESTful API向keystone获取认证信息. keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求. 界面或命令行通过RESTful API向nova-api发送一个boot instance的请求(携带auth-token). 4.   nova-api接受请求后向keystone发送认证请求,查看token是否为有效用户和token. keystone验证token是否有效,如有效

云计算openstack共享组件-neutron网络服务7

一.虚拟机获取 ip: 用 namspace 隔离 DHCP 服务 Neutron 通过 dnsmasq 提供 DHCP 服务,而 dnsmasq 通过 Linux Network Namespace 独立的为每个 network 服务隔离 在二层网络上,VLAN 可以将一个物理交换机分割成几个独立的虚拟交换机.类似地,在三层网络上,Linux network namespace 可以将一个物理三层网络分割成几个独立的虚拟三层网络. 每个 namespace 都有自己独立的网络栈,包括 rout