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

2024-01-26 22:36

本文主要是介绍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记录解析情况:

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

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

  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 Private endpoint DNS 记录是如何解析的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/648272

相关文章

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

Java JDK Validation 注解解析与使用方法验证

《JavaJDKValidation注解解析与使用方法验证》JakartaValidation提供了一种声明式、标准化的方式来验证Java对象,与框架无关,可以方便地集成到各种Java应用中,... 目录核心概念1. 主要注解基本约束注解其他常用注解2. 核心接口使用方法1. 基本使用添加依赖 (Maven