neutron dhcp 采用dnsmasq服务来实现。和传统的 dhcp 一样, dhcp请求也分为4步

The client sends a discover (“I’m a client at MAC address 08:00:27:b9:88:74, I need an IP address”)
The server sends an offer (“OK 08:00:27:b9:88:74, I’m offering IP address 10.10.0.112”)
The client sends a request (“Server 10.10.0.131, I would like to have IP 10.10.0.112”)
The server sends an acknowledgement (“OK 08:00:27:b9:88:74, IP 10.10.0.112 is yours”)

dnsmasq把log写入系统log,正常的log如下

Aug 24 14:52:37 controller100 dnsmasq[6299]: read /var/lib/neutron/dhcp/b5a8fe96-77c7-443c-8a2b-a862fd016301/addn_hosts - 3 addresses
Aug 24 14:52:37 controller100 dnsmasq-dhcp[6299]: read /var/lib/neutron/dhcp/b5a8fe96-77c7-443c-8a2b-a862fd016301/host
Aug 24 14:52:37 controller100 dnsmasq-dhcp[6299]: read /var/lib/neutron/dhcp/b5a8fe96-77c7-443c-8a2b-a862fd016301/opts
Aug 24 14:52:48 controller100 dnsmasq-dhcp[6299]: DHCPDISCOVER(ns-b8d4df6d-14) fa:16:3e:11:85:5d
Aug 24 14:52:48 controller100 dnsmasq-dhcp[6299]: DHCPOFFER(ns-b8d4df6d-14) 192.168.1.4 fa:16:3e:11:85:5d
Aug 24 14:52:48 controller100 dnsmasq-dhcp[6299]: DHCPREQUEST(ns-b8d4df6d-14) 192.168.1.4 fa:16:3e:11:85:5d
Aug 24 14:52:48 controller100 dnsmasq-dhcp[6299]: DHCPACK(ns-b8d4df6d-14) 192.168.1.4 fa:16:3e:11:85:5d host-192-168-1-4

后面的4步是DHCP请的过程。 第一步

 read /var/lib/neutron/dhcp/b5a8fe96-77c7-443c-8a2b-a862fd016301/addn_hosts - 3 addresses

是查看已经分配的ip(包括这次即将分配的ip)

/var/lib/neutron/dhcp/b5a8fe96-77c7-443c-8a2b-a862fd016301/host

该文件记录了ip 和 mac的映射

/var/lib/neutron/dhcp/b5a8fe96-77c7-443c-8a2b-a862fd016301/opts

该文件记录了dhcp服务器的地址等

我们做一个实验,禁用compute的网卡的混杂模式。这样vm发出的package,在回复的时候就无法到达vm,因为host机器的网卡会扔掉该package。 这时的dhcp log如下:

Aug 24 14:56:34 controller100 dnsmasq[6299]: read /var/lib/neutron/dhcp/b5a8fe96-77c7-443c-8a2b-a862fd016301/addn_hosts - 4 addresses
Aug 24 14:56:34 controller100 dnsmasq-dhcp[6299]: read /var/lib/neutron/dhcp/b5a8fe96-77c7-443c-8a2b-a862fd016301/host
Aug 24 14:56:34 controller100 dnsmasq-dhcp[6299]: read /var/lib/neutron/dhcp/b5a8fe96-77c7-443c-8a2b-a862fd016301/opts
Aug 24 14:56:46 controller100 dnsmasq-dhcp[6299]: DHCPDISCOVER(ns-b8d4df6d-14) fa:16:3e:d9:b7:42
Aug 24 14:56:46 controller100 dnsmasq-dhcp[6299]: DHCPOFFER(ns-b8d4df6d-14) 192.168.1.5 fa:16:3e:d9:b7:42
Aug 24 14:57:46 controller100 dnsmasq-dhcp[6299]: DHCPDISCOVER(ns-b8d4df6d-14) fa:16:3e:d9:b7:42
Aug 24 14:57:46 controller100 dnsmasq-dhcp[6299]: DHCPOFFER(ns-b8d4df6d-14) 192.168.1.5 fa:16:3e:d9:b7:42
Aug 24 14:58:46 controller100 dnsmasq-dhcp[6299]: DHCPDISCOVER(ns-b8d4df6d-14) fa:16:3e:d9:b7:42
Aug 24 14:58:46 controller100 dnsmasq-dhcp[6299]: DHCPOFFER(ns-b8d4df6d-14) 192.168.1.5 fa:16:3e:d9:b7:42

