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

最新文章

  1. json简单使用
  2. 转载:jQuery实现返回顶部功能
  3. php学习笔记-基础篇
  4. fir.im Weekly - 2017 年必须了解的 iOS 开源库
  5. 【Salvation】——关卡功能&数据库基础实现
  6. Arduino入门笔记(5):1602液晶实验(实现时钟)
  7. 用c# 开发html5的尝试,试用bridge.net
  8. Django中views笔记
  9. 腾讯机试题 AcWing 603 打怪兽
  10. 高级组件——工具栏JToolBar
  11. 【repost】前端学习总结(二十三)——前端框架天下三分:Angular React 和 Vue的比较
  12. GridEh 当前行
  13. HDU 4751 Divide Groups (2013南京网络赛1004题,判断二分图)
  14. 铁乐学python_day22_面向对象编程4
  15. ASM配置OGG
  16. Linux 获取网关地址
  17. The Largest Clique UVA - 11324( 强连通分量 + dp最长路)
  18. RabbitMQ消息分发轮询和Message Acknowledgment
  19. 【leetcode 简单】第四十九题 颠倒二进制位
  20. Spartan-6 FPGA Configuration

热门文章

  1. [备忘]Notification的实用
  2. Android(java)学习笔记201:JNI之helloword案例(利用NDK工具)
  3. Importing Objective-C into Swift
  4. cookie存储位置
  5. windows sdk编程禁止窗体最大化最小化
  6. 转:函数调用的区别:_cdecl以及_stdcall
  7. velocity(vm)模板引擎基本语法
  8. Python机器学习——Agglomerative层次聚类
  9. x264介绍
  10. Mysql:sql语句