Hello,

I am new to Bind, DNS servers, and mailing lists, please excuse me if I have missed something from the documentation or other mailing list messages. I have been trying to set up a DNS server using docker compose, but I am stuck with a setup that will always "exit with code 1". I may be trying to bite off more than I can chew, but I think part of the main complication is that I am trying to use DNSSEC (though, with the relevant sections commented out, the startup still fails).

This is my docker-compose.yml (my start command has to be sudoed for some reason, Debian 12 machine: sudo docker compose up -d):

services:
bind9:
image: internetsystemsconsortium/bind9:9.20
ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "127.0.0.1:953:953/tcp"
volumes:
      - ./config:/etc/bind
      - ./cache:/var/cache/bind
      - ./zones:/var/lib/bind
      - ./log:/var/log/named
      - ./keys:/etc/dnssec-keys
restart: always

My config directory contains the named.conf file, my zones directory contains the zones: 'db.empty', and 'db.x.com'. I'm not trying to spoof x.com, just a censored-ish example.

named.conf:

// Authoritative primary
// Server-wide properties - options
options {
    // All relative paths use this directory as a base
    directory "/var/cache/bind";
    // If there is a firewall between you and nameservers you want
    // to talk to, you may need to fix the firewall to allow multiple
    // ports to talk.  See http://www.kb.cert.org/vuls/id/800113
    //========================================================================
    // If BIND logs error messages about the root key being expired,
    // you will need to update your keys.  See https://www.isc.org/bind-keys     //========================================================================     // Version statement to prevent avoid hacking with known version vulnerabilities
    version "not version";
    // Allow user queries fron any IP
    allow-query { any; };
    // User query will not reveal cached items
    allow-query-cache { none; };
    // Do not provide recursive service to user query
    allow-recursion { none; };
    allow-update { none; };
    listen-on { 127.0.0.1; };
    listen-on-v6 { any; };
    dnssec-validation auto;
};
// Logging
logging {
    channel main_log {
        // Relative to directory
        file "log/named/bind.log"versions 3 size 250k;
        // Only log info level and up
        severity info;
    };
    category default {
        main_log;
    };
};
// Control through rndc
controls {
    inet 127.0.0.1 port 953
        allow { localhost; } keys { "rndc-key"; };
};
zone "x.com"{
    type primary;
    file "/var/lib/bind/db.x.com";
    notify yes;
    // DNSSEC Key settings
    inline-signing yes;
    dnssec-policy default;
    key-directory "/etc/dnssec-keys/";
    keys {
        csk key-directory lifetime 365d algorithm ecdsa256;
    };
    parental-agents { #.#.#.#; };
    checkds explicit;
};
// Consider adding the 1918 zones here, if they are not used in your
// organization
zone "10.in-addr.arpa"{
    type master;
    file "/etc/bind/db.empty";
    allow-query { localhost; };
};
zone "168.192.in-addr.arpa"{
    type master;
    file "/etc/bind/db.empty";
    allow-query { localhost; };
};
zone "16-31.172.in-addr.arpa"{
    type master;
    file "/etc/bind/db.empty";
    allow-query { localhost; };
};

I'm not sure that sharing the zones is relevant, as they are just records that are transmitted through the server. But maybe I have to check they are being parsed correctly?


Are there more details about the image dockerfile or its use somewhere? Any help is appreciated.


Best regards and many thanks,

Pablo
-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users

Reply via email to