У меня есть DNS-сервер, работающий на компьютере CentOS 7 в 10.8.0.1 . На этой машине у меня есть несколько образов докеров , работающих в подсети 10.8.1.0/24 , без маскировки. Я бы хотел, чтобы изображения докеров могли разрешать адреса по URL-адресам, определенным на моем локальном DNS-сервере, но по какой-то причине никакие учебники в Google не помогли мне.

Я попытался отредактировать /etc/resolv.conf хост-машины, который теперь выглядит следующим образом:

# Generated by NetworkManager
search home centos
nameserver 10.8.0.1
nameserver 2001:730:3eb2::10
nameserver 2001:730:3eb2::11

Я также попытался отредактировать /etc/docker/daemon.json , который выглядит так:

{
        "dns": ["10.8.0.1", "1.1.1.1"]
}

Контейнер Docker может разрешать любые URL-адреса с глобальных DNS-серверов, но я не могу понять, почему он не может разрешить URL-адреса на моем локальном DNS-сервере.

Хост-машина может разрешать запросы DNS, а также клиентов, подключающихся к компьютеру через VPN, где параметр dhcp-option DNS 10.8.0.1 клиентам, подключающимся.

Контейнеры могут ping адрес 10.8.0.1 .

Один из контейнеров имеет следующий файл /etc/resolv.conf :

search home centos
nameserver 127.0.0.11
options ndots:0

Мой файл named.conf выглядит следующим образом:

acl trusted {
        2001:0db8:ee00:abcd::/64;
        127.0.0.1;
        10.8.0.0/8;
};

options {
        listen-on port 53 { 127.0.0.1; 10.8.0.1; };
        listen-on-v6 port 53 { ::1; 2001:db8:ee00:abcd::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { trusted; };

        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};
... #Zones are coming after this

0