今天在学校的一个三层交换上看到持续的日志信息:

Host 00:E0:FC:09:BC:F9is flapping between fa0/x and fa0/y.
思科对此官方的解释是:
Error Message SW_MATM-4-MACFLAP_NOTIF: Host [enet] in [chars] [dec] is flapping between port [chars] and port [chars]
某主机的MAC地址在某两端口之间摆动。
Explanation This message means that the switch found the traffic from the specified host flapping between the specified ports. [enet] is the host MAC address, [chars] [dec] is the switch ID, and the first and second [chars] are the ports between which the host traffic is flapping.
Recommended Action Check the network switches for misconfigurations that might cause a data-forwarding loop.
思科推荐行动是检查交换机的配置以防有数据传输环路。

在一个唯一环路冗余只做在接入层(备用线路)上,且全部运行STP的网络环境中,我认为没有环路的可能性。

也没有服务器的网卡在两端口间做过bonding(这种情况的表现是flapping只在两个特定的端口之间。解决方案

是交换机上做channal-group。)

如此分析,这大路边的可能故障也就是环路被排除掉了。
那么再来重新分析一下LOG信息。
刚才我们关注的是flapping between,下面关注一下MAC地址和端口所能提供的线索。
这些flapping的端口,每次都不尽相同,但是有个特点就是,全都是华为的端口,神码的端口压根没参与过。
猜想,这会不会跟华为的某种协议有关呢?
 
查了一下那个总在flapping的MAC地址 Host 00:E0:FC:09:BC:F9
LZ还打了客服,华为-3COM技术支持(800-810-0504-3)。
回答是:那是华为发送STP、loopback-detection、NDP、STDP、gratuitous-arp-learning用的组播所用的虚拟地址。
也就是说,网络中所有华为的设备都在用那个MAC在发信息。
 
“S3600系列交 换机开启STP功 能后,对端设备可能出现报告MAC地址移动的现象。其原因为S3600系列交换机的BPDU报文采用固定MAC地址为源MAC。该情况对正常业务没有影响。为了防止 该日志信息对正常日志信息的影响,可以通过类似日志信息过滤的功能对此种日志信息过滤。
S系列交换机生成 树协议报文的源MAC地址是00E0-FC09-BCF9或者 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命令进行更改。
 
原因已经很明确了。大牛曾试验过关掉loopback-detection就不会出现类似LOG了。
 
不过说来,这华为事事还真多,我又发现了还有类似的固定MAC地址:
01-80-C2-00-00-00是STP、loopback detection的目的mac
 
loopback-detection环回监测使用及原理
以H3C交换机为例
1、开启全局监测  >loopback-detection enable
2、开启相应端口监测 >int gig 1/0/1    loopback-detection enable
3、如为trunk端口,1和2步只能对trunk端口的默认vlan进行监测,需要对所有vlan开启监测   loopback-detection per-vlan en
4、如为trunk端口,发现环路仅上报错误,需要设置端口受控,access端口不需要。    loopback-detection control en
loopback-detection监控从端口发出的报文是否又通过该端口回到设备,用于判断端口下挂网络是否存在环路。
对access端口,会删除mac列表,block端口,对trunk端口会上报,不会禁用端口。
 

这个困扰了两天的问题,终于可以得出一个结论了。

综上所述,接入层华为设备的上行口LOOPBACK-DETECTION关闭就好,其他照旧。
通过这次的事情呢,在老师的指导下,在各种论坛里,我也有些感悟吧
1.园区网里的二层设备尽可能统一厂牌,否则要根据show log来确定关闭某些端口的某些服务。
2.对于网络中的任何改动,一切以保证网络畅通为首要目的。流量较为正常,拥塞和延时都不严重的时候,千万不要轻举妄动。
3.STP还是不要关的。

