Предварительный просмотр частной зоны Azure DNS не работает с виртуальными машинами Ubuntu

Предварительный просмотр частной зоны Azure DNS не работает с виртуальными машинами Ubuntu

Мне нужна помощь в работе разрешения DNS с использованием частной зоны Azure DNS. Я следовал документации здесь:https://docs.microsoft.com/en-us/azure/dns/private-dns-getstarted-cli

Мне удалось создать частную зону example.local, и я создал запись A с именем jump.example.local. Как и предписано в документации, я создал 2 виртуальные машины 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

Я попробовал перезагрузить VM, пытаюсь внедрить конфигурацию в netplan. Но, похоже, он не догоняет DNS-сервер для использования.

файл конфигурации netplan

    # /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

Я думал использовать другой TLD, который не существует или не входит в список, systemd-resolve --statusвозвращаемый командной строкой, и я использовал его .xyzвместо этого, и на этот раз все получилось без проблем. Поэтому мне кажется, что мне нужно выяснить правильную конфигурацию netplan, чтобы принудительно example.localвыполнять поиск по правильному серверу имен, а не по DNS-резолверу имен 127.0.0.53:53, который запускается службой 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. Я думаю, это из-за того, что способ управления сетевыми интерфейсами в Ubuntu полностью изменился.

Также я добавляю следующее в конфигурацию netplan

nameservers:
                    addresses: [168.63.129.16]
                    search: [contoso.local]

Затем запустите sudo netplan apply. Теперь все работает.

введите описание изображения здесь

Ссылка:Настройка статических IP-адресов на сервере Ubuntu 18.04 LTS

Связанный контент