据我了解,IANA 分配的公共 IPv6 地址将具有前缀 2000::/3。这些 IP 地址将可通过互联网路由。
另一端的 IPv6 多播地址以 FF00::/8 为前缀。
我的理解是 IPv6 多播地址无法通过互联网路由。我说得对吗?如果是这样,有没有办法在 IPv6 中通过互联网进行一对多 IP 路由?
答案1
那么我是否能够通过互联网访问多播组,还是只能通过像 IPv4 这样的私有网络来支持?
我必须纠正你在这里似乎做出的一个假设。
如果您与目的地之间的所有路由器都支持多播,那么多播肯定可以在 IPv4 互联网上工作。它只是在许多地方被阻止或未配置。我怀疑这是因为多播尚未得到很好的理解,许多人认为他们不需要它。所以他们只是不允许它通过他们的防火墙/路由器。
IPv6 确实能够像 IPv4 一样在全球范围内实现多播。只有时间才能告诉我们人们是否真的允许通过他们的网络进行多播。
答案2
IPv6 公共单播地址的前缀为 2000::/3(目前为止)。多播的分配包括本地链路、各种本地范围和全局寻址(根据 RFC3307)。它的基本思想与 IPv4 多播相同,其中 224/4 空间中的一块被留作 GLOP 地址等。
也请查看 RFC3306,我认为它可能更直接地回答您的问题。
本规范定义了 IP 版本 6 协议的多播寻址架构的扩展。本文档中介绍的扩展允许基于单播前缀分配多播地址。通过同时委派多播地址和单播前缀,网络运营商将能够识别其多播地址,而无需运行域间分配协议。
因此,这个想法是,如果您有一个全局路由的 /64,那么它可以包含在总体组 ID 中,从而为您提供可以全局路由的内容。换句话说,如果您已经有一个 v6 前缀和一个适当启用的运营商,那么您已经设置好了。
答案3
该标准允许全局多播路由,但据我所知,目前大多数 ISP 仅限制多播用于其用途(IPTV 等)
答案4
我看到很多答案都认为你搞错了多播是什么。你没有搞错,你的问题也很清楚。我问了自己这个问题:
我可以通过 IPv6 互联网进行多播吗?
传统上,例如在 IPv4 中,我需要请求一个永久的全局多播地址(或子网)并将其分配给我的网络。这在 IPv6 中仍然是可能的。但是,IPv6 本质上是多播友好的,因此包含一些机制让我可以向您进行多播而无需请求唯一地址是有意义的。
当三个人分别在两个物理上独立的网络上玩同一个网络游戏时(六个人),优势就变得显而易见。选项是向每个玩家单播数据包(每次更新发送五个数据包),或多播(每次更新发送一个或两个数据包):第一个数据包将发送到本地 LAN 上玩家的链路本地多播地址,另一个数据包将发送到全局多播地址,路由器会理解这是发给另一个 LAN 上的玩家的。甚至可能出现数据包只发送到全局多播地址一次的情况,路由器(或本地客户端)知道如何处理。后者肯定更有效率。
鉴于多播如此有用,如果 IANA 必须为每个想要玩网络游戏、召开视频会议或向朋友直播现场表演等的人分配多播前缀,那会很恼火……
这来自 IANA 的申请表明确指出您可能不需要请求永久的 IPv6 多播地址,这很好。
基于单播前缀的 IPv6 多播地址
当然,这个问题已经得到解决。标题“基于单播前缀的 IPv6 多播地址”应该已经说明了一切:如果您拥有一个全球唯一的 IPv6 IP 地址,那么您(您的计算机/设备)可以为自己分配一个基于单播分配的全球唯一的多播地址。要求是每个点(服务器、路由器、客户端)的软件都知道它在做什么。旧路由器和懒惰的 ISP 很可能是未来几年的败笔。
对于一个看似非常简单的问题,要找到答案却非常困难,而我能找到的最接近的明确答案是RFC3306:
以下是一些基于单播前缀的多播地址结构的示例。
- Global prefixes - A network with a unicast prefix of 3FFE:FFFF:1::/48 would also have a unicast prefix-based multicast prefix of FF3x:0030:3FFE:FFFF:0001::/96 (where 'x' is any valid scope).
- SSM - All IPv6 SSM multicast addresses will have the format FF3x::/96.
大多数关于 IPv6 多播的文章(和答案)都侧重于具有预定义地址的本地多播,并且没有太大帮助。关键在于客户端可以根据其单播地址为自己分配一个唯一的多播地址,当然范围仍然适用:
基于单播前缀的多播地址的范围不得超出多播地址中嵌入的单播前缀的范围。
这个问题很难回答,这并不奇怪,因为 IPv6 连接非常少,大多数最终用户无法测试互联网的 IPv6 多播能力和可靠性,因此关于它的文章并不多。事实上,大多数最终用户都不知道为什么他们会在家里使用 IPv6 多播,但应用程序已经准备就绪,正在等待。
这一页讨论了 RFC 带来的一些困惑,以及RFC3956提到了某些多播域如何难以相互通信。目前,这可能很难实现,但我认为游戏服务器(从我上面的例子来看)没有理由不能为自己分配一个多播 IPv6 地址并将该地址通知客户端,而所有这些都无需请求静态多播 IPv6 分配。
这是我未来想要亲自跟进的事情。
步骤 1:ISP 需要启用 IPv6。仍然如此。
也可以看看:RFC6308:互联网多播寻址架构概述