天天看點

【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後,之後的操作全部預設下一步就可以。

  

【API管理 APIM】APIM內建内部VNet時,常遇見的關于自定義DNS服務問題。

    等安裝好之後,下一步就是配置 正向解析 (通過域名解析出IP位址)。 選擇Forward Lookup Zones -> New Zone -> 輸入需要添加的Zone名字,如azure-api.cn。然後就是一切預設值到最後。

【API管理 APIM】APIM內建内部VNet時,常遇見的關于自定義DNS服務問題。

      在建立的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域名。配置完成後的效果如下:

【API管理 APIM】APIM內建内部VNet時,常遇見的關于自定義DNS服務問題。

二:在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位址
【API管理 APIM】APIM內建内部VNet時,常遇見的關于自定義DNS服務問題。

配置成功後,可以使用nslookup來檢視配置的DNS是否生效。測試效果如:

【API管理 APIM】APIM內建内部VNet時,常遇見的關于自定義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

當在複雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 雲中,恰是如此!

繼續閱讀