
我需要協助使用 Azure DNS 專用區域進行 DNS 解析。我按照這裡的文檔進行操作:https://docs.microsoft.com/en-us/azure/dns/private-dns-getstarted-cli
我能夠建立私有區域 example.local 並建立一個名為 Jump.example.local 的 A 記錄。按照文件的指示,我建立了 2 個 VM Ubuntu 18.04 LTS。取得其中一個 IP 10.0.1.4 並用它更新我的 Jump.example.local 記錄。
當我嘗試從作業系統執行以下命令列時,我沒有從 A 記錄中得到任何結果。
dig jump.example.local
如果我檢查我的 DNS 解析配置,我會得到:
systemd-resolve --status
Global
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Link 2 (eth0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 168.63.129.16
DNS Domain: xqelsdawdufutaole0y2mhw4zb.vx.internal.cloudapp.net
如果我直接在 dig 中使用我的 dns 配置從虛擬機器指出的 dns 伺服器,它會找到所需的 A 記錄。
dig @168.63.129.16 jump.example.local
; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> @168.63.129.16 jump.example.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62699
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
; COOKIE: 4681bec0bce6fa9e (echoed)
;; QUESTION SECTION:
;jump.example.local. IN A
;; ANSWER SECTION:
jump.example.local. 2042 IN A 10.0.1.4
;; Query time: 1 msec
;; SERVER: 168.63.129.16#53(168.63.129.16)
;; WHEN: Mon Aug 27 16:11:54 UTC 2018
;; MSG SIZE rcvd: 76
我嘗試重新啟動虛擬機,嘗試將配置注入到 netplan 中。但它似乎沒有趕上dns伺服器來使用。
網路規劃設定檔
# /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
ephemeral:
dhcp4: true
match:
driver: hv_netvsc
name: '!eth0'
optional: true
hotpluggedeth0:
dhcp4: true
match:
driver: hv_netvsc
name: 'eth0'
nameservers:
addresses: [168.63.129.16]
search: [example.local]
在我看來,ubuntu 作業系統無法擷取 example.local 區域應轉送至 Azure DNS 的情況。
更新#1
我雖然使用了另一個不存在或不屬於命令列systemd-resolve --status
返回列表的 TLD,但我使用了它.xyz
,這次它沒有任何問題。因此,在我看來,我需要找出正確的 netplan 配置,以強制example.local
針對正確的名稱伺服器進行搜索,而不是由服務啟動的 127.0.0.53:53 dns 名稱解析器systemd-resolve
。
更新#2
這是設定檔/etc/netplan/50-cloud-init.yaml
。
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
version: 2
ethernets:
eth0:
dhcp4: true
match:
macaddress: 00:0d:3a:f4:5a:99
set-name: eth0
nameservers:
addresses: [168.63.129.16]
search: [example.local]
編輯文件並應用命令列後,sudo netplan apply
它就可以工作了。我還嘗試重新啟動,配置保持不變。感謝@nancy-xiong-msft 進行測試。
答案1
看來你已經想通了。我還使用 Ubuntu LTS 16 和 Ubuntu LTS 18.04 對此進行了測試。dig vm01.contoso.local
Ubuntu LTS 18.04 中也發生了同樣的無結果情況。然而,它在 Ubuntu LTS 16 中確實有效。
另外,我將以下內容新增到 netplan 配置中
nameservers:
addresses: [168.63.129.16]
search: [contoso.local]
然後運行一下sudo netplan apply
,現在就可以運行了。