《IP多播网络的设计与部署(第1卷)》——2.4 多播转发

简介:

本节书摘来异步社区《IP多播网络的设计与部署(第1卷)》一书中的第2章,第2.4节,作者:【美】Beau Williamson,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.4 多播转发

IP多播网络的设计与部署(第1卷)
在单播模型中,路由器在网络中沿着一条单一的路径从源主机向目的主机转发流量,而且目的主机的IP地址出现在IP数据包的目的地址字段。该路径上的每一个路由器使用数据包中的目的IP地址做出单播转发决策。它通过查询单播路由表中的目的地址,然后通过指示接口将数据包转发到去往目的主机的下一跳。

在多播模型中,源将流量发送到一个任意的主机组中,该主机组使用IP数据包中目的地址字段的多播组地址来表示。和单播模型不同,多播路由器不能基于数据包中的目的地址做出转发决策。通常情况下,这些路由器不得不将多播数据包从多个接口中转发出去,以到达所有的接收者。这一要求使得多播转发过程要比单播转发过程复杂得多。

本节将讲解逆向路径转发(Reverse Path Forwarding,RPF)的概念。在大多数多播路由协议中,逆向路径转发是多播转发过程的基础。本节还将讲解有关多播路径缓存、TTL阈值,以及管理范围边界的相关内容。

2.4.1 逆向路径转发

实际上,所有的IP多播路由协议利用了某些形式的RPF或者入接口校验(incoming interface check)来作为转发或丢弃到来的多播数据包的主要机制。当多播数据包到达路由器时,路由器对数据包进行RFP校验。如果RPF校验成功,则转发数据包,否则将其丢弃。

当流量沿着源树向下流动时,RPF校验机制进行如下工作。

1.路由器检查到来多播数据包的源地址,以确定此数据包是否是通过满足这样一个条件的接口到达的:该接口位于返回源主机的逆向路径上。

2.如果数据包是通过可以返回到源的接口上到达的,RPF校验成功,并将数据包转发。

3.如果RPF校验失败,则丢弃信息包。

多播路由器确定那个接口位于返回源的逆向路径上的方式,取决于所使用的路由协议。在某些情况下,多播路由协议维护一个独立的多播路由表,并使用它进行RPF校验。距离向量多播路由协议(Distance Vector Multicast Routing Protocol,DVMRP)就是一个很好的例子。该协议将在第5章详细讲述。在其他情况下,多播路由协议使用已有的单播路由表来确定位于返回源的逆向路径上的接口。通常使用单播路由表来执行RPF校验的多播协议的例子是PIM和CBT。当然,PIM和CBT也不局限于只使用单播路由表进行RPF校验。它们可以使用来自DVMRP路由表或者多播边界网关协议(Multicast Border Gateway Protocol,MBGP)路由表的可达性信息,或者也可以静态配置RPF信息。PIM和CBT协议将在后面章节详细讲解。

图2.14所示为RPF校验的过程。本例子使用单独的多播路由表。当然,如果使用单播路由表或者其他可达性表,概念相同。

2972014060166e5827784a5bb3e50ed8a51e695f

来自源151.10.3.21的多播数据包通过接口S0被接收到。多播路由表的校验表明,返回源的逆向路径上的接口是S1,而不是S0。因此,RPF校验失败,并丢弃数据包。

图2-15是另外一个例子。在该例中,来自源151.10.3.21的多播数据包这次是通过接口S1到达路由器。

72d4ad0de2f3b336d4cdd0d9e670860d0d244ec6

在本例中,由于接口S1位于返回源的逆向路径上,所以RPF校验成功,并且数据包被转发到外出接口表(outgoing interface list)中的所有接口上(需要注意的是,外出接口没有必要包括路由器上所有的接口)。

2.4.2 多播转发缓存

在本章前面的“多播分发树”一节中,介绍了构建多播分发树,以用来将多播流量通过网络转发到所有接收者的概念。从路由器的视角来看,每一棵SPT或者共享树可以在一条多播转发缓存条目(有时也称为多播路由表条目)中表示成与零个或多个外出接口相关联的入接口(incoming interface)。注意,双向共享树对该过程进行了微调。由于流量可以沿着双向共享树向上和向下流动,所以双向共享树不需要区分入接口和外出接口。

对每一个到来的多播数据包执行RPF校验会导致显著降低路由器的性能。因此,对多播路由器来说,在创建多播转发缓存的时候确定RPF接口的方式也就更加普遍。RPF接口随后成为多播转发缓存条目的入接口。如果RPF校验过程所使用的路由表发生变化,必须重新计算RFP接口,并更新多播转发缓存条目,以反映这一变化。注意到,有多种方法可以确定外出接口,这取决于正在使用的多播路由协议。

