你的这个问题有多个技术:
1. “阿里云公共服务内网域名”,我没有阿里云机器,我记得好像是 `
aliyuncs.com`,这是阿里云持有的域名,专供云内网使用。当 ecs 主机请求解析此域名时,会返回内网解析。
2. “没有外网为何能解析内网域名”,阿里云运行的虚拟机镜像是定制的,一般预装了 cloud-init (或等效软件)并设置开机自启。他会遵循 DHCP 或者请求阿里云的 metadata_urls ,进行额外的配置。其中就包括了 配置阿里云专用 DNS 。如果这个 DNS 是合格的公网 IP ,可能阿里云使用了 SNAT ,或者将 DNS 所在机器的内网路由重定向回了云网络重新分发。
3. 阿里云主机专用 DNS ,此 DNS 可以根据你的 VPC 返回相应的内网 IP ,甚至拦截公网域名返回内网地址。例如你在 ecs 内请求公网域名
mirrors.aliyun.com ,会返回内网地址。因为阿里云持有
aliyun.com ,所以这个拦截行为合法。
4. 100.64.0.0/10 网段,这是 RFC6598 定义的保留网段,用途为“用于在电信级 NAT 环境中服务提供商与其用户通信”。这个地址不准在公网路由,阿里云使用其作为云内网公共网络是合理的。
5. ecs 为何能访问 100.64.0.0/10 网段。阿里云的 vpc 都是基于物理网络虚拟化出来的。所有的租户网络标记(一如 vlan id 或者 vxlan segments ),标记不同就不允许互通。而 100.64 就在主机网络或者一个公共标记中。特许与租户网络互通。