交换上的FLAPPING事件 (zhuan)的更多相关文章

  1. 嵌入式linux应用程序调试方法

    嵌入式linux应用程序调试方法 四 内存工具 五 C/C++代码覆盖.性能profiling工具 四 内存工具 您肯定不想陷入类似在几千次调用之后发生分配溢出这样的情形. 许多小组花了许许多多时间来 ...

  2. CCNA网络工程师学习进程(5)路由器和交换机的登录安全配置和vlan划分

        本节详细介绍路由器和交换机的登录安全配置以及VLAN划分的原理.     (1)登录安全配置: 路由器登录有两种验证方式:有本地验证方式和远程验证方式.本地登录验证方式可以配置用户名和密码也可 ...

  3. 10G整数文件中寻找中位数或者第K大数

    来源:http://hxraid.iteye.com/blog/649831 题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数.内存限制为 2G.只写出思路即可(内存限制为 2G的意思就 ...

  4. OS X 在Cisco无线环境下丢包分析 part 2

    part 1说到,单播的ARP请求最终都被网关丢弃了,从而造成了丢包.先说我最终怎么解决的吧,我最终把核心交换上针对无线VLAN的arp inspection和dhcp snooping删掉了,然后出 ...

  5. OS X 在Cisco无线环境下丢包分析 part 1

    补发一篇博客,之前遇到的没有写成博文的一个情况.我擦,那一阵儿真是被无线搞疯了. 现象:苹果OS X用户连入WiFi之后莫名丢包,而且有规律的丢,丢个5s恢复正常,再过会儿再丢5s左右. 就如同这样 ...

  6. 【转】文件中有10G个整数,乱序排列,要求找出中位数

    题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数.内存限制为 2G.只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存). ...

  7. CCNA基础知识摘录

    cisco设备的启动要点: 1.检测硬件(保存在rom) 2.载入软件(IOS)(保存在Flash) 3.调入配置文件(密码,IP地址,路由协议都保存在此)(此文件保存在NVRAM) 0x2102:正 ...

  8. FLP不可能性(FLP impossibility)

    FLP不可能性(FLP impossibility) FLP impossibility是一个定理,它证明了在分布式情景下,无论任何算法,即使是只有一个进程挂掉,对于其他非失败进程,都存在着无法达成一 ...

  9. BugPhobia终章篇章:学霸在线系统Beta阶段展示

    0x00 :序言 1 universe, 9 planets, 204 countries,809 islands, 7 seas, and i had the privilege to meet y ...

随机推荐

  1. Android:PowerManager类 电源管理

    PowerManager类用于对设备电源状态进行管理:PowerManager.WakeLock类用于保持设备常亮:Android中通过各种Lock锁对电源进行控制,需要注意的是加锁和解锁必须成对出现 ...

  2. MongoError: Cannot update '__v' and '__v' at the same time,错误解决办法

    1.讲查询的结果,原封不动的插入到另一个表中,结果报错了:MongoError: Cannot update '__v' and '__v' at the same time,起初认为是mongodb ...

  3. CentOS7.5 通过wget下载文件到指定目录

    在Linux命令行下面下载文件,通过wget是比较普遍简单的,比如在CentOS7 里面也一样. 我们先来看下自己的CentOS7 系统有没有安装wget: [root@test redis]# rp ...

  4. session与cookie的区别是什么?如果客户端禁用了cookie功能,将会对session有什么影响?

    cookie 和session 的区别: a.cookie数据存放在客户的浏览器上,session数据放在服务器上. b.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE ...

  5. 浏览器JS报错Uncaught RangeError Maximum call stack size exceeded

    JavaScript错误:Uncaught RangeError: Maximum call stack size exceeded 堆栈溢出 原因:有小类到大类的递归查询导致溢出 解决方法思想: A ...

  6. 3ds max学习笔记-- 动画

    栗子:若要使茶壶从a点运动到b点,是需要动画实现的:动画与传统意义的移动不同,与时间是存在关系的: 时间线,时间滑条: [时间配置]按钮: 弹出面板: 动画时间轴默认时间是从0帧开始100结束:总长度 ...

  7. 命令和python模式转换

    安装完paython成功之后,就必须了解一下:命令模式和python交互模式 1.我们输入  cmd  之后进入的运行环境就是命令模式 2.在命令模式下输入  python,看到>>> ...

  8. angularJs中怎么模拟jQuery中的this?

    最近自己正在学习angularJs,在学到ng-click时,由于想获取当前点击元素的自身,开始想到了用$index来获取当前元素的索引同样能实现我想要的效果,但是在有些特殊的情况下,使用$index ...

  9. JSP(6)—JavaBean及案例

    基础: 一.JavaBean ①用作JavaBean的类必须是具有一个公共的无参数的构造方法 ②JavaBean的属性是以方法定义的形式出现的. ③JavaBean的属性名是根据Setter和gett ...

  10. Spring Boot tomcat

    定制内嵌 Tomcat 设置内嵌Tomcat的端口 Spring Boot 内嵌的 Tomcat 服务器默认运行在 8080 端口.如果,我们需要修改Tomcat的端口,我们可以在 src/main/ ...