问题描述

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

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

  1. 【API管理 APIM】APIM集成内部VNet后,自我访问出现(Unable to connect to the remote server)问题,而Remote Server正是APIM它自己

    问题描述 在使用APIM配置内部VNET后,如API-1正常配置访问后端服务器的一个接口,而API-2则是通过调用APIM中的API-1来作为backendUrl,会出现500错误. 经过测试,目前这 ...

  2. 【Azure API 管理】APIM集成内网虚拟网络后,启用自定义路由管理外出流量经过防火墙(Firewall),遇见APIs加载不出来问题

    问题描述 使用 Azure 虚拟网络,Azure APIM 可以管理无法通过 Internet 访问的 API,达到以保护企业内部的后端API的目的.在虚拟网络中,启用网络安全组(NSG:Networ ...

  3. 【Azure 微服务】基于已经存在的虚拟网络(VNET)及子网创建新的Service Fabric并且为所有节点配置自定义DNS服务

    问题描述 创建新的Service Fabric集群,可以通过门户,Powershell命令,或者是ARM模板.但是通过门户和PowerShell命令时,创建的SF集群都会自动新建一个虚拟网络而无法使用 ...

  4. 【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token

    问题描述 在APIM中配置对传入的Token进行预验证,确保传入后端被保护的API的Authorization信息正确有效,可以使用validate-jwt策略.validate-jwt 策略强制要求 ...

  5. 【Azure API 管理】APIM CORS策略设置后,跨域请求成功和失败的Header对比实验

    在文章"从微信小程序访问APIM出现200空响应的问题中发现CORS的属性[terminate-unmatched-request]功能"中分析了CORS返回空200的问题后,进一 ...

  6. 选择API管理平台之前要考虑的5个因素

    API(应用程序编程接口)经济的飞速增长导致对API管理平台的需求相应增加. 这些解决方案可在整个生命周期内帮助创建,实施,监控,分析,保护和管理API. 据一些估计,全球API管理市场预计在2018 ...

  7. API管理之利剑 -- Eolink

    随着信息化飞速增长的还有各信息系统中的应用接口( API ),API 作为信息系统内部及不同信息系统之间进行数据传输的渠道,其数量随着软件系统的不断庞大而呈指数型增长,如何管理这些 API 已经在业界 ...

  8. 【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败

    问题描述 使用微软API管理服务(Azure API Management),简称APIM. 因为公司策略要求只能内部网络访问,所以启用了VNET集成.集成方式见: (在内部模式下使用 Azure A ...

  9. 【Azure 应用服务】App Service与APIM同时集成到同一个虚拟网络后,如何通过内网访问内部VNET的APIM呢?

    问题描述 App Service访问的APIM已配置内部虚拟网络(Internal VNet)并拥有内网IP地址.App Service与APIM都在相同的虚拟网络(VNET)中.App Servic ...

随机推荐

  1. 大写的服,看完这篇你还不懂RocketMQ算我输

    目录 RocketMQ介绍 RocketMQ概念 为什么要用RocketMQ? 异步解耦 削峰填谷 分布式事务最终一致性 数据分发 RocketMQ架构 RocketMQ消息类型 普通消息 顺序消息 ...

  2. Linux实战(20):Docker部署EKL入门环境记录文档

    安装环境: centos7 ,EKL全套为7.5.2版本 前期工作 拉取已下三个镜像 docker.io/logstash 7.5.2 b6518c95ed2f 6 months ago 805 MB ...

  3. zabbix邮件报警设置(加密)

    邮件设置如下 端口号选择465

  4. turtle空间坐标系

    利用空间坐标改变行进 以海龟的角度来看,无论往那个方向运行,都叫正方向 turtle.fd向海龟的正前方运行,turtle.bk向反方向运行

  5. 最火的开源 IDE介绍与安装教程

    导读:开发C/C++最好的IDE是什么,尤其对于很多初学者来说用什么IDE比较容易上手,本文将做以介绍,并为您演示如何下载与安装. 本文字数:1015,阅读时长大约:10分钟 (一)最火的开源IDE ...

  6. redis.conf讲解

    转自https://www.cnblogs.com/zhang-ke/p/5981108.html #redis.conf # Redis configuration file example. # ...

  7. 关于Apache报错 couldn't perform authentication. AuthType not set!

    今天在使用apache搭建yum的web服务时,配置完成后.访问http://ip 时,浏览器报错:500 Internal Server Error 然后查询error.log发现,有如下错误提示: ...

  8. Codeforces1146G. Zoning Restrictions

    Description You are planning to build housing on a street. There are n spots available on the street ...

  9. jwt攻击手段

    jwt 秘钥泄漏/敏感文件泄漏 在一些配置文件被我们可查的情况下,包括各种文件读取,源码泄漏,此时伪造身份就变得很容易了. 空加密算法 对于明文的加密算法通常为HS256,在jwt中分为三个部分,以点 ...

  10. 基于vue2定义自己的图表echart组件

    先安装echarts cnpm i echarts -S,然后定义父组件 <template> <div> <echarts :option="echartOp ...