【API管理 APIM】APIM集成内部VNet时,常遇见的关于自定义DNS服务问题。

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 【API管理 APIM】APIM集成内部VNet时,常遇见的关于自定义DNS服务问题。

问题描述

Azure 的APIM集成虚拟网络有两种方式,外部VNET, 内部VNET.

  • 外部VNET,要求低,可以通过APIM访问VNET中的VM等资源,不需要配置自定义DNS服务器,这种方式下,APIM没有内部的私有IP。
  • 内部VNET,要求多,需要自定义DNS服务器,并且外部不能访问APIM的接口,只能在VNET的资源(如VM)中访问。必须在DNS 服务器中配置A记录,指定访问到为APIM分配的内网IP地址。

而在配置内部VNET的时候,需要先准备好:

  • VM (Azure 中虚拟机,用于作为DNS服务器)
  • VNET (虚拟网络)
  • 独立的子网
  • 在VNET中修改默认的DNS服务器到自定义的DNS服务器中,注意,这里需要配置的是该VM的内网地址

由于在使用APIM的时候,可能对DNS的配置,VNET中的设置都不熟悉,以下的步骤就是介绍如何配置DNS修改VNET,及完成内部VNET集成。

 

 

一:启用自定义DNS服务器

  (由于APIM在对VNET的修改耗时非常长,15~45分钟左右,所以可以先准备好DNS服务器以节约时间)

  以Windows Server 2016 DataCenter为例,启动DNS Server非常简单,在Windows添加角色中选择DNS Server后,之后的操作全部默认下一步就可以。

  

   等安装好之后,下一步就是配置 正向解析 (通过域名解析出IP地址)。 选择Forward Lookup Zones -> New Zone -> 输入需要添加的Zone名字,如azure-api.cn。然后就是一切默认值到最后。

  

     在新建的Zone中添加A记录: 这一步需要等到APIM中完成VNET集成后,根据文档中的需要,把以下的内容都配置到该Zone下。


10.1.0.5 contosointernalvnet.azure-api.cn
10.1.0.5 contosointernalvnet.portal.azure-api.cn
10.1.0.5 contosointernalvnet.developer.azure-api.cn
10.1.0.5 contosointernalvnet.management.azure-api.n
10.1.0.5 contosointernalvnet.scm.azure-api.cn
Reference Link: https://docs.azure.cn/zh-cn/api-management/api-management-using-with-internal-vnet#apim-dns-configuration

  当然,这里需要修改为APIM的内网IP地址和自定义的APIM域名。配置完成后的效果如下:

     

 

 

二:在Azure VNET中修改默认的DNS服务器为该VM的内网IP地址

 (此点是必须的操作,不然在该VM中或者是同一VNET的VM中都无法解析到配置的DNS域名,但使用Ping时,获取到这样的错误,则表示配置的DNS服务器还没有在整个VNET中有效)

C:\Users\vmadmin>ping lbapimvnet01.azure-api.cn

Ping request could not find host lbapimvnet01.azure-api.cn. Please check the name and try again.

  需要的修改办法及在VNET中设置自定义的DNS服务器,默认使用的是由Azure提供的DNS服务器,但是当使用APIM集成内部VNET时,则必须自定义DNS服务器,不然内网中的所有资源均无法访问APIM.

  • 注意,这里DNS服务器的地址必须为内网的IP地址

配置成功后,可以使用nslookup来查看配置的DNS是否生效。测试效果如:

 

 

参考文档

如何使用Windows Server搭建DNS服务器https://www.58voip.com/build-windows-server-dns/

在内部虚拟网络中使用 Azure API 管理服务https://docs.azure.cn/zh-cn/api-management/api-management-using-with-internal-vnet#apim-dns-configuration

 

 

相关文章
|
3月前
|
并行计算 Java 数据处理
SpringBoot高级并发实践:自定义线程池与@Async异步调用深度解析
SpringBoot高级并发实践:自定义线程池与@Async异步调用深度解析
298 0
|
3月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
295 2
|
27天前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
2月前
|
JSON 关系型数据库 测试技术
使用Python和Flask构建RESTful API服务
使用Python和Flask构建RESTful API服务
117 2
|
3月前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
116 9
|
4月前
|
人工智能 Serverless API
一键服务化:从魔搭开源模型到OpenAI API服务
在多样化大模型的背后,OpenAI得益于在领域的先发优势,其API接口今天也成为了业界的一个事实标准。
一键服务化:从魔搭开源模型到OpenAI API服务
|
4月前
|
Go API 开发者
深入探讨:使用Go语言构建高性能RESTful API服务
在本文中,我们将探索Go语言在构建高效、可靠的RESTful API服务中的独特优势。通过实际案例分析,我们将展示Go如何通过其并发模型、简洁的语法和内置的http包,成为现代后端服务开发的有力工具。
|
3月前
|
程序员 开发者 Python
深度解析Python中的元编程:从装饰器到自定义类创建工具
【10月更文挑战第5天】在现代软件开发中,元编程是一种高级技术,它允许程序员编写能够生成或修改其他程序的代码。这使得开发者可以更灵活地控制和扩展他们的应用逻辑。Python作为一种动态类型语言,提供了丰富的元编程特性,如装饰器、元类以及动态函数和类的创建等。本文将深入探讨这些特性,并通过具体的代码示例来展示如何有效地利用它们。
69 0
|
5月前
|
API Java Python
API的神秘面纱:从零开始构建你的RESTful服务
【8月更文挑战第31天】在现代网络应用开发中,RESTful API已成为数据交互的标准。本文通过比较流行的技术栈(如Node.js、Python的Django和Flask、Java的Spring Boot)及其框架,帮助你理解构建RESTful API的关键差异,涵盖性能、可扩展性、开发效率、社区支持、安全性和维护性等方面,并提供示例代码和最佳实践,指导你选择最适合项目需求的工具,构建高效、安全且易维护的API服务。
69 0
|
5月前
|
Java 缓存 数据库连接
揭秘!Struts 2性能翻倍的秘诀:不可思议的优化技巧大公开
【8月更文挑战第31天】《Struts 2性能优化技巧》介绍了提升Struts 2 Web应用响应速度的关键策略,包括减少配置开销、优化Action处理、合理使用拦截器、精简标签库使用、改进数据访问方式、利用缓存机制以及浏览器与网络层面的优化。通过实施这些技巧,如懒加载配置、异步请求处理、高效数据库连接管理和启用GZIP压缩等,可显著提高应用性能,为用户提供更快的体验。性能优化需根据实际场景持续调整。
105 0

热门文章

最新文章

推荐镜像

更多