可以看到只有dhcp discover和dhcp offer。但是offer无法继续到达vm,所以request 就发不出来,自然就没有ack

neutron dhcp的更多相关文章

  1. neutron dhcp ha 实验

    4个节点(controller, network,2 compute nodes) 1.0   on the network node 1.1 set –I ‘s/start] on/#start\ ...

  2. Neutron :默认通过 dnsmasq 实现 DHCP 功能----Namespace

    Neutron 提供 DHCP 服务的组件是 DHCP agent. DHCP agent 在网络节点运行上,默认通过 dnsmasq 实现 DHCP 功能.   配置 DHCP agent DHCP ...

  3. 理解 neutron(15):Neutron linux-bridge-agent 创建 linux bridge 的简要过程

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  4. 配置 DHCP 服务 - 每天5分钟玩转 OpenStack(89)

    前面章节我们看到 instance 在启动过程中能够从 Neutron 的 DHCP 服务获得 IP,本节将详细讨论其内部实现机制. Neutron 提供 DHCP 服务的组件是 DHCP agent ...

  5. Neutron 理解 (1): Neutron 所实现的虚拟化网络 [How Netruon Virtualizes Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  6. Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 [Netruon Open vSwitch + VLAN Virutal Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  7. Neutron 理解 (3): Open vSwitch + GRE/VxLAN 组网 [Netruon Open vSwitch + GRE/VxLAN Virutal Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  8. Neutron 理解 (4): Neutron OVS OpenFlow 流表 和 L2 Population [Netruon OVS OpenFlow tables + L2 Population]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  9. Neutron 理解(5):Neutron 是如何向 Nova 虚机分配固定IP地址的 (How Neutron Allocates Fixed IPs to Nova Instance)

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

随机推荐

  1. java 之冒泡排序

    冒泡排序:可以想象成煮开水,气泡在瓶底的时候是比较小的,到达水面的时候达到最大. 冒泡排序的思想:先确定是升序还是降序,这里升序为例.每两个相邻的数字进行比较,前一个数字比后面一个数字大,就将两个数字 ...

  2. 把Scheme翻译成Java和C++的工具

    一.为什么要写这个工具? 公司内容有多个项目需要同一个功能,而这些项目中,有的是用Java的,有的是用C++的,同时由于某些现实条件限制,无法所有项目都调用统一的服务接口(如:可能运行在无网络的情况下 ...

  3. hibernate 批量插入数据

    如题,有两种方法 1)使用FLUSH 2)使用JDBC 分别来解释: 1)hibernate在进行数据库操作的时候,都要有事务支持的.可能你曾遇到过,没有加事务,程序会报错的情况. 而事务每次提交的时 ...

  4. Elasticsearch の 查询类型

    查询类型SearchType Es中一共有四种查询类型:QUERY_AND_FETCH.QUERY_THEN_FETCH.DFS_QUERY_AND_FETCH.DFS_QUERY_THEN_FETC ...

  5. python学习日记-01

    一. 熟悉 在正式介绍python之前,了解下面两个基本操作对后面的学习是有好处的: (1)基本的输入输出 可以在Python中使用+.-.*./直接进行四则运算. >>> 1+3* ...

  6. Solaris 默认Shell 修改

    ssh登陆远程的solaris 10,backspace出现乱码. ssh登陆远程的solaris 10默认Shell不是bash 把solaris10的shell环境改为bash就行 dev13% ...

  7. Linux修改启动界面、分辨率

    初识Linux 初识Linux(Centos 7.x),积累一些小技巧. 修改命令行界面的分辨率 # 备份配置文件 # 有些系统路径是/boot/grub...或者/boot/grub/menu.ls ...

  8. java 常用集合类型--以及其特性

    1:集合:   (1) Collection(单列集合)        List(有序,可重复)            ArrayList                底层数据结构是数组,查询快,增 ...

  9. Django中配置自定义日志系统

  10. NRF24L01注意点

    nrf24L01被设置为接收模式后,可通过6个不同的数据通道(data pipe)接收数据. 每个数据通道都有一个唯一的地址但是各数据通道的频率是相同的.这意味着可以有6个被配置成发送状态的nRF24 ...