例2-1所示为一个Cisco多播路由条目。

例2-1 Cisco多播路由表条目

001b224d5b9b1b81ba74f112fb80c4bfaf4cf644

(S,G)条目描述的是(151.10.3.21/32,224.2.127.254)SPT,与在图2.14和图2.15中的路由器看到的一样。

从本例中可以看到,条目有一个入接口Serial1,以及两个外出接口Serial2和Ethernet0。不要受本例中其他术语的影响。它们将会在第10章和第11章详细介绍。现在只要关注与入接口和外出接口的概念即可。

2.4.3 TTL阈值

还记得,每当一个多播数据包被路由器转发一次,IP数据包头部的TTL值将会减1。如果数据包的TTL值见到0,路由器将丢弃数据包。

TTL阈值可用于多播路由器上的个别接口,以防止小于TTL阈值的多播数据包在该接口上被转发出去。例如,图2.16所示为其接口上应用了不同TTL阈值的多播路由器。

027231a5df0296284794b5323d93dd9dcaf89f63

在本例中,多播数据包通过Serial0到达,其当前的TTL值为24。假设RPF校验成功,并且接口Serial1、Serial2和Ethernet0都在外出接口列表(oilist)中,因此数据包应该从这些接口中正常地转发出去。因为已经在这些接口上应用了TTL阈值,路由器在将数据包转发出去之前,必须确定数据包的TTL值(现在是23)大于或等于接口的TTL阈值。

从本例中可以看到,数据包从接口Serial1和Ethernet0转发出去。注意到TTL阈值为0则表示该接口上没有TTL阈值。由于数据包的TTL值(23)小于接口Serial2上的TTL阈值,因此数据包不能从该接口转发出去。

TTL阈值提供了一个简单的方法,以防止基于多播数据包中的TTL字段将多播流量转发到一个站点或者区域的边界之外。这一技术也被称为TTL范围(scoping)。如果多播应用必须将其流量限制在一个站点或者区域的内部,则它可以传递一个带有初始TTL值的多播流量,这样就不会跨越TTL阈值的边界了。

图2.17所示为一个TTL阈值边界的例子。该TTL阈值边界用来限制多播流量的转发。公司ABC已经在其网络周边的所有路由器接口上设置了值为128的TTL阈值。

如果多播应用想要把其流向限制在公司ABC网络内部,它必须传递初始TTL值为127的多播数据包。此外,工程和市场部门要在他们的网络周边将TTL阈值设置为16。因此,运行在这些网络内的多播应用可以防止它们的多播流量逃离其各自的网络。

660b8bc3af8682f70f98ecf814a26d0a266f4904

表2-3所示为在不同的TTL边界下,典型的初始TTL值和路由器接口TTL阈值。

d7471ddc5f93a37709478bec8510c9e6362a364b

2.4.4 管理范围边界

和TTL阈值一样,管理范围边界也可以用来限制多播流量被转发到一个域(domain)或者子域(subdomain)之外。这种方法使用一个特殊的多播地址(叫做管理范围[administratively scoped]地址)范围作为边界。如果在路由器的接口上配置一个管理范围边界,其赌博组地址落入该范围的多播流量将不会被允许进入或离开该接口,从而在这一地址范围内为多播流量提供了一个防火墙。

图2-18所示为管理范围边界的工作机制。在这里,管理范围边界在接口Serial0上被设置为239.0.0.0~239.255.255.255的多播地址范围。该机制有效地设置了一个防火墙,使得该地址范围内的多播数据包不能跨越此范围。

还记得在本章前面的“管理范围多播地址”一节中,管理范围多播地址落在239.0.0.0~239.255.255.255的范围之内,并且被认为是本地分配的。也就是说,它们不能在Internet上使用。管理范围边界机制考虑到了这一约定,并防止落入这一地址范围内的多播流量进入或离开网络。

7a59f4f8a24fd5524fc34cef7efe1f218d30f602

图2-19所示为一个使用管理范围边界的例子。在这里,公司ABC使用了不同的管理地址范围来防止多播流量转发到特定边界之外。

c6ee68e1a86a638482d8fe6bade66b31467d9c9e

在本例中,公司ABC已经在其网络周边的所有路由器接口上配置了239.0.0.0/8的管理范围边界。该范围边界可以防止落在239.0.0.0~239.255.255.255之内的任何多播流量进入或离开无网络。同样,工程部门和市场部门也在他们各自的网络周边配置了239.128.0.0/16的管理范围边界。这范围边界可以防止落在239.128.0.0~239.128.255.255之内的多播流量进入或离开其各自的网络。这也意味着239.128.0.0~239.128.255.255范围的多播地址是由工程部门和市场部门独立使用。多播地址空间的重用使得多播地址在公司ABC内部的使用更为有效。

相关文章
|
9月前
|
网络协议 Linux 虚拟化
配置VM网络:如何设定静态IP以访问主机IP和互联网
以上就是设定虚拟机网络和静态IP地址的基本步骤。需要注意的是,这些步骤可能会因为虚拟机软件、操作系统以及网络环境的不同而有所差异。在进行设定时,应根据具体情况进行调整。
640 10
|
负载均衡 网络协议 网络性能优化
动态IP代理技术详解及网络性能优化
动态IP代理技术通过灵活更换IP地址,广泛应用于数据采集、网络安全测试等领域。本文详细解析其工作原理,涵盖HTTP、SOCKS代理及代理池的实现方法,并提供代码示例。同时探讨配置动态代理IP后如何通过智能调度、负载均衡、优化协议选择等方式提升网络性能,确保高效稳定的网络访问。
1962 2
|
监控 安全 Go
使用Go语言构建网络IP层安全防护
在Go语言中构建网络IP层安全防护是一项需求明确的任务,考虑到高性能、并发和跨平台的优势,Go是构建此类安全系统的合适选择。通过紧密遵循上述步骤并结合最佳实践,可以构建一个强大的网络防护系统,以保障数字环境的安全完整。
257 12
|
监控 安全 网络安全
网络安全新姿势:多IP配置的五大好处
服务器配置多IP地址,既能提升网络速度与安全性,又能实现多站点托管和故障转移。本文详解多IP的五大妙用、配置方法及进阶技巧。从理论到实践,合理规划IP资源,让服务器性能跃升新高度。
401 2
|
传感器 算法 数据安全/隐私保护
基于GA遗传优化的三维空间WSN网络最优节点部署算法matlab仿真
本程序基于遗传算法(GA)优化三维空间无线传感网络(WSN)的节点部署,通过MATLAB2022A实现仿真。算法旨在以最少的节点实现最大覆盖度,综合考虑空间覆盖、连通性、能耗管理及成本控制等关键问题。核心思想包括染色体编码节点位置、适应度函数评估性能,并采用网格填充法近似计算覆盖率。该方法可显著提升WSN在三维空间中的部署效率与经济性,为实际应用提供有力支持。
|
域名解析 API PHP
VM虚拟机全版本网盘+免费本地网络穿透端口映射实时同步动态家庭IP教程
本文介绍了如何通过网络穿透技术让公网直接访问家庭电脑,充分发挥本地硬件性能。相比第三方服务受限于转发带宽,此方法利用自家宽带实现更高效率。文章详细讲解了端口映射教程,包括不同网络环境(仅光猫、光猫+路由器)下的设置步骤,并提供实时同步动态IP的两种方案:自建服务器或使用三方API接口。最后附上VM虚拟机全版本下载链接,便于用户在穿透后将服务运行于虚拟环境中,提升安全性与适用性。
1205 7
|
安全 网络安全 UED
为何长效代理静态IP是网络管理的关键要素
在信息化时代,静态长效IP代理对网络管理至关重要。它能提升网络服务质量,确保远程办公、视频会议等应用的稳定性和连续性;减少延迟和网络拥堵,加快数据传输;提高网络安全,便于设置访问权限,防止未授权访问。91HTTP高质量代理IP服务商助力高效信息获取。
357 23
|
传感器 算法 物联网
基于粒子群算法的网络最优节点部署优化matlab仿真
本项目基于粒子群优化(PSO)算法,实现WSN网络节点的最优部署,以最大化节点覆盖范围。使用MATLAB2022A进行开发与测试,展示了优化后的节点分布及其覆盖范围。核心代码通过定义目标函数和约束条件,利用PSO算法迭代搜索最佳节点位置,并绘制优化结果图。PSO算法灵感源于鸟群觅食行为,适用于连续和离散空间的优化问题,在通信网络、物联网等领域有广泛应用。该算法通过模拟粒子群体智慧,高效逼近最优解,提升网络性能。
551 16
|
存储 运维 监控
2025年4月深度评测:10款最值得部署的网络监控软件
真正卓越的运维不仅仅是对当前问题的解决,更在于对未来的预测和防范。 OpManager 的预测报表功能可以为用户提供有关未来存储需求增长方式的直观展示,帮助用户进行基于需求的容量规划,从而避免成本浪费。
677 0