Squid Web Cache Wiki

Squid Web Cache 文档

🔗 Feature: Multicast ICP cluster

🔗 详细信息

多播本质上是将一个 IP 数据包发送给多个接收者的能力。多播常用于音频和视频会议系统。

🔗 我如何知道我的网络是否支持多播?

一种方法是询问管理您网络的人。如果您的网络管理员不知道,或者看起来很奇怪,那么您可能不支持。

另一种方法是使用 mtrace 程序,该程序可以在 Xerox PARC FTP 站点 上找到。Mtrace 类似于 traceroute。它会告诉您您与另一个站点之间的多播路径。例如

> mtrace mbone.ucar.edu
mtrace: WARNING: no multicast group specified, so no statistics printed
Mtrace from 128.117.64.29 to 192.172.226.25 via group 224.2.0.1
Querying full reverse path... * switching to hop-by-hop:
0  oceana-ether.nlanr.net (192.172.226.25)
-1  avidya-ether.nlanr.net (192.172.226.57)  DVMRP  thresh^ 1
-2  mbone.sdsc.edu (198.17.46.39)  DVMRP  thresh^ 1
-3  * nccosc-mbone.dren.net (138.18.5.224)  DVMRP  thresh^ 48
-4  * * FIXW-MBONE.NSN.NASA.GOV (192.203.230.243)  PIM/Special  thresh^ 64
-5  dec3800-2-fddi-0.SanFrancisco.mci.net (204.70.158.61)  DVMRP  thresh^ 64
-6  dec3800-2-fddi-0.Denver.mci.net (204.70.152.61)  DVMRP  thresh^ 1
-7  mbone.ucar.edu (192.52.106.7)  DVMRP  thresh^ 64
-8  mbone.ucar.edu (128.117.64.29)
Round trip time 196 ms; total ttl of 68 required.

🔗 我应该使用多播 ICP 吗?

简而言之:不,可能不应该

您应该使用多播的原因

您不应该使用多播的原因

我们只建议在您有密切控制权的网络基础设施上使用多播 ICP。换句话说,仅在您的本地区域网络上使用多播,或者如果您是 ISP,则可能在您的广域网上使用。我们认为在拥塞的链路或商品骨干网上使用多播 ICP 可能是一个坏主意。

🔗 配置 - 发送

要配置 Squid 将 ICP 查询发送到多播地址,您需要创建另一个指定为 multicast 的邻居缓存条目。例如

cache_peer 224.9.9.9 multicast 0 3130 ttl=64

您还必须指定哪些邻居将响应您的多播查询,因为隐式信任来自未知地址的任何 ICP 回复都是不明智的。

:information_source: 请注意,ICP 回复会发送回 单播 地址;它们不是多播,所以 Squid 无法判断回复是来自常规查询还是多播查询。

查询。

要配置您的多播组邻居,请使用 cache_peer 指令和 multicast-responder 选项。

cache_peer cache1 sibling 3128 3130 multicast-responder
cache_peer cache2 sibling 3128 3130 multicast-responder

这里的字段都是相关的。

:warning: ICP 端口号 (3130) 必须与上面定义多播对等方的 cache_peer 行中的端口号相同。

第三个字段必须是 parentsibling,以指示 Squid 应如何处理回复。

当为对等方设置了 multicast-responder 标志时,Squid 将不会直接 (即单播) 向其发送 ICP 查询,而是发送到特殊的 multicastcache_peer

🔗 我如何知道要使用哪个多播 TTL?

多播 TTL(在您的多播组的 cache_peer 行中指定)决定了您的 ICP 查询将“走多远”。在 Mbone 中,每个网络接口或隧道都有一个特定的 TTL 阈值。多播数据包的 TTL 必须大于该数据包的定义 TTL 才能跨越该链路转发。

例如,mrouted 手册页建议

32   for links that separate sites within an organization.
64   for links that separate communities or organizations, and are attached to the Internet MBONE.
128  for links that separate continents on the MBONE.

确定所需 TTL 的一个好方法是运行 mtrace,如上所示,并查看最后一行。它将显示到达另一台主机所需的最小 TTL。

如果您的 TTL 设置得太高,您的 ICP 消息可能会“走得太远”并被其他人窃听。如果您只在 LAN 上使用多播,正如我们建议的那样,那么您的 TTL 将会很小,例如 ttl=4

🔗 配置 - 接收和响应

您必须使用 mcast_groups 指令告诉 Squid 加入多播组地址。

例如

mcast_groups  224.9.9.9

当然,您的多播 ICP 组的所有成员都需要使用完全相同的多播组地址。

:warning: 请谨慎选择多播组地址!如果两个组织

碰巧选择了相同的多播地址,那么他们可能会发现他们的群组在某个点“重叠”。如果其中一个查询缓存使用较大的 TTL 值,这一点尤其明显。有两种方法可以减少群组重叠的风险:

使用唯一的地址是一个好主意,但并非没有潜在问题。如果您随机选择地址,您怎么知道其他人不会也随机选择相同的地址?NLANR 已被 IANA 分配了一块多播地址,用于这种情况。如果您想获得其中一个地址,请 写信给我们。但是,请注意,NLANR 或 IANA 无权阻止任何人使用分配给您的地址。

限制多播消息的范围可能是更好的解决方案。它们可以通过上面讨论的 TTL 值或一些称为管理范围地址的新技术来限制。在这里,您可以为特定地址的流量配置明确定义的边界。RFC 2365 (Administratively Scoped IP Multicast) 描述了这一点。

类别:功能

导航:站点搜索站点页面类别🔼 向上