在 Mac 上的多个公共 IP 地址上启用内容缓存发现
如果您的网络使用多个公共 IP 地址连接到互联网,内容缓存用来注册的地址可能不同于客户端用来发现的地址,则您需要为内容缓存和客户端都提供那些地址的列表。这些列表用于交叉匹配涉及多个公共 IP 地址的注册和发现请求。
为避免手动配置客户端,内容缓存使用 DNS TXT 记录来发布公共 IP 地址信息给网络上的客户端。TXT 记录需要发布在客户端所使用的默认 DNS 搜索域中。
在 macOS 10.15 或后续版本中,您还可以指定首选的本地 IP 地址以减少网络上其他内容缓存的影响。如果 TXT 记录中没有声明首选的本地 IP 地址,则所有客户端将使用任何可用的内容缓存。
公共 IP 地址范围的 TXT 记录的正确数据可以自动或手动生成。在任一情况下,均需要编辑 DNS 记录,或者向 DNS 服务提供商提供设置来在区域文件中创建或编辑 TXT 记录。请注意,您不能为首选的本地 IP 地址自动生成 TXT 记录,这些地址必须手动创建。
【注】这些记录仅在您的内部网络上需要。外部 DNS 不需要额外的记录。
配置内容缓存客户端以支持多个 IP 地址
在 Mac 上,选取苹果菜单 >“系统偏好设置”,点按“共享”,然后选择“内容缓存”。
按住 Option 键,然后点按“高级选项”。
点按“客户端”。
点按“我的本地网络”弹出式菜单,然后选取“使用自定公共 IP 地址”。
点按添加按钮 ,然后输入公共 IP 地址的范围。
为任何其他您想要输入的 IP 地址范围重复此操作。
创建 DNS 文本记录以描述所输入的公共 IP 地址。
您可以使用内容缓存服务来生成文本记录,也可以手动创建(格式如下所述)。若要生成文本记录:
请点按“DNS 配置”按钮。
选取您的 DNS 服务器类型(BIND 或 Windows)。
拷贝生成的文本记录,然后将其粘贴到文本文件中以供稍后使用(将其添加到 DNS 区域文件)。
点按“完成”。
完成配置后,点按“好”。
将文本记录添加到适用于域的授权 DNS 区域文件。
DNS TXT 记录格式
用于指定 TXT 记录的语法以及 TXT 记录中的非 ASCII 字符会因 DNS 服务器而异。此处列举的示例仅供参考。
适用于内容缓存的 DNS 文本记录与 DNS-SD TXT 记录(键值对)的格式相同:
name._tcp 10800 IN TXT "[prs|prn|fss|fsn]=addressRanges"
为公共 IP 地址范围使用 prs 和 prn 键;为首选内容缓存的本地 IP 地址范围使用 fss 和 fsn 键。
IPv4 和 IPv6 地址均可接受,但仅支持 IPv4。
以下示例每个都定义了一组相同的两个 IP 地址范围:一个范围的起始地址为 17.53.22.2,结尾地址为 17.53.22.254,和一个包含单个 IP 地址 93.184.216.119 的范围。这两个范围的不同之处在于第一个示例使用了 prs 键,第二个示例使用了 prn 键。
_aaplcache._tcp 10800 IN TXT "\x2aprs=17.53.22.2-17.53.22.254,93.184.216.119"
_aaplcache._tcp 10800 IN TXT "\x12prn=\x24\x11\x35\x16\x02\x11\x35\x16\xfe\x14\x5d\xb8\xd8\x77"
这些键针对值中所指定的 IP 地址范围使用不同的格式:
prs 或 fss:prs 或 fss 键的值是采用表示法格式(ASCII 点符号)的逗号分隔 IP 地址范围序列。此语法可实现轻松配置。范围包含单个 IP 地址或两个按连字符分隔的 IP 地址。
prn 或 fsn:prn 或 fsn 键的值是采用二进制网络字节顺序格式 IP 地址连接范围序列。此语法适合以表示法格式指定时对于 DNS 记录而言太长的范围序列。序列中的每个范围前面都含指定其后所跟范围类型的字节:
0x14 表示单 IPv4 地址。
0x16 表示单 IPv6 地址。
0x24 表示起始和结尾 IPv4 地址范围。
0x26 表示起始和结尾 IPv6 地址范围。
您可以将多个记录链接起来。如果这么做,将第一条记录命名为 _aaplcache._tcp
,然后将后续记录命名为 _aaplcache1._tcp
至 _aaplcache24._tcp
,最多可有 25 条链接的记录。
若要保持与运行 macOS 10.14 或更早版本的客户端的兼容性,请将使用 prs 或 prn 键的记录放在任何使用 fss 或 fsn 键的记录之前。
通过将连接标记放在除最后一条 TXT 记录之外的所有记录中,将记录链接在一起。
prs 和 prn 语法可在链中的记录之间混合使用。使用 prs 语法时,将“,more”追加到记录值的结尾。使用 prn 语法时,将“+”(0x2b) 追加到记录值的结尾。第一条缺乏此类连接标记的记录将结束链。
链接的记录一次以五条为一批进行解析,即 _aaplcache._tcp 和 _aaplcache1._tcp 至 _aaplcache4._tcp 先并行解析;如果它们均以连接标记结尾,则接着解析 _aaplcache5._tcp 至 _aaplcache9._tcp,以此类推。
以下是三条链接记录的示例:
_aaplcache._tcp 10800 IN TXT "\x2bprs=17.250.1.1,17.250.2.1-17.250.2.254,more"
_aaplcache1._tcp 10800 IN TXT "\x0eprn=\x24\x11\xfa\x03\x01\x11\xfa\x03\xfe+"
_aaplcache2._tcp 10800 IN TXT "\x0eprs=17.250.4.5"
用于指定 TXT 记录的语法以及 TXT 记录中的非 ASCII 字符可能会因 DNS 服务器而异。部分服务器不需要前导长度类型(这些示例中分别为 \x2a、\x12、\x2b、\x0e 和 \x0e),因为它们会自动预加。
示例 1
此示例演示 prs 或 prn 记录和 fss 或 fsn 记录都需要的情况。
假设您有一个名为“_aaplcache._tcp”且值为“prs=203.0.113.10-203.0.113.19”的 DNS TXT 记录,以及使用本地地址(10.0.0.30、10.1.0.30 和 10.2.0.30)部署的三个内容缓存。前两个仅提供共享的内容,最后一个提供共享的内容和 iCloud 内容。
若要防止客户端使用未授权的内容缓存,您可以在记录后追加“,more”并添加第二条记录,例如:
_aaplcache._tcp prs=203.0.113.10-203.0.113.19,more
_aaplcache1._tcp fss=10.0.0.30,10.1.0.30,10.2.0.30
只要三个内容缓存中至少有一个内容缓存在运行,这些内容缓存将为查找共享内容的客户端(运行 macOS 10.15、iOS 13、iPadOS 13 或者 Apple TVOS 13 或后续版本)所专用。
如果三个服务器都已离线,查找共享内容的客户端将使用任何可用的内容缓存。
只要 10.2.0.30 仍在运行,它将为查找 iCloud 内容的客户端(运行 macOS 10.15、iOS 13、iPadOS 13、Apple TVOS 13 或后续版本)所专用。如果已离线,查找 iCloud 内容的客户端会使用任何可用的内容缓存。
运行 macOS 10.14 或更早版本或者 iOS 12 或更早版本的设备会使用任何可用的内容缓存,而不仅限于这三个。
示例 2
此示例演示不需要 prs 或 prn 记录的情况。
假设您仅有一个公共 IP 地址且完全不使用 DNS TXT 记录功能,但有一些内容缓存位于为服务器机器 (192.168.50/24) 保留的子网上。
若要防止未授权的内容缓存,您可以设定如下一条记录:
_aaplcache._tcp fss=192.168.50.1-192.168.50.254
只要在该范围内至少有一个内容缓存可用于它所查找的客户端类型(共享或 iCloud),该内容缓存将为客户端(运行 macOS 10.15、iOS 13、iPadOS 13、Apple TVOS 13 或后续版本)所专用。
将 TXT 记录添加到 DNS 区域文件
将一条或多条 TXT 记录添加到 DNS 服务器上本地域的区域文件。将 DNS TXT 记录添加到如下区域:
针对域授权
与网络客户端的默认搜索域匹配
例如,如果组织向您自己的域提供 DNS 服务并且是 example.com 主机名的授权来源,则将缓存 TXT 记录放在 example.com zone 文件中。
【重要事项】如果未为您的域托管授权 DNS 服务,则您无法添加 TXT 记录。与 DNS 服务提供商协调,让他们添加提供的 TXT 记录。
如果您使用的是 BIND9 DNS,请拷贝生成的 TXT 记录,并将其粘贴到您的 DNS 区域文件。
对于 Linux 上基于 BIND9 的 DNS,此文件位于 /etc/bind/
目录中,而且区域文件名称已在 /etc/bind/named.conf
中定义(最有可能是“db.example.com”)。
如果使用的是 Windows DNS,请执行以下一项操作:
如果使用内容缓存服务生成文本记录:使用网络的 DNS 区域名称替换所生成命令中的 ZoneName 变量,然后在 Windows DNS 电脑上运行命令。
如果手动创建文本记录:使用 Windows Server 管理工具手动输入 TXT 记录信息。