Neutron DHCP-Agent问题分析定位(1)
作者:闫兴安
1 DHCP问题定位过程
本文以dhcp节点残留tap口为切入点,描述dhcp agent问题定位方法,梳理代码流程,通过一步一步测试,找到复现问题的步骤,并最终找到问题的根本原因及解决办法。本文最后对该问题进行了总结。
1.1 问题简述
如下图所示,在一个dhcp namespace里,有多个tap口。
1.2 环境描述
出问题的环境是K版代码
总共三个控制/网络节点,分别都起dhcp-agent服务。
配置上,每个网络分配两个dhcp port。
1.3 问题定位
主要以网络ID d427e056-f4df-4ebf-bda4-4b0e35b39d78 进行分析。
下面是详细的定位过程。
1.3.1 查看namespace里的端口
在网络节点上,从namespace里查看端口状态。
这里可以看到,一个namespace里有两个tap口。
期望现象:
一个namespace里只有一个tap。
同一个网络在各个网络节点上的tap口上的IP地址不重复。
1.3.2 查看dhcp配置
在控制节点上查看配置。
1.3.3 查看Neutron里的端口、子网
在控制节点上,查看neutron里的数据,包括:
1) 有哪些dhcp port。
2) 每个dhcp port的ip,绑定状态,绑定主机名。
期望现象:
端口有绑定到host,而且没有出现binding_failed。
1.3.4 查看网络绑定的agent
查看网络调度到的agent:
这个agent Host应该与port上的binding host一致。
1.3.5 查看dnsmasq进程及绑定的IP地址
在网络节点上,查看dnsmasq进程状态,绑定的IP地址。结合Neutron里的数据,找出哪些是多余的dnsmasq,哪些是多余的tap口。
总结dhcp端口状态如下:
Dhcp Port IP |
10.133.36.2 |
10.133.36.3 |
tap口名 |
tap18b68e7c-00 |
tap62080981-f5 |
网络节点1 |
无 |
有 |
网络节点2 |
有(应该无) |
有 (应该无) |
网络节点3 |
有 |
有 (应该无) |
绑定的节点 |
网络节点3 |
网络节点1 |
是否绑定出错 |
否 |
是 |
dnsmasq进程所在节点 |
网络节点2和3 |
网络节点1 |
tap端口所在节点 |
网络节点2和3 |
网络节点1、2、3都有 |
1.3.6 查看tap是否在br-int里
网络节点上,查看tap口是否在br-int里。
1.3.7 查看端口UUID
网络节点上,在OVSDB里,查看端口绑定的UUID。
1.3.8 查看dhcp-agent承载的网络
查看DHCP Agent ID:
查看每个dhcp-agent承载的网络:
yfq-vnet-ctl-9-74:
都是26个,数目一致。
yfq-vnet-ctl-9-89:
总共10个。
总共27个。
这个节点上neutron db中调度的网络数据和实际承载的网络数目不一致。
yfq-vnet-ctl-9-104:
总共24个。
总共24个。
Neutron DHCP-Agent问题分析定位(1)相关推荐
- DHCP agent服务状态XXX
在查看neutron代理服务时发现DHCP agent没有成功 [root@controller ~]# neutron agent-list +--------------------------- ...
- Neutron DHCP-Agent问题分析定位(2)
作者:闫兴安 1.3.9 哪些网络有问题 for ns in `ipnetns`; do echo $ns, `ip netns exec $ns ifconfig |grep tap`; done ...
- PHP 内存泄漏分析定位
转载地址:https://mp.weixin.qq.com/s/98D_VtkFEM5bZsu9cazggg? 目录 场景一 程序操作数据过大 场景二 程序操作大数据时产生拷贝 场景三 配置不合理系统 ...
- 7 php 内存泄漏_PHP 内存泄漏分析定位
引用前言 本文开始撰写时我负责的项目需要用php开发一个通过 Socket 与服务端建立长连接后持续实时上报数据的常驻进程程序,在程序业务功能开发联调完毕后实际运行发送大量数据后发现内存增长非常迅速, ...
- 7 php 内存泄漏_PHP内存泄漏分析定位
说明:本文来自作者 邹毅 在 GitChat 上分享「 PHP 内存泄漏分析定位」 目录 场景一 程序操作数据过大 场景二 程序操作大数据时产生拷贝 场景三 配置不合理系统资源耗尽 场景四 无用的 ...
- idea debug教程启用Debug模式可以分析定位异常发生的位置
在现在的开发中,我们经常采用Debug来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化.通常我们也可以启用Debug模式来跟 ...
- 达梦 DM 执行SQL报字符串截断如何分析定位/超长文本截取
达梦 DM 执行SQL报字符串截断如何分析定位/超长文本截取 DM数据库报字符串截断 1 .执行INSERT时报错 一般此类问题是由于目标表存在一个(或多个)字段长度不够,导致插入失败.重点关注CHA ...
- 遇到bug我们如何分析定位?
前言:日常工作中,每天可能都会遇到不同的bug,有些刚入行的测试喜欢不加分析就直接甩给开发去解决.开发比较闲还好,如果手头工作比较多,就容易烦.甚至有可能是后端的问题,但是你却把问题丢给了前端,这种事 ...
- Worm.Win32.Agent.t分析
Worm.Win32.Agent.t分析 出处:安天CERT 病毒标签: 病毒名称: Worm.Win32.Agent.t 病毒类型: 蠕虫类 文件 MD5: C4BFC29229607CBEA877 ...
最新文章
- java鼠标事件获得键盘值_请问JAVA怎么模拟鼠标和键盘事件[200分]
- 人员信息管理系统练习
- Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
- Laravel 5.2问题-----postman进api的post请求,为什么出现Forbidden?
- Linux7/Redhat7/Centos7 安装Oracle 12C_系统安装_01
- java多线程方式轮询,深入理解JAVA多线程之线程间的通信方式
- 关于java中判断字符串相等==和equal 详解
- PXE(preboot execute environment)
- php-5.6.26源代码 - hash存储结构 - hash算法
- ACM 竞赛高校联盟 练习赛 第六场 光头强的强迫症(线段树)
- 手机qq2008触屏版_手机版卖家中心在哪里
- java俄罗斯方块简单代码_Java实现简易俄罗斯方块
- html+css+js实现的3D魔方小游戏源代码
- Unity移动---朝向并移动到鼠标点击位置
- android远程控制电视,手机如何远程控制电视
- 阿里云 mysql 命令_是mysql命令
- 在线JSON转TSV工具
- 服务器显示屏 超出工作频率范围,win7显示器超出工作频率范围怎么解决
- 【机器学习】Scikit-Learn数据预处理文档翻译+笔记记录 - 1
- 研究生、本科生Java开发、后台、软件工程师秋招春招经验