Hi.
I’m trying to configure named to resolve local names and external names too.
I have done a fresh install of Opensuse 15.2 with the server minimal configuration.
I’m following the opensuse guide about the The Domain Name System
I have installed all the named stuff
zypper in -t pattern dhcp_dns_server
The server has static ip 192.168.2.70, named “named”
It has IPV6 disabled
It has 192.168.2.1 (my router) as nameserver
I follow the rest of the configuration with yast.
I add 192.168.2.1 as forwarder
I add a new zone “bogus” master
another master zone 2.168.192.in-addr.arpa
I edit the bogus zone
-add a nameserver named.bogus.
-add a A record test1 192.168.2.10
-add a A record named 192.168.2.70
I edit the reverse zone
-add a nameserver 70
-add a reverse ptr 192.168.2.10 test1
-add a reverse ptr 192.168.2.70 named
open the port in the firewall, and activate named in boot.
The resulting files are
/etc/named.conf
Copyright (c) 2001-2004 SuSE Linux AG, Nuernberg, Germany.
# All rights reserved.
#
# Author: Frank Bodammer, Lars Mueller <lmuelle@suse.de>
#
# /etc/named.conf
#
# This is a sample configuration file for the name server BIND 9. It works as
# a caching only name server without modification.
#
# A sample configuration for setting up your own domain can be found in
# /usr/share/doc/packages/bind/sample-config.
#
# A description of all available options can be found in
# /usr/share/doc/packages/bind/misc/options.
options {
# The directory statement defines the name server's working directory
directory "/var/lib/named";
# enable DNSSEC validation
#
# 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
#
# The dnssec-enable option has been obsoleted and no longer has any effect.
# DNSSEC responses are always enabled if signatures and other DNSSEC data are present.
# dnssec-validation yes (default), indicates that a resolver
# (a caching or caching-only name server) will attempt to validate
# replies from DNSSEC enabled (signed) zones. To perform this task
# the server also needs either a valid trusted-keys clause
# (containing one or more trusted-anchors) or a managed-keys clause.
# If you have problems with forwarders not returning signed responses,
# set this to "no", but be aware that this may create security issues
# so better switch to a forwarder which supports DNSSEC!
#dnssec-validation auto;
managed-keys-directory "/var/lib/named/dyn/";
# Write dump and statistics file to the log subdirectory. The
# pathenames are relative to the chroot jail.
dump-file "/var/log/named_dump.db";
statistics-file "/var/log/named.stats";
# The forwarders record contains a list of servers to which queries
# should be forwarded. Enable this line and modify the IP address to
# your provider's name server. Up to three servers may be listed.
#forwarders { 192.0.2.1; 192.0.2.2; };
# Enable the next entry to prefer usage of the name server declared in
# the forwarders section.
#forward first;
# The listen-on record contains a list of local network interfaces to
# listen on. Optionally the port can be specified. Default is to
# listen on all interfaces found on your system. The default port is
# 53.
#listen-on port 53 { 127.0.0.1; };
# The listen-on-v6 record enables or disables listening on IPv6
# interfaces. Allowed values are 'any' and 'none' or a list of
# addresses.
# listen-on-v6 { any; };
# The next three statements may be needed if a firewall stands between
# the local server and the internet.
#query-source address * port 53;
#transfer-source * port 53;
#notify-source * port 53;
# The allow-query record contains a list of networks or IP addresses
# to accept and deny queries from. The default is to allow queries
# from all hosts.
#allow-query { 127.0.0.1; };
# If notify is set to yes (default), notify messages are sent to other
# name servers when the the zone data is changed. Instead of setting
# a global 'notify' statement in the 'options' section, a separate
# 'notify' can be added to each zone definition.
notify no;
# disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
include "/etc/named.d/forwarders.conf";
};
# To configure named's logging remove the leading '#' characters of the
# following examples.
#logging {
# # Log queries to a file limited to a size of 100 MB.
# channel query_logging {
# file "/var/log/named_querylog"
# versions 3 size 100M;
# print-time yes; // timestamp log entries
# };
# category queries {
# query_logging;
# };
#
# # Or log this kind alternatively to syslog.
# channel syslog_queries {
# syslog user;
# severity info;
# };
# category queries { syslog_queries; };
#
# # Log general name server errors to syslog.
# channel syslog_errors {
# syslog user;
# severity error;
# };
# category default { syslog_errors; };
#
# # Don't log lame server messages.
# category lame-servers { null; };
#};
# The following zone definitions don't need any modification. The first one
# is the definition of the root name servers. The second one defines
# localhost while the third defines the reverse lookup for localhost.
zone "." in {
type hint;
file "root.hint";
};
zone "localhost" in {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "127.0.0.zone";
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" in {
type master;
file "127.0.0.zone";
};
# Include the meta include file generated by createNamedConfInclude. This
# includes all files as configured in NAMED_CONF_INCLUDE_FILES from
# /etc/sysconfig/named
include "/etc/named.conf.include";
zone "bogus" in {
allow-transfer { any; };
file "master/bogus";
type master;
};
zone "2.168.192.in-addr.arpa" in {
allow-transfer { any; };
file "master/2.168.192.in-addr.arpa";
type master;
};
# You can insert further zone records for your own domains below or create
# single files in /etc/named.d/ and add the file names to
# NAMED_CONF_INCLUDE_FILES.
# See /usr/share/doc/packages/bind/README.SUSE for more details.
/etc/named.d/forwarders.conf
### /etc/named.d/forwarders.conf is a symlink to /var/run/netconfig/bind-forwarders.conf
### autogenerated by netconfig!
#
# Before you change this file manually, consider to define the
# static DNS configuration using the following variables in the
# /etc/sysconfig/network/config file:
# NETCONFIG_DNS_STATIC_SEARCHLIST
# NETCONFIG_DNS_STATIC_SERVERS
# NETCONFIG_DNS_FORWARDER
# or disable DNS configuration updates via netconfig by setting:
# NETCONFIG_DNS_POLICY=''
#
# See also the netconfig(8) manual page and other documentation.
#
### Call "netconfig update -f" to force adjusting of /etc/named.d/forwarders.conf.
forwarders {
192.168.2.1;
};
Well, indeed I changed the file afterwards to allow logs
logging {
channel default_file {
file "/var/lib/named/log/default.log" versions 3 size 5m;
severity dynamic;
print-time yes;
};
category default { default_file; };
/var/lib/named/master/bogus
[FONT=monospace]$TTL 2d
@ IN SOA named. root.named. (
2021042201 ; serial
3h ; refresh
1h ; retry
1w ; expiry
1d ) ; minimum
bogus. IN MX 0 named.bogus.
bogus. IN NS named.bogus.
test1 IN A 192.168.2.10
named IN A 192.168.2.70
[/FONT]
/var/lib/named/master/2.168.192.in-addr.arpa
$TTL 2d
@ IN SOA named. root.named. (
2021042202 ; serial
3h ; refresh
1h ; retry
1w ; expiry
1d ) ; minimum
2.168.192.in-addr.arpa. IN NS named.
192.168.2.10 IN PTR test1.
192.168.2.70 IN PTR named.
/etc/resolv.conf
### /etc/resolv.conf is a symlink to /var/run/netconfig/resolv.conf
### autogenerated by netconfig!
#
# Before you change this file manually, consider to define the
# static DNS configuration using the following variables in the
# /etc/sysconfig/network/config file:
# NETCONFIG_DNS_STATIC_SEARCHLIST
# NETCONFIG_DNS_STATIC_SERVERS
# NETCONFIG_DNS_FORWARDER
# or disable DNS configuration updates via netconfig by setting:
# NETCONFIG_DNS_POLICY=''
#
# See also the netconfig(8) manual page and other documentation.
#
### Call "netconfig update -f" to force adjusting of /etc/resolv.conf.
nameserver 127.0.0.1
nameserver 192.168.2.1
Then I connect to the server from another computer and test the dns server. It works with local names but if fails with global names
fernando@andromeda:~> nslookup
> server 192.168.2.70
Default server: 192.168.2.70
Address: 192.168.2.70#53
> named.bogus
Server: 192.168.2.70
Address: 192.168.2.70#53
Name: named.bogus
Address: 192.168.2.70
> test1.bogus
Server: 192.168.2.70
Address: 192.168.2.70#53
Name: test1.bogus
Address: 192.168.2.10
> google.com
Server: 192.168.2.70
Address: 192.168.2.70#53
** server can't find google.com: SERVFAIL
>
What am I doing wrong?
best regards