一、 现象:MAC地址飘移
关于mac地址飘移,在网上查找并总结后,归纳可能为以下七种情况:
1、可能存在环路;
2、可能VRRP、HSRP等协议不正常引起。比如设备主备频繁切换,导致交换机学习同一mac地址飘移;
3、可能至少两台终端MAC地址相同,这样的情况不影响其他用户端;
4、是用户端换了网线,而两个网线接口不在同一台交换机上,mac会记忆一段时间,之后一切恢复正常;
5、H3C交换机开启STP功能后,CISCO设备可能出现报告MAC地址移动的现象,如果网络中不存在环路,该现象不影响业务。
6、再多加一种:可能arp欺诈、***,导致不同端口学习到同一真实或欺诈的mac地址,此结论未验证。
7、因为无线用户漫游,导致的MAC地址漂移告警。正常现象,对业务无影响。
二、 查看mac地址飘移信息
查看mac地址表display mac-address的时候,发现有些mac地址一会儿从接口1上学到,一会儿从接口2上学到。
1、对于H3C的设备
方法一:
对于H3C的设备,可收集诊断信息(display diag)查看L2MACMOVEMODULE INFO,这里记录已存在着的mac地址飘移信息,对应port mapping可查看端口对照。(H3C的锤子会帮忙统计出是否有mac地址飘移
)
示例(如下为诊断信息里相关部分内容):
=============================================================
===============debug l2 3 0 mac/move_rec/show===============
==========================================================
===============L2MACMOVEMODULE INFO=======================
L2MacMoveModule Enabled
L2MacMoveDebug Switch Off
=================L2MACMOVE Record INFO===============
MacAddress Vlan Agg Mod Port ->Agg Mod Port Cnt LatestTime Del
ec:a8:6b:69:f5:bb 11 0 8 18 ->0 10 1 156 2015/1 /29 13:16:49 1
f8:f :41:71:b9:15 11 0 10 0 ->0 10 1 116 2015/1 /29 13:21:36 1
f8:f :41:71:b9:15 11 0 10 1 ->0 10 0 115 2015/1 /29 13:21:40 1
如上,标红色的表示飘移的端口,对应物理端口可查看port mapping(注:光电利用combo口Port和MID是一样的)。
其中,上表(L2MACMOVE Record INFO)中的Mod对应下表(port mapping)的[MID];
上表(L2MACMOVE Record INFO)中的Port对应下表(port mapping)的[Port]。由此可以查找出哪些端口存在mac飘移。
========================================================
===============debug port mapping 2===============
========================================================
[Interface] [Unit] [Port] [Name][Combo?][Active?] [IfIndex] [MID] [Link] [Attr]
===============================================================================
GE2/0/1 0 1 ge1 yes no 0x1100000 8 down Bridge
GE2/0/2 0 0 ge0 yes no 0x1100001 8 down Bridge
GE2/0/3 0 3 ge3 yes no 0x1100002 8 down Bridge
GE2/0/4 0 2 ge2 yes no 0x1100003 8 down Bridge
GE2/0/5 0 1 ge1 yes yes 0x1100004 8 down Bridge
GE2/0/6 0 0 ge0 yes yes 0x1100005 8 down Bridge
GE2/0/7 0 3 ge3 yes yes 0x1100006 8 down Bridge
GE2/0/8 0 2 ge2 yes yes 0x1100007 8 down Bridge
GE2/0/9 0 5 ge5 no no 0x1100008 8 down Bridge
GE2/0/10 0 4 ge4 no no 0x1100009 8 down Bridge
GE2/0/11 0 7 ge7 no no 0x110000a 8 down Bridge
GE2/0/12 0 6 ge6 no no 0x110000b 8 down Bridge
GE2/0/13 0 9 ge9 no no 0x110000c 8 down Bridge
GE2/0/14 0 8 ge8 no no 0x110000d 8 up Bridge
GE2/0/15 0 11 ge11 no no 0x110000e 8 down Bridge
GE2/0/16 0 10 ge10 no no 0x110000f 8 down Bridge
GE2/0/17 0 13 ge13 no no 0x1100010 8 down Bridge
GE2/0/18 0 12 ge12 no no 0x1100011 8 down Bridge
GE2/0/19 0 15 ge15 no no 0x1100012 8 down Bridge
GE2/0/20 0 14 ge14 no no 0x1100013 8 down Bridge
GE2/0/21 0 17 ge17 no no 0x1100014 8 down Bridge
GE2/0/22 0 16 ge16 no no 0x1100015 8 up Bridge
GE2/0/23 0 19 ge19 no no 0x1100016 8 down Bridge
GE2/0/24 0 18 ge18 no no 0x1100017 8 up Bridge
GE2/0/25 0 21 ge21 no no 0x1100018 8 down Bridge
GE2/0/26 0 20 ge20 no no 0x1100019 8 down Bridge
GE2/0/27 0 23 ge23 no no 0x110001a 8 up Bridge
GE2/0/28 0 22 ge22 no no 0x110001b 8 down Bridge
--------------------------------------------------
MEth0/0/0:
Ifindex = 0x0
ModID = 0
Port = 0
========================================================
===============debug port mapping 3===============
========================================================
[Interface] [Unit] [Port][Name][Combo?] [Active?] [IfIndex] [MID][Link] [Attr]
===============================================================================
GE3/0/1 0 0 ge0 no no 0x1900000 10 up Bridge
GE3/0/2 0 1 ge1 no no 0x1900001 10 up Bridge
GE3/0/3 0 2 ge2 no no 0x1900002 10 up Bridge
GE3/0/4 0 3 ge3 no no 0x1900003 10 down Bridge
GE3/0/5 0 4 ge4 no no 0x1900004 10 down Bridge
GE3/0/6 0 5 ge5 no no 0x1900005 10 down Bridge
GE3/0/7 0 6 ge6 no no 0x1900006 10 down Bridge
GE3/0/8 0 7 ge7 no no 0x1900007 10 down Bridge
GE3/0/9 0 8 ge8 no no 0x1900008 10 down Bridge
GE3/0/10 0 9 ge9 no no 0x1900009 10 down Bridge
GE3/0/11 0 10 ge10 no no 0x190000a 10 down Bridge
GE3/0/12 0 11 ge11 no no 0x190000b 10 down Bridge
--------------------------------------------------
MEth0/0/0:
Ifindex = 0x0
ModID = 0
Port = 0
--------------------------------------------------
如上的f8:f :41:71:b9:15 11 0 10 0 ->0 10 1 表示G3/0/1与G3/0/2存在mac地址飘移,极可能存在环路。
方法二:display mac-address mac-move
display mac-address mac-move
-------------------slot 1 MAC address moving information----------------
MAC address VLAN Current port Source port Last time Times
0cda-411d-6478 10 GE1/0/14 GE1/0/2 2011-02-14 00:06:43 1
--- 1 MAC address moving records found ---
方法三:
terminal monitor
terminal trapping
如果存在mac地址飘移,可以查看得到告警信息
display trapbuffer 可以查看告警的缓存信息
2、对于思科cisco设备
思科设备会跳出提示,以下为CISCO 3750 mac飘移(flapping)提示信息:
3750-edit#
1w2d: %SW_MATM-4-MACFLAP_NOTIF: Host a601.0000.0000 in vlan 23 is flapping betwe
en port Gi1/0/2 and port Gi1/0/1
3750-edit#
1w2d: %SW_MATM-4-MACFLAP_NOTIF: Host a601.0000.0000 in vlan 23 is flapping betwe
en port Gi1/0/2 and port Gi1/0/1
3750-edit#
1w2d: %SW_MATM-4-MACFLAP_NOTIF: Host a601.0000.0000 in vlan 23 is flapping betwe
en port Gi1/0/2 and port Gi1/0/1
3、对于华为设备
【交换机在江湖之维护宝典】第十一章 了解MAC地址漂移的前因后果
各位大侠,小编又来啦!当你在设备上敲入命令后,设备如蜗牛般反应迟钝,并时不时的打印出MAC地址漂移的告警信息时,是不是很郁闷呀。莫急莫急,小编这就教各位大侠了解一下MAC地址漂移的前因后果,轻松搞定二层网络中最常见的MAC地址漂移告警。
首先什么是MAC地址漂移呢?
MAC地址漂移是指:在同一个VLAN内,一个MAC地址有两个出接口,并且后学习到的出接口覆盖原出接口的现象。这是官方定义,通俗的讲,MAC地址漂移指的是MAC地址表项的出接口发生了变更。到底什么意思呢?看了下图就明白了。
MAC地址漂移会有什么影响?
Ø 上网响应慢!!
Ø 上网无响应!!
Ø 视频卡着不能动!!
看了这些,是不是很揪心呀,生活没有激情了。这些都可能是MAC地址漂移,组网设备成环导致的。只要解决MAC地址漂移,破除组网中的环路,这些讨厌的画面就会自动消失的。
为什么会有MAC地址漂移呢?
如上图,正常情况下,PC的报文通过Port1进入Switch后,会从Port3转发出去,MAC地址表项学习到的出接口是Port1。但是当Switch、Switch1和Swtich2三台设备之间存在环路时,PC的报文通过Switch2-->Switch1后,又会通过Port2进入Switch,导致MAC地址表项的出接口更新为Port2,从而就会产生MAC地址漂移告警。由此可见MAC地址发生漂移的根本原因就是组网中存在二层环路。
怎么判断设备上是否存在MAC地址漂移呢?
Ø方法1:在打开终端显示和MAC地址漂移告警开关情况下,在设备产生MAC地址漂移告警时,就会打印出如下告警信息。并且会间隔一段时间多次打印哟。
Ø方法2:在打开MAC地址漂移告警开关时,通过命令display trapbuffer查看告警的缓存信息,判断设备上是否存在MAC地址漂移。
Ø方法3:在打开MAC地址漂移检测功能时,通过命令display mac-address flapping record查看最近一个月MAC地址漂移的信息。记录的信息包括:MAC地址漂移发生的开始时间和结束时间,发生MAC地址漂移的VLAN和MAC,漂移的端口和漂移的次数。
Ø方法4:在没有开启MAC地址漂移检测功能时,只能用最原始的办法---不停的查看MAC地址表项的出接口,来判断设备上是否存在MAC地址漂移了。如下图,多次查看MAC地址表项,出接口信息在两个端口之间跳变。这就可以认为发生了MAC地址漂移。
怎么消除MAC地址漂移告警呢?
消除MAC地址漂移的办法有三种:
Ø第一种:人工把发生漂移的接口shutdown。
优点:最简单可靠
缺点:需要人工参与,整个接口的流量都会中断。
Ø第二种:通过在接口上配置漂移检测动作为error-dwon,自动down掉漂移的端口。
优点:及时快捷,还可以通过配置自动恢复时间定时恢复端口。
缺点:整个接口的流量都会中断。
Ø第三种:通过在接口上配置漂移检测动作为quit-vlan,使发生漂移的接口指定VLAN域内退出,从而消除MAC地址漂移,破除环路。
优点:只解决存在环路的VLAN域,不会使其他正常VLAN域的流量中断。
缺点:指定老化周期内,只能使一个接口从VLAN中退出。如果存在多个环路,破环会比较慢。
交换机实现的MAC地址漂移告警功能有什么亮点呢?
Ø亮点1:在同一个VLAN内,只会记录一个MAC地址漂移记录。
即同一个VLAN内,如果有多个MAC地址都在发生漂移,只记录第一个上报漂移的MAC地址。为什么呢?因为只要一个VLAN域内存在环路,该VLAN内所有的MAC地址都会发生漂移的。
Ø亮点2:只有一次或两次MAC地址漂移,不会上报MAC地址漂移告警。
默认情况下,在漂移记录老化时间300秒内, MAC地址
表项出接口变更10次,才认为发生了MAC地址漂移,才会上报MAC地址漂移告警。
Ø亮点3:可以指定某个VLAN不进行MAC地址漂移的检测。指定某个VLAN不进行MAC地址漂移的检测后,该VLAN内的MAC地址发生漂移时,不会记录信息,也不会上报告警信息。
江湖小贴士:所有的MAC地址漂移告警都需要处理吗?其实不是的,只有MAC地址漂移告警在短时间多次出现的情况才需要处理,偶尔出现的可以不用关注啦,类似于下面这三种情况就可以不用关注的。 1、因为环路或VRRP切换,导致的MAC地址漂移告警。2、因为无线用户漫游,导致的MAC地址漂移告警。 3、因为VRRP主备倒换,导致的MAC地址漂移告警。
好了,小编的讲解结束了。下次再看到MAC地址漂移告警可不要惊慌了,大不了使用最暴力最简单的方法,通过down掉漂移端口分分钟搞定它
三、 mac地址飘移现象对应解决思路
1、环路
环路解决的思路就是使用生成树协议、loopback-detection,或者使用堆叠(如IRF)去除物理环路,或者排查服务器网卡是否有绑定等策略,或者拔掉造成环路的网线。
环路一般会伴随着端口峰值(peak)变得超高,或CPU使用率超高,或ping的时候丢包严重。
dis int g1/0/1
Peak value of input: xxxxx bytes/sec, at 2014-01-28 14:05:47
Peak value of output: xxxxx bytes/sec, at 2014-0130 06:31:46
dis cpu
Slot 1 CPU 0 CPU usage:
xx% in last 5 seconds
xx% in last 1 minute
xx% in last 5 minutes
2、VRRP、HSRP等协议不正常引起
参照配置手册,更改为正确配置即可。
3、多台终端MAC地址相同
使得终端mac地址唯一即可。
4、用户端换了网线
等一会儿就行了。
5、关于不同厂家的设备互联出现MAC地址漂移的解释
关于不同厂家的设备互联出现MAC地址漂移的解释
2012-05-20 12:42:19
标签:MAC地址漂移
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
关于MAC地址漂移
思科3750与H3C 3100 互连问题,MAC飘移
最近,公司一设备是C3750,gi1/0/12 、g1/0/22和g1/0/2各连接一台H3C 3100,总有个mac地址(000f.e207.f2e0 )在上述几个端口间飘来飘去,无环路,不地址欺骗,不知道是什么原因,日志提示如下:
Aug 4 22:15:07.292 GMT: %SW_MATM-4-MACFLAP_NOTIF: Host 000f.e207.f2e0 in vlan 800 is flapping between port Gi1/0/12 and port Gi1/0/22
Aug 4 22:16:07.691 GMT: %SW_MATM-4-MACFLAP_NOTIF: Host 000f.e207.f2e0 in vlan 800 is flapping between port Gi1/0/12 and port Gi1/0/22
查看vlan 800的生成树状态如下:
VLAN0800
Spanning tree enabled protocol ieee
Root ID Priority 4896
Address 001f.27dd.6200
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 4896 (priority 4096 sys-id-ext 800)
Address 001f.27dd.6200
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi1/0/2 Desg FWD 4 128.2 P2p
Gi1/0/12 Desg FWD 19 128.12 P2p
Gi1/0/22 Desg FWD 19 128.22 P2p
解释:
思科默认使用PVST+,可以选择配置的有PVST MST 等等
而华为产品一般是三种STP(IEEE 802.1D),RSTP(IEEE 802.1W),MSTP(IEEE 802.1S)
当搜索000f.e207.f2e0或00E0-FC09-BCF9这个mac的时候,会发现很多人在问这个问题。
据厂商自己解释
“S3600系列交 换机开启STP功 能后,对端设备可能出现报告MAC地址移动的现象。其原因为S3600系列交换机的BPDU报文采用固定MAC地址为源MAC。该情况对正常业务没有影响。为了防止 该日志信息对正常日志信息的影响,可以通过类似日志信息过滤的功能对此种日志信息过滤。
S系列交换机生成 树协议报文的源MAC地址是00E0-FC09-BCF9或者 000F-E207-F2E0。”
因为多厂商间对协议的理解方式不同,各厂商按照各自的方式改动了实现的方式,所以应尽量避免二层互联,对接的时候一定要提前测试好保持谨慎。
以下为官方解决方案:
问题原因
部分低端交换机的BPDU协议报文的源MAC采用000f-e207-f2e0。
H3C定义的LACP报文(DMAC=0180C2000002、H3C设备SMAC=000f-e207-f2e0、)也是BPDU报文的一种。由于V3平台交换机每端口没有设置各自的MAC地址,因此BPDU源MAC都是使用上述固定的特殊MAC作为源MAC地址的。但S3600/5600系列交换机最新版本支持在系统视图下使用port-mac命令进行定义。
对于固定源MAC地址,H3C交换机是不学习BPDU报文的源MAC的,但有些友商设备对于BPDU的源MAC是进行学习的,因此在友商设备上有时会记录MAC地址漂移的告警。
解决方法:
对于V3平台交换机如S3600/5600系列交换机可以升级到最新版本通过port-mac命令更改BPDU报文的源MAC地址。但是需要注意的是,如果网络中没有环路,那么该现象正常不影响业务使用,因此也不推荐使用port-mac命令进行更改。
修改方法:
system-view
System View: return to User View with Ctrl+Z.
[Sysname] port-mac xxxx-xxxx-xxxx
6、arp欺诈、***引起
找到中毒的终端,杀毒。
终端查找方法一:网关设备处抓包,必定有大量arp报文,看arp对应的源IP和MAC,按端口找到终端。杀毒。
这样做有可能还不容易找到,可看端口流量作为参考。
终端查找方法二:最简化网络,拔掉所有线。一个一个或一部分一部分接回来,直到接进某条线后网络出问题,由此可判断。
转自:http://blog.sina.com.cn/s/blog_5e96cbeb0102vcwo.html