🎬 HoRain云小助手个人主页

 🔥 个人专栏: 《Linux 系列教程》《c语言教程

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

IGMP协议详解

什么是IGMP?

IGMP的工作原理

1. 普遍组查询和响应机制

2. 新组成员加入机制

3. 组成员离开机制

IGMP版本演进

为什么需要IGMP Snooping?

IGMP Snooping的工作机制

IGMP应用场景

IGMP安全风险与防护措施

安全风险

安全防护措施

IGMP与组播网络的关系

IGMP在组播网络中的部署位置

总结


img

IGMP协议详解

什么是IGMP?

IGMP(Internet Group Management Protocol),即互联网组管理协议,是TCP/IP协议族中负责IPv4组播成员管理的协议。IGMP用于在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。该协议通过在接收者主机和组播路由器之间交互IGMP报文实现组成员管理功能,IGMP报文封装在IP报文中,协议号为2。

IGMP的工作原理

IGMP基于查询和响应机制完成组播组管理。主要工作过程包括:

1. 普遍组查询和响应机制

  • IGMP查询器(Querier)周期性发送普遍组查询报文(目的地址为224.0.0.1)
  • 收到查询报文的组成员启动定时器
  • 定时器超时的组成员发送针对该组的报告报文
  • 其他成员收到报告后停止发送自己的报告,实现报告报文抑制

2. 新组成员加入机制

  • 新组成员不等待查询报文,主动发送成员报告报文申请加入
  • IGMP查询器接收到报告后,生成组播转发项

3. 组成员离开机制

  • IGMPv1:没有专门定义离开组的报文,成员离开后不再响应查询报文
  • IGMPv2:新增离开组报文(Leave Group),成员主动发送离开报文
  • IGMPv3:支持源过滤模式,允许主机指定接收或排除特定组播源

IGMP版本演进

版本 特点 优势
IGMPv1 - 基于查询-响应机制
- 无专门离开组报文
- 依赖组播路由协议选举查询器
奠定组管理基础框架
IGMPv2 - 新增离开组报文机制
- 引入基于IP地址的查询器自主选举功能
优化成员退出效率,减少网络流量
IGMPv3 - 支持源过滤模式
- 允许主机指定接收或排除特定组播源
- 增强查询报文类型和报告报文格式
强化流量控制精度,兼容前代版本

为什么需要IGMP Snooping?

在组播网络中,三层设备的组播报文传输要经过二层设备。由于组播报文的目的地址为组播地址,在二层设备上无法学习到该表项,因此组播报文会在二层设备内进行广播,导致:

  1. 网络带宽浪费:所有主机都能收到组播报文,而非仅组成员
  2. 网络安全问题:非组成员也能接收组播数据

IGMP Snooping通过监听IGMP协议包,提取相应信息,形成组播成员关系表,然后对组播业务按照组成员关系进行转发,保证组成员收到正确的组播业务,而其余主机无法收到。

IGMP Snooping的工作机制

  1. 不启动IGMP Snooping:网元将收到的组播报文广播给各个主机
  2. 启动IGMP Snooping:网元收到组播报文后,查询以源端口为路由器端口的组播表
    • 如果组播表中存在匹配的组播组,则将报文在组播组范围内转发
    • 如果不存在匹配的组播组,则丢弃组播报文或进行广播

IGMP应用场景

  1. 视频会议与直播:需要将视频流高效传输给特定接收者
  2. 远程教育:将教学内容同时传输给多个学生终端
  3. 金融数据分发:实时将市场数据传输给多个交易终端
  4. 企业内部广播:如公司公告、紧急通知等

IGMP安全风险与防护措施

安全风险

  1. 伪造IGMP报文攻击:攻击者发送伪造的IGMP报文,干扰组播成员关系
  2. 组播表项耗尽攻击:通过发送大量IGMP报文,耗尽设备组播表项资源
  3. 组播流滥用:未授权访问组播流,导致信息泄露

安全防护措施

  1. 配置限制接口的IGMP表项最大个数:限制组播组或源组的数量
  2. 配置限制接口加入的组播组范围:限制用户主机能够加入的组播组范围
  3. 配置IGMP报文源地址过滤:防止伪造的IGMP报文的非法攻击
  4. 配置IGMP报文上送CPU速率限制:降低设备CPU使用率,防止非法攻击
  5. 配置IGMP协议的微隔离CAR功能:控制IGMP报文处理速率

IGMP与组播网络的关系

在组播网络中,IGMP是连接主机和组播路由器的关键协议,它使组播路由器能够了解到本地网络上存在哪些组播接收者,从而决定是否向该网络转发组播数据包。当组播路由器收到组播分组时,它检查数据包的组播目的地址,仅当接口上有该组的成员时才向其转发。

IGMP在组播网络中的部署位置

IGMP在组播网络中的部署位置如图所示:

  • 主机与组播路由器之间运行IGMP
  • 组播路由器之间运行组播路由协议(如PIM)
  • IGMP负责在主机和路由器之间维护组播组成员关系

总结

IGMP作为IPv4组播成员管理的核心协议,通过查询和响应机制实现组成员的动态管理,是组播通信不可或缺的基础协议。随着IGMPv3的普及,组播网络的管理更加精细,支持源过滤等高级功能。同时,通过IGMP Snooping技术,可以有效解决二层设备对组播流量的广播问题,提高网络效率和安全性。在实际应用中,合理配置IGMP策略,可以有效防范相关安全风险,保障组播业务的正常运行。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