当前位置: 首页 > news >正文

未知单播泛洪原因

未知单播:交换机是收到数据包后,读取数据包的目的MAC,并查找自已的MAC表,查找目的MAC对应的端口,从而判断从哪个口端口转发出此数据包,若MAC表里没有此目的MAC,那对于此交换机来说就是未知单播,那就把数据包泛洪到同一VLAN下除接收端口外的其它全部端口。

未知单播包过多带来的问题:正常情况下交换机有未知单播包是正常现象,但若未知单播包过多过大时,会严重影响网络带宽及设备性能,导致网络慢及通讯中断。

交换机的MAC表是如何产生的:交换机收到数据包时,会读取数据包的源MAC,并把源MAC与接收端口记录到交换机MAC表里。

下图为交换机的MAC表

而如下几种情况会产生未知单播包泛洪:

1、电脑的ARP老化时间与交换机的MAC表老化时间不一致
案例:电脑A向电脑B不停发送UDP包,由于电脑A上的ARP表未老化仍有电脑B的IP对应的MAC,故仍可发送封装了目的MAC B的单播包,但此时电脑B已离线且交换机上的MAC表又老化掉了,交换机就只有把此单播包泛洪出去,但此时目标主机已离线,将不会回应此报文,故交换机的MAC表也就一直学习不到MACB,且由于是UDP包,故电脑A仍会不停发送,交换机收到后就会不停泛洪到除连接电脑的A以外的所有端口从而导致端口数据过大引起网络丢包不稳定。此泛洪需要等到电脑A的ARP表老化掉才能结束,ARP表老化后,电脑A访问电脑B时,需要先发送ARP广播包,问询电脑B的MAC地址。

解决方法:可以在交换机上设置静态MAC表,绑定电脑B的MAC与端口;或者确保交换机的MAC老化时间比windows的ARP老化时间短,windows的ARP老化时间默认为120s。

2、核心三层交换机的ARP表比MAC表的老化时间长
电脑A与电脑B不同网段,现电脑A向电脑B发送数据包(源IP:IPA,目的IP:IPB,源MAC:MACA,目的MAC:三层交换机的MAC),三层核心交换机收到后,先查询ARP表,找寻IPB对应的MACB,假设此时三层核心交换机的ARP表未老化,那交换机就封闭新的数据包(源IP:IPA,目的IP:IPB,源MAC:MACA,目的MAC:MACB)准备发出,发出前查询自己的MAC表,但若此时MAC表老化了,那就只能把此单播包泛洪出去,若此时电脑B离线不能响应此数据包,那核心交换机MAC表就一直学习不到MACB,泛洪就一直存在。

解决方法:把三层核心交换机的MAC表老化时间老化时间设置比ARP表老化时间小。

 

3、非对称路由

如下图网络有两个出口AR1与AR2,而PC的网关指向AR1,PC访问外网时从AR1外出时,LSW1可以学习到PC的MAC信息,但互联网回包从AR2回来时(AR里都做了关于PC的静态ARP,故可直接封装目标MAC,而不需要ARP),由于LSW2的MAC表没有PC的MAC,故LSW2泛洪此未知单播。

4、 生成树的TC

5、MAC表溢出

防止未知单播泛洪的方法:

1、strom-control

config_g4/20#storm-control unicast threshold 10000

2、阻止未知单播

config_g4/20#switchport block unicast

3、VLAN修剪

trunk口不要放行所有VLAN,只放行需要的VLAN

4、修改ARP与MAC老化时间

修改ARP的老化时间小于MAC的老化时间

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 日志审计Graylog 使用教程-kafka收取消息
  • 【数据结构】一篇讲清楚什么是堆? 带图食用超详细~
  • go-zero接入skywalking链路追踪
  • C语言高手参考手册:函数进阶技巧
  • C++基础面试题 | C++中值传递和引用传递的区别?
  • 基于Kotlin Multiplatform的鸿蒙跨平台开发实践
  • Leetcode 2760.最长奇偶子数组
  • Linux:Linux多线程
  • 前端打字效果
  • 基于langchain的prompt指令代码编写
  • 为什么企业跨国组网建议用SD-WAN?
  • 10分钟搞懂,Python接口自动化测试-接口依赖-实战教程
  • keepalived与lvs
  • 每日一问:深入理解C++中的访问控制机制——private、protected和public
  • Unified 阻抗控制 architecture、framework、approach
  • 2017-09-12 前端日报
  • cookie和session
  • css属性的继承、初识值、计算值、当前值、应用值
  • go语言学习初探(一)
  • JS 面试题总结
  • JS数组方法汇总
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • node入门
  • PHP 7 修改了什么呢 -- 2
  • PHP那些事儿
  • python docx文档转html页面
  • React+TypeScript入门
  • vuex 学习笔记 01
  • vue自定义指令实现v-tap插件
  • 阿里研究院入选中国企业智库系统影响力榜
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 检测对象或数组
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 译有关态射的一切
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​configparser --- 配置文件解析器​
  • ‌JavaScript 数据类型转换
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (12)Hive调优——count distinct去重优化
  • (C语言)fread与fwrite详解
  • (HAL库版)freeRTOS移植STMF103
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (八)Flink Join 连接
  • (备份) esp32 GPIO
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (九)c52学习之旅-定时器
  • (九)One-Wire总线-DS18B20
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (南京观海微电子)——I3C协议介绍
  • (十六)Flask之蓝图
  • (五)IO流之ByteArrayInput/OutputStream
  • (循环依赖问题)学习spring的第九天
  • (转) ns2/nam与nam实现相关的文件
  • (转)jQuery 基础