macOS 互联网系统恢复抓包分析

macOS 互联网系统恢复抓包分析

背景

    最近有同学反映Mac机器通过开机按下 Command+Option+R 进行互联网恢复安装系统的时候下载速度过慢问题、报错等问题,特此进行了抓包分析,分析结果如下;

    一般来说, macOS 通过互联网恢复系统会经历以下阶段

第一阶段

开机按下 Command+Option+R 之后会要求连接WiFi网络(未连接有线网络的情况下),然后电脑会先后请求以下两个域名

osrecovery.apple.com
oscdn.apple.com

第一阶段抓包截图如下;

00.wireshark.full
简要过程说明:

1.本例中电脑会发起DHCP请求最终为本机获取到结尾为192的IP地址

2.发起DNS查询请求查询 osrecovery.apple.com (其中可以看到机器代号信息以及在第三步中RecoverImage的下载地址等信息)

3.发起DNS查询请求查询 oscdn.apple.com

4.使用HTTP GET获取 BaseSystem.dmg

注: 这里再次验证了开机按下 Command+Option+R 使用的是 HTTP GET 方式获取的 BaseSytem.dmg , 所以这个阶段处于内网的苹果缓存服务是无法使用的。

第二阶段

在进入macOS Utilities 工具执行 "Reinstall macOS" 命令后,机器主要会发起以下DNS查询,

域名列表
1-courier.push.apple.com
www.apple.com
albert.apple.com
ocsp.digicert.com
swdist.apple.com
swscan.apple.com
swcdn.apple.com
lcdn-locator.apple.com

第二阶段抓包截图如下;

04.masos.image

其中最主要的DNS请求有4条,主要访问的域名为;

lcdn-locator.apple.com
swscan.apple.com
swdist.apple.com
swcdn.apple.com

先说第1条;

    调用Recovery环境中内置的 AssetCacheLocatorUtil 命令从苹果服务器(17.0.0.0/8)获取当前网络中是否有注册过的缓存服务器,如果有,当前系统安装过程中所需的文件优先从缓存服务器获得,如果没有找到缓存服务器或者当前电脑的IP地址不在缓存服务器服务范围之内,将通过互联网获得系统安装过程中所需的资源。

    后面3条DNS请求会全部重定向到akamai的CDN,系统安装过程中都会跟上述后面这3个域名交互,安装包下载全部都会和swcdn.apple.com交互.因此,除了需要有高速的互联网带宽,另外也需要有解析质量较好的DNS服务器,这决定了系统安装包的下载速度,最终影响系统安装的速度以及体验。

    很多人在通过在线方案安装系统的时候,在没有内网苹果缓存服务加持的情况下,系统安装过程中下载速度慢,安装报错等之类的问题都是因为DNS解析拿到的资源过远导致。

注:
Apple产品访问所需访问的域名列表及端口请点击这里

你可能感兴趣的:(macOS 互联网系统恢复抓包分析)