Azure Private endpoint DNS 记录是如何解析的

Private endpoint 从本质上来说是Azure 服务在Azure 虚拟网络中安插的一张带私有地址的网卡。

举例来说如果Storage account在没有绑定private endpoint之前,查询Storage account的DNS记录会是如下情况:

Seq        Name                                            Type            Record Value
1        HOSTNAME.blob.core.windows.net                    CNAME            blob.sn1prdstr01a.store.core.windows.net
2        blob.sn1prdstr01a.store.core.windows.net        HOST (A)        20.38.104.164

首先, HOSTNAME.blob.core.windows.net 会被解析到CNAME blob.sn1prdstr01a.store.core.windows.net。

然后, blob.sn1prdstr01a.store.core.windows.net 会被解析到公网地址 20.38.104.164。

那么,当Storage account绑定了private endpoint之后,从公网的Storage account DNS记录解析顺序会变成如下情况:

Seq        Name        Type        Record Value
1        HOSTNAME.blob.core.windows.net                    CNAME            HOSTNAME.privatelink.blob.core.windows.net
2        HOSTNAME. privatelink.blob.core.windows.net        CNAME            blob.sn1prdstr01a.store.core.windows.net
3        blob.sn1prdstr01a.store.core.windows.net        HOST (A)        20.38.104.164

可以看到 HOSTNAME.blob.core.windows.net 解析到了 CNAME HOSTNAME.privatelink.blob.core.windows.net, 之后HOSTNAME. privatelink.blob.core.windows.net 才会解析到 CNAME blob.sn1prdstr01a.store.core.windows.net,  然后解析到公网地址 20.38.104.164。

从Azure内网访问Storage account DNS 记录解析顺序会变成如下情况:

Seq        Name                                            Type            Record Value
1        HOSTNAME.blob.core.windows.net                    CNAME            HOSTNAME.privatelink.blob.core.windows.net
2        HOSTNAME.privatelink.blob.core.windows.net        HOST (A)        10.0.0.5

在这种情况下 HOSTNAME.blob.core.windows.net 会解析到  HOSTNAME.privatelink.blob.core.windows.net, 然后  HOSTNAME.privatelink.blob.core.windows.net 直接解析到Azure 内网地址 10.0.0.5。

用一张图解释上述三种DNS记录解析情况:

Azure Private endpoint DNS 记录是如何解析的_第1张图片

那么private endpoint 的dns是怎样集成到Azure virtual network的呢?

以下这个图提供了从VNET中的虚拟机解析 Private endpoint DNS记录的详细过程。

Azure Private endpoint DNS 记录是如何解析的_第2张图片

  1. VM向Azure DNS 服务器 168.63.129.16 发送查询 HOSTNAME.blob.core.windows.net 的DNS请求。
  2. Azure DNS服务器向拥有blob.core.windows.net zone 的authoritative DNS服务器发送请求。
  3. Authoritative DNS 服务器向Azure DNS 服务器返回 CNAME记录 HOSTNAME.privatelink.blob.core.windows.net。
  4. Azure DNS 服务器 发现 Private DNS zone 里面有 privatelink.blob.core.windows.net 这个域名于是查询Private DNS zone获取到A记录的Priave endpoint的IP地址 10.0.0.5。
  5. Private DNS Zone 向 Azure DNS 服务器返回 Private endpoint的IP地址。
  6. Azure DNS 服务器将 Private endpoint的IP地址返回给VM。
  7. VM 通过 Private endpoint 的 IP地址 10.0.0.5 访问Storage Account。

你可能感兴趣的:(Azure,azure)