Preliminaries

Links:

Install server and utilities
apt-get install bind9 bind9utils
Log level

For debugging purposes you may want to adjust the server's log level:

logging {
   channel querylog{
         syslog;
         severity debug 10;
         print-category yes;
         print-time yes;
         print-severity yes;
    };
    category queries { querylog;};
};
Configure server startup

Turn off IPv6. Hint from /etc/init.d/bind9:

# Don't modify this line, change or create /etc/default/bind9.
OPTIONS=""

Thus modify /etc/default/bind9:

OPTIONS="-4 -u bind"

Tip

Most (if not all) server configuration changes require a daemon to be restarted or at least reloaded for changes to become effective:

service bind9 restart
Global options in /etc/bind/named.conf.options
options {
        directory "/var/cache/bind";

        recursion no;                 # disable resursive queries
        // allow-recursion { trusted; };  # allows recursive queries from "trusted" clients
        listen-on { 141.62.75.104; };  # ns1 private IP address - listen on private network only
        allow-transfer { none; };      # disable zone transfers by default

        forwarders {
        };

        // 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 your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

        // forwarders {
        //      0.0.0.0;
        // };

        //========================================================================
        // 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
        //========================================================================
        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};
Configuring zones
/etc/bind/named.conf.local
zone "mi.hdm-stuttgart.de" {
    type master;
    file "/etc/bind/zones/db.mi.hdm-stuttgart.de"; # zone file path
};

zone "75.62.141.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/db.141.62.75";  # 141.62.75.0/24 class-C subnet
};
/etc/bind/zones/db.mi.hdm-stuttgart.de
;
; BIND data file
;
$TTL    604800
@       IN      SOA     ns4.mi.hdm-stuttgart.de. root.mi.hdm-stuttgart.de. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;

; name servers - NS records
        IN      NS      ns4.mi.hdm-stuttgart.de.


; name servers - A records
ns4.mi.hdm-stuttgart.de.          IN      A       141.62.75.104
www4.mi.hdm-stuttgart.de.         IN      A       141.62.75.104

Tip

Read about the Serial parameter.

/etc/bind/zones/db.141.62.75
; BIND reverse data file
;
$TTL    604800
@       IN      SOA     ns4.mi.hdm-stuttgart.de. root.mi.hdm-stuttgart.de. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;

; name servers - NS records
      IN      NS      ns4.mi.hdm-stuttgart.de.

; PTR Records
104   IN      PTR     sdi4a.mi.hdm-stuttgart.de.    ; 141.62.75.104