故障-因为MAC地址冲突造成的故障
1、问题分析与解决
1.1 症状与起因
问题症状: 访问卡慢,负载并不高
起因:
笔者有一部分物理机做了虚拟化,由于体量小就直接通过命令行工具创建,在创建时并没有通过kvm的clone命令,而是手工修改一些属性,所以就造成了产生了重复的MAC地址。
虽然问题是一个很low的问题,但是中间还是有许多反思地方,所以在这里记录一下。
2.2 排查与修复
在排查思路前,说一下角色:
- 目标虚拟机:192.168.100.30
- 搭载虚拟机的物理机:192.168.101.216
- 客户机器:192.168.100.21
- 冲突虚拟机:192.168.100.25
当时发现问题是SSH连接卡顿、慢,直接对SSH进行调优后无果,最终发现如果直接通过VNC连接目标虚拟机则没有影响,通过搭载虚拟机的物理机访问也没有影响,客户机器到搭载虚拟机的物理机访问也正常,这真的是难办了;随后拿出网络神器tcpdump直接进行抓包查看,抓包的思路如下:
- 客户机器抓包:主要查看数据包发出时间;
- 搭载虚拟机的物理机抓包:主要查看数据包转发情况;
- 目标虚拟机抓包:查看包接收情况;
抓包命令如下:
tcpdump ip host 192.168.100.30
最后发现异常,目标虚拟机比其他节点内机器慢2s,最终同步时间发现依然无果。
笔者之前遇到过,因配置同样IP的客户端造成网络抢占也会产生这样的原因,但是经过测试无果;当时顺着上面这个思路往下走IP不重复,那如果是MAC重复呢?
捕捉该网段内所有的存活主机的MAC地址,这里我使用Linux + nmap扫描的方式,nmap扫描如下:
[root@mdw ~]# nmap -sS 192.168.100.0/23
Starting Nmap 6.40 ( http://nmap.org ) at 2018-11-13 17:54 CST
..... 省略
然后通过过滤系统mac地址表,过滤目标问题主机的mac地址:
[root@mdw ~]# egrep "52:54:00:0c:1d:f5" /proc/net/arp
192.168.100.30 0x1 0x2 52:54:00:0c:1d:f5 * eth0
192.168.100.25 0x1 0x2 52:54:00:0c:1d:f5 * eth0
果然,是我们的mac地址冲突了。
2、理论分析与改善
2.1 为什么MAC地址冲突会造成这种问题?
摘录百度百科中MAC地址的作用:
谈起MAC地址,不得不说一下IP地址。IP地址工作在OSI参考模型的第三层网络层。两者之间分工明确,默契合作,完成通信过程。IP地址专注于网络层,将数据包从一个网络转发到另外一个网络;而MAC地址专注于数据链路层,将一个数据帧从一个节点传送到相同链路的另一个节点。
在一个稳定的网络中,IP地址和MAC地址是成对出现的。如果一台计算机要和网络中另一外计算机通信,那么要配置这两台计算机的IP地址,MAC地址是网卡出厂时设定的,这样配置的IP地址就和MAC地址形成了一种对应关系。在数据通信时,IP地址负责表示计算机的网络层地址,网络层设备(如路由器)根据IP地址来进行操作;MAC地址负责表示计算机的数据链路层地址,数据链路层设备(如交换机)根据MAC地址来进行操作。IP和MAC地址这种映射关系由ARP(Address Resolution Protocol,地址解析协议)协议完成 .............
每次看到这种专业术语我就头疼,把一个简单的事情用一大堆理论知识描述的晦涩难懂。那么我们可以试着这样理解比如日常生活中我们大家都会使用地图什么的APP, 当我们输入到达的目的地之后,地图会给出你的线路,我们可以理解为源IP地址与目标IP地址,这有和MAC地址有啥关系? 我们到达目的地是直接飞过去?并不是我们需要一个路线一个路线走,所以MAC地址可以表示下一个站点地址。
网络是一个域与域的组合产生的,而MAC地址通常用在网段内部使用;理论上MAC地址是不会冲突的,但是也存在个例,比如我们上面的情况。
理解了上面之后我们就可以理解为什么我们获取MAC只扫描当前网段了吧。所以当突然有两个MAC地址相同的站点我们的网络包就蒙了,你忽悠谁呢,所以有了后续的一系列问题。
2.2 反思改善
在KVM虚拟创建尽量使用工具来搞,但是非常情况下确实不允许,那么最好用MAC地址生成起来完成。
推荐一款在线的MAC生成器: http://www.ab126.com/web/2907.html
故障-因为MAC地址冲突造成的故障的更多相关文章
- 不是充许的静态以太网地址,它与vmware保留的mac地址冲突
不是充许的静态以太网地址,它与vmware保留的mac地址冲突 只需修改vxm文件即可. 第一部,打开vmw的镜像位置,如图. 点击后,打开硬盘,如下 把这个vmx结尾的文件下载,在本地编辑,可用tx ...
- CAN网络上新增加的设备与网络上已有设备MAC地址冲突的软件解决方案
已知 1号的CAN节点的地址是0x1f 2号的CAN 节点的地址是0x1f 要达到的要求是 假设 网络上 CAN1 节点已经工作了,我现在需要在网络上接入CAN2节点. 那么CAN2节点首次上电的时候 ...
- 自定义虚拟机MAC地址 | 它与 VMware 预留的 MAC 冲突 解法
https://blog.csdn.net/wangrui1573/article/details/82056020 问题:我想给VMware ESXi上的一台虚拟机分配一个静态的MAC地址.然而当我 ...
- 关于mac地址的一点感想
因为怕mac地址冲突导致环路影响,所以修改了本地设备的mac地址.地址修改为 77:77:77:00:22:11, 结果导致 wlan0 下发不下来. 查看配置选项/etc/config/wirele ...
- Linux 生成随机mac地址,并固化到本地
前言: 将Mac地址随机化并固化到本地可以有效避免同一个网络内,mac地址冲突导致的网络阻塞问题. 以下是有关的方法: 1.使用$RANDOM和md5sum(嵌入式无需移植其他软件的优秀可选方案) M ...
- 版本管理_svn_检出_更新_提交_本机 MAC 地址_冲突
版本管理 git svn [subversion] 实现集中式的版本控制工具软件 来源于最初的工程图纸. 需求: 备份还原 协同修改 权限控制 弊端:集中式(管理方便,但是如果中心服务器瘫痪,整个开发 ...
- 网络基本概念备忘:MAC地址,端口,HTTP状态码
MAC地址 英文MAC Address 英文全称: Media Access Control Address 别称:硬件位址 用途:定义网络设备位置 表示:十六进制数,6 Byte 特点:产品出产后M ...
- 【必看】局域网IP地址冲突罪魁祸首是谁?
开源Linux 长按二维码加关注~ 上一篇:一文详解FTP.FTPS与SFTP的原理 现如今,人们的生活处处离不开网络.企业办公信息化对网络的依赖则更大.为了提升安全管理和信息化水平,很多企业不仅建设 ...
- 怎么查询局域网内全部电脑IP和mac地址等信息?
在局域网内查询在线主机的IP一般比较简单,但局域网内全部电脑的IP怎么才能够查到呢?查询到IP后我还要知道对方的一些详细信息(如MAC地址.电脑名称等)该怎么查询呢??? 工具/原料 Windows ...
随机推荐
- spark使用idea向yarn提交报错:Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig
解决方法: 找到1.19版本放到spark的jars目录下
- 《Go 语言并发之道》读后感 - 第一章
<Go 语言并发之道>读后感 - 第一章 前言 人生路漫漫,总有一本书帮助你在某条道路上打通任督二脉,<Go 语言并发之道>就是我作为一个 Gopher 道路上的一本打通任督二 ...
- 在.NET Core中使用Channel(二)
在我们之前的文章中,看了一些非常简单的例子来说明Channel是如何工作的,我们看到了一些非常漂亮的特性,但大多数情况下它与其他某某Queue实现非常相似.让我们进入一些更高级的话题.我说的是高级,但 ...
- 并发编程--锁--Lock和Synchronized
说说对于 synchronized 关键字的了解? synchronized关键字解决的是多个线程之间访问资源的同步性: synchronized 关键字可以保证被它修饰的方法或者代码块在任意时刻只能 ...
- 使用 Admission Webhook 机制实现多集群资源配额控制
1 要解决的问题 集群分配给多个用户使用时,需要使用配额以限制用户的资源使用,包括 CPU 核数.内存大小.GPU 卡数等,以防止资源被某些用户耗尽,造成不公平的资源分配. 大多数情况下,集群原生的 ...
- 【JavaWeb】Filter 过滤器
Filter 过滤器 简介 Filter 过滤器是 JavaWeb 三大组件之一 Filter 过滤器是 JavaEE 的规范,也就是接口 Filter 过滤器的作用是 拦截请求,过滤响应 拦截请求的 ...
- Docker学习笔记之Dockerfile
Dockerfile的编写格式为<命令><形式参数>,命令不区分大小写,但一般使用大写字母.Docker会依据Dockerfile文件中编写的命令顺序依次执行命令.Docker ...
- 【Linux】vim关闭终端的时候,忘记退出vim怎么办
有些时候经常是关闭终端,但是忘记退出vim编辑的文本,每次登陆的时候会提示这个错误 其实很简单,在该文本的路径下,有一个隐藏文件 叫.xxx.txt.swp文件(xxx就是你退出忘记关闭的文件名). ...
- SDUST数据结构 - chap9 排序
判断题: 选择题: 编程题: 7-1 排序: 输入样例: 11 4 981 10 -17 0 -20 29 50 8 43 -5 输出样例: -20 -17 -5 0 4 8 10 29 43 50 ...
- Vulnhub靶场——DC-1
记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...