Retire MINIX nonamed(8)

Also retire support for the MINIX versions of /etc/hosts and
/etc/resolv.conf.  These files will be brought back with NetBSD
imports, although like NetBSD, MINIX 3 will be using external
resolvers directly from then on.  Since resolv.conf is hand-created
rather than installed, we do not mark it as obsolete.

Change-Id: Ie6154d5a4d8d977c19b9754bf920ae868680e9d1
This commit is contained in:
David van Moolenbroek 2017-02-14 17:34:20 +00:00
parent 50c98e1f41
commit 407c396431
14 changed files with 8 additions and 2758 deletions

View File

@ -153,7 +153,6 @@
./etc/rc.shutdown minix-base
./etc/rc.subr minix-base
./etc/release minix-base
./etc/resolv.conf minix-base
./etc/rs.inet minix-base obsolete
./etc/rs.single minix-base
./etc/saslc.d minix-base crypto
@ -455,7 +454,7 @@
./usr/bin/nice minix-base
./usr/bin/nl minix-base
./usr/bin/nohup minix-base
./usr/bin/nonamed minix-base
./usr/bin/nonamed minix-base obsolete
./usr/bin/nroff minix-base
./usr/bin/od minix-base
./usr/bin/openssl minix-base crypto

View File

@ -362,7 +362,7 @@
./usr/libdata/debug/usr/bin/nl.debug minix-debug debug
./usr/libdata/debug/usr/bin/nm.debug minix-debug debug
./usr/libdata/debug/usr/bin/nohup.debug minix-debug debug
./usr/libdata/debug/usr/bin/nonamed.debug minix-debug debug
./usr/libdata/debug/usr/bin/nonamed.debug minix-debug debug,obsolete
./usr/libdata/debug/usr/bin/objcopy.debug minix-debug debug
./usr/libdata/debug/usr/bin/objdump.debug minix-debug debug
./usr/libdata/debug/usr/bin/openssl.debug minix-debug debug

View File

@ -3284,7 +3284,7 @@
./usr/man/man5/ftpusers.5 minix-man
./usr/man/man5/gettytab.5 minix-man
./usr/man/man5/group.5 minix-man
./usr/man/man5/hosts.5 minix-man
./usr/man/man5/hosts.5 minix-man obsolete
./usr/man/man5/http_status.5 minix-man obsolete
./usr/man/man5/httpd.conf.5 minix-man obsolete
./usr/man/man5/info.5 minix-man
@ -3303,8 +3303,8 @@
./usr/man/man5/pkg_install.conf.5 minix-man
./usr/man/man5/pkg_summary.5 minix-man
./usr/man/man5/rc.conf.5 minix-man
./usr/man/man5/resolv.conf.5 minix-man
./usr/man/man5/resolver.5 minix-man
./usr/man/man5/resolv.conf.5 minix-man obsolete
./usr/man/man5/resolver.5 minix-man obsolete
./usr/man/man5/rhosts.5 minix-man
./usr/man/man5/serv.access.5 minix-man
./usr/man/man5/statvfs.5 minix-man
@ -3421,7 +3421,7 @@
./usr/man/man8/newfs_v7fs.8 minix-man
./usr/man/man8/newroot.8 minix-man obsolete
./usr/man/man8/nologin.8 minix-man
./usr/man/man8/nonamed.8 minix-man
./usr/man/man8/nonamed.8 minix-man obsolete
./usr/man/man8/ossdevlinks.8 minix-man obsolete
./usr/man/man8/part.8 minix-man
./usr/man/man8/partition.8 minix-man

View File

@ -321,7 +321,6 @@ install-etc-files: .PHONY .MAKE check_DESTDIR MAKEDEV
${BINOWN} ${BINGRP} ${BINMODE} ${NETBSDSRCDIR}/etc/ ${DESTDIR}/etc/ group \
${BINOWN} ${BINGRP} ${BINMODE} ${NETBSDSRCDIR}/etc/ ${DESTDIR}/etc/ hostname.file \
${BINOWN} ${BINGRP} ${BINMODE} ${NETBSDSRCDIR}/etc/ ${DESTDIR}/etc/ mk.conf \
${BINOWN} ${BINGRP} ${BINMODE} ${NETBSDSRCDIR}/etc/ ${DESTDIR}/etc/ resolv.conf \
${BINOWN} ${BINGRP} ${BINMODE} ${NETBSDSRCDIR}/etc/ ${DESTDIR}/etc/ motd \
${BINOWN} ${BINGRP} ${BINMODE} ${NETBSDSRCDIR}/etc/ ${DESTDIR}/etc/ rc.conf \
${BINOWN} ${BINGRP} ${BINMODE} ${NETBSDSRCDIR}/etc/ ${DESTDIR}/etc/ shrc \

View File

@ -1,2 +0,0 @@
# Use Minix nonamed for now
nameserver 127.0.0.1

View File

@ -16,7 +16,6 @@ SUBDIR= arp at backup \
loadkeys loadramdisk logger look lp \
lpd lspci mail MAKEDEV \
minix-service mount mt netconf \
nonamed \
prep printroot \
profile progressbar \
ramdisk rarpd rawspeed readclock \

View File

@ -1,4 +0,0 @@
PROG= nonamed
MAN= nonamed.8
.include <bsd.prog.mk>

View File

@ -1,309 +0,0 @@
.\" These numbers should match those in nonamed.c:
.ds ST "two seconds"
.ds MT "four seconds"
.ds LT "five minutes"
.ds HT "one hour"
.ds NI "256"
.TH NONAMED 8
.SH NAME
nonamed \- not a name daemon, but acts like one
.SH SYNOPSIS
.B nonamed
.RB [ \-Lqs ]
.RB [ \-d [\fIlevel\fP]]
.RB [ \-p
.IR port ]
.SH DESCRIPTION
.de SP
.if t .sp 0.4
.if n .sp
..
.B Nonamed
is not a name daemon. It can answer simple queries from
.BR /etc/hosts ,
but anything else is relayed to a real name daemon.
.B Nonamed
maintaines a small cache of replies it has seen from a name daemon, and will
use this cache to minimize traffic if the machine is permanently connected
to the Internet, or to answer requests if the machine is often disconnected
from the Internet, i.e. a computer at home.
.PP
On startup
.B nonamed
sends a simple query to each of its name servers to see if one is up. This
is repeated every \*(LT in an "at home" situation, or when necessary if the
current name daemon doesn't respond. The first name server to answer is
used as the current name server to answer queries.
.PP
If no name servers are found in the DHCP data or
.BR /etc/hosts
then only the hosts file is used to answer queries, and any query for a name
not in that file gets a failure response.
.PP
.B Nonamed
accepts both UDP and TCP queries under Minix-vmd. Under standard MINIX 3
only UDP queries are accepted. \*(NI relayed UDP queries can be outstanding
before it forgets where the first one came from.
.PP
Using the hosts file,
.B nonamed
can answer simple DNS queries to translate a host name to an IP address, or
an IP address to a host name. Suppose
.B /etc/hosts
looks like this:
.PP
.RS
.ta +15n
.nf
10.0.0.1 flotsam.cs.vu.nl\0www
10.0.0.2 jetsam.cs.vu.nl
.fi
.RE
.PP
Then queries for the host names listed can be answered with the IP addresses
to the left of them. An alias like "www" above is seen as a CNAME for the
first host name on the line, in the same domain as the first host name if
unqualified (no dots). A reverse lookup for an IP address on the left is
answered by the first host name on the right. If more than one match is
possible then all matches are put in the answer, so all IP addresses of
multihomed hosts can be listed by multiple entries in the hosts file.
.PP
Requests for names like "flotsam.cs.vu.nl.cs.vu.nl" that are often generated
on a domain search for an already fully qualified domain name
are recognized and made to fail. This kludge avoids a lot of unnecessary
requests to possibly unreachable name servers and client timeouts.
.PP
The name "localhost" in any domain is given the IP address 127.0.0.1.
.PP
.B Nonamed
employs several timeouts for efficient operation:
.PP
If no UDP reply is seen in \*(MT then a new search is started for a name
server in the hope of finding one that does work.
A failing TCP connection will also invoke a search, the
TCP connection is then made to the new name server. A client using UDP will
retry eventually, a client using TCP will notice nothing but a short delay.
If a TCP connection fails after 5 tries then an answer is sought in the
hosts file, and failing that the connection is closed.
.PP
Any TCP operation is given \*(LT to show any action before the connection is
aborted.
.PP
UDP replies from a name server are put in a cache of by default 8 (16-bit
system) or 16 kilobytes (32-bit system). New queries are
first sought in the cache, and if found answered from the cache. An entry
in the cache is expired when the resource record with the smallest TTL (time
to live) expires, unless its expire time is artificially extended by the
"%stale" parameter (see below). An answer from the cache has all TTLs
appropriately lowered, and the AA bit ("answer authoritive") is cleared.
Any request answered by stale data is refreshed as soon as
.B nonamed
notices that one of the external name daemons is reachable.
.PP
Data is only cached if it is has "no error" result code, or a "no such
domain" result code with a SOA record in the name server section, and all
records have a nonzero TTL. The %stale parameter has no effect on the
decision to cache a result.
.PP
The cache is rewritten to the cache file \*(LT after a new entry has been
added. Mere changes to the order in the cache don't cause a rewrite.
.SS Configuration through /etc/hosts
The real name servers, stale data extension, and cache size can be
configured by special entries in the hosts file. For example:
.PP
.RS
.ta +\w'172.16.24.3'u+2m +\w'%nameserver'u+2m
.nf
86400 %ttl # Answers from this file get this TTL
2419200 %stale # Stale data may linger on for 4 weeks
32768 %memory # 32k cache size
10.0.0.1 %nameserver # flotsam
172.16.24.3 %nameserver # dns1.example.com
172.16.24.6 %nameserver # dns2.example.com
.SP
10.0.0.1 flotsam.home.example.com\0www
10.0.0.2 jetsam.home.example.com
.fi
.RE
.PP
In this example we have two machines, flotsam and jetsam, that are at home.
Answers from the hosts file get a TTL of one day, by default this is \*(HT.
Normally there is no connection to the Internet, so any stale data in the
cache is allowed to linger on for 2419200 seconds (4 weeks) before it is
finally discarded. The cache size is set to 32 kilobytes. The first name
server is the flotsam. On the flotsam itself this entry is ignored, but the
jetsam will now run its requests through flotsam if possible. This means
that both flotsam and jetsam use the cache of the flotsam. The other
nameserver entries are external name servers of the Internet provider.
.PP
If no nameservers are listed in the hosts file then they are obtained from
data gathered by DHCP. This is the preferred situation.
.PP
If the hosts file contains a line that says:
.PP
.RS
.BI include " file"
.RE
.PP
Then the current hosts file is closed and the file named is read next.
.SS "Automatic calling"
If your connection to the Internet is set up on demand, either in software
on the machine that has the modem, or by a special box such as an ISDN
router, then you need to filter the name server probes that
.B nonamed
sends out every \*(LT to see if a real name daemon is reachable. These
probes need to be recognized as packets that must not trigger a call, and
that must not keep the line up. You can either filter all IP packets
destined for port 53 decimal (the
.B domain
port). This may be a bit too much, the first packet out is often a normal
DNS request (not a probe), so you may want to do better. A probe by
.B nonamed
is a nonrecursive request for the name servers of the root domain. You
can recognize them by looking at the flags, they are all off. Here is a
typical probe in hex (twenty octets per line), followed by the names of
interesting fields, and the octets values you should look for:
.PP
.RS
.nf
45 00 00 2D C8 19 00 00 1D 11 53 18 AC 10 66 41 AC 10 18 03
00 35 00 35 00 19 79 93 00 00 00 00 00 01 00 00 00 00 00 00
00 00 02 00 01
.SP
ip ip ip ip ip ip ip ip ip ip ip ip si si si si di di di di
sp sp dp dp xx xx xx xx id id fl fl qd qd an an ns ns ar ar
dn ty ty cl cl
.SP
45 xx xx xx xx xx xx xx xx 11 xx xx xx xx xx xx xx xx xx xx
xx xx 00 35 xx xx xx xx xx xx 00 00 xx xx xx xx xx xx xx xx
xx xx xx xx xx
.SP
.fi
(ip = IP header, si = source IP, di = dest IP, sp = source port, dp = dest
port, id = DNS ID, fl = DNS flags, qd = query count, an = answer count, ns =
nameserver count, ar = additional records count, dn = domain (""), ty = type
(NS), cl = class (IN).)
.RE
.PP
So if a packet has octets 45, 11, 00 35, and 00 00 at the appropriate places
then don't let it cause a call. Read the documentation of your software/router
to find out how to do this. Hopefully it is possible to view the contents of
the packet that triggered the last call. If so you simply let
.B nonamed
bring up the line once with a probe.
.SS "Remote information"
The program version and name servers it is working with can be obtained with:
.PP
.RS
host \-r \-v \-c chaos \-t txt version.bind. \fIserver\fP
.RE
.PP
.I Server
is the name or IP address of the host whose name server you want to know
this of.
(This call is really an undocumented hack to ask the version numbers of the
BIND name daemon. It just had to be implemented for
.B nonamed
as well.)
.PP
The % variables in the hosts file can be viewed like this:
.PP
.RS
host \-r \-t a %nameserver. \fIserver\fP
.RE
.PP
Don't forget the dot at the end of the name. %ttl and %stale will be shown
as a dotted quad, e.g. 0.36.234.0. The proper value can be computed as 36 *
65536 + 234 * 256 + 0 = 2419200.
.SH OPTIONS
The options are only useful when debugging
.BR nonamed ,
although it can be very instructive to watch DNS queries being done.
.TP
.BR \-d [\fIlevel\fP]
Set debugging level to
.I level
(by default
.BR 1 .)
Debug mode 1 makes
.B nonamed
decode and display the DNS queries and replies that it receives, sends and
relays. In debug mode 2 it prints tracing information about the internal
jobs it executes. In debug mode 3 it core dumps when an error causes it to
exit. The debugging level may also be increased by 1 at runtime by sending
signal
.B SIGUSR1
or turned off (set to 0) with
.BR SIGUSR2 .
.TP
.RB [ \-L ]
Only accept queries coming from the local host.
.TP
.RB [ \-p " \fIport\fP]
Port to listen on instead of the normal
.B domain
port.
.TP
.RB [ \-q ]
Read the cache file with the debug level set to 2, causing its contents to
be printed, then exit.
.TP
.RB [ \-s ]
Run single: ignore hosts or cache file, only use the DHCP information. This
allows another
.B nonamed
to be run on a different interface to serve a few programs that run there.
.SH FILES
.TP 15n
/etc/hosts
Hosts to address translation table and configuration file.
.TP
/usr/run/nonamed.pid
Process ID of the currently running
.BR nonamed .
.TP
/usr/adm/nonamed.cache
Copy of the cache. Read when the program starts, written \*(LT after
something has been added to it, and written when a SIGTERM signal is
received, which is normally sent at system shutdown.
.TP
/usr/adm/dhcp.cache
Data gathered by the DHCP daemon. Among lots of other junk it lists name
servers that we should use.
.SH "SEE ALSO"
.BR gethostbyname (3),
.BR resolver (3),
.BR hosts (5),
.BR inet (8),
.BR boot (8),
.BR inetd (8),
.BR dhcpd (8).
.SP
.BR RFC-1034
and
.BR RFC-1035 .
.SH NOTES
Do not use the %stale parameter for a PC that is directly connected to the
Internet. You run the risk of getting wrong answers, a risk that is only
worth taking for a system that is mostly disconnected from the Internet.
.PP
You can specify one or more remote name servers in
.B /etc/resolv.conf
so that nonamed isn't needed. This will save memory, but you'll lose
.BR nonamed 's
cache and its "offline" tricks. That's no problem if you can use a
neighbouring name daemon on another PC at home.
.PP
The default cache size seems to be more than enough for normal use, but if
you do decide to make it larger then don't forget to increase the stack size
of the program under standard MINIX 3.
.PP
Don't let two
.BR nonamed 's
forward queries to each other. They will pingpong a query over the
network as fast as they can.
.SH BUGS
The idea of serving "stale DNS data" will probably make some purists
violently sick...
.SH AUTHOR
Kees J. Bot (kjb@cs.vu.nl)

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
MAN= boot.cfg.5 configfile.5 crontab.5 ethers.5 \
fstab.5 hosts.5 keymap.5 \
passwd.5 resolv.conf.5 resolver.5 rhosts.5 statvfs.5 serv.access.5 \
fstab.5 keymap.5 \
passwd.5 rhosts.5 statvfs.5 serv.access.5 \
termcap.5 ttytab.5 TZ.5 utmp.5 \
pkg_install.conf.5 pkg_summary.5

View File

@ -1,57 +0,0 @@
.TH HOSTS 5
.SH NAME
hosts \- hostname to IP address database
.SH SYNOPSIS
.B /etc/hosts
.SH DESCRIPTION
The hosts database lists the IP addresses and the hostnames that translate
to these IP addresses. It is used by
.BR nonamed (8)
in a network without name servers. A simple
.B /etc/hosts
may look like this:
.PP
.RS
.ta +15n
.nf
10.0.0.1 flotsam
10.0.0.2 jetsam
.fi
.RE
.PP
These two entries give names to two IP addresses. The file may contain
comments marked with '#'.
.PP
You can have aliases (more hostnames on the same line) to give a machine
more than one name, like
.BR www ,
if you run a web server on one.
.PP
If your PC is Internet connected then you can specify the name server(s)
to get more information from with %nameserver entries:
.PP
.RS
.ta +\w'172.16.24.3'u+4m +\w'%nameserver'u+4m
.nf
172.16.24.3 %nameserver # dns1.example.com
172.16.24.6 %nameserver # dns2.example.com
.fi
.RE
.PP
Read
.BR nonamed (8)
for all the details on special host file entries that configure
.B nonamed
for use on the Internet, and on home machines that are occasionally
connected to the Internet.
.SH FILES
.TP 15n
/etc/hosts
Hosts database.
.SH "SEE ALSO"
.BR ethers (5),
.BR nonamed (8),
.BR dhcpd (8),
.BR boot (8).
.SH AUTHOR
Kees J. Bot (kjb@cs.vu.nl)

View File

@ -1,48 +0,0 @@
.TH RESOLV.CONF 5
.SH NAME
resolv.conf \- Domain Name System resolver configuration
.SH SYNOPSIS
.B /etc/resolv.conf
.SH DESCRIPTION
.de SP
.if t .sp 0.4
.if n .sp
..
The
.B /etc/resolv.conf
is used to configure how the host will use the Domain Name System to resolve
hostnames to IP addresses. It may contain these two lines:
.PP
.RS
.ta +15n
nameserver \fIIP-address\fP
.br
domain \fIdomain-name\fP
.RE
.PP
The nameserver entry tells the IP address of the host to use for DNS
queries. If it is set to 127.0.0.1 (which is the default) then the local
name daemon is used that may use the
.B /etc/hosts
database to translate host names. You normally only need a nameserver entry
if the name server is at the other side of a router. The default
.B nonamed
name server can't look beyond the local network.
.PP
The domain entry tells the default domain to use for unqualified hostnames.
This entry is usually not given in which case the domain of the local host
is used.
.PP
The long version of this story can be found in
.BR resolver (5).
.SH FILES
.TP 20n
/etc/resolv.conf
DNS resolver configuration file.
.SH "SEE ALSO"
.BR resolver (5),
.BR hosts (5),
.BR nonamed (8),
.BR boot (8).
.SH AUTHOR
Kees J. Bot (kjb@cs.vu.nl)

View File

@ -1,98 +0,0 @@
.\" Copyright (c) 1986 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms are permitted
.\" provided that the above copyright notice and this paragraph are
.\" duplicated in all such forms and that any documentation,
.\" advertising materials, and other materials related to such
.\" distribution and use acknowledge that the software was developed
.\" by the University of California, Berkeley. The name of the
.\" University may not be used to endorse or promote products derived
.\" from this software without specific prior written permission.
.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
.\"
.\" @(#)resolver.5 5.9 (Berkeley) 12/14/89
.\"
.TH RESOLVER 5 "December 14, 1989"
.UC 4
.SH NAME
resolver \- resolver configuration file
.SH SYNOPSIS
/etc/resolv.conf
.SH DESCRIPTION
.LP
The
.I resolver
is a set of routines in the C library (\c
.IR resolv (3))
that provide access to the Internet Domain Name System.
The resolver configuration file contains information that is read
by the resolver routines the first time they are invoked by a process.
The file is designed to be human readable and contains a list of
keywords with values that provide various types of resolver information.
.LP
On a normally configured system this file should not be necessary.
The only name server to be queried will be on the local machine,
the domain name is determined from the host name,
and the domain search path is constructed from the domain name.
.LP
The different configuration options are:
.TP
\fBnameserver\fP
Internet address (in dot notation) of a name server
that the resolver should query.
Up to MAXNS (currently 3) name servers may be listed,
one per keyword.
If there are multiple servers,
the resolver library queries them in the order listed.
If no \fBnameserver\fP entries are present,
the default is to use the name server on the local machine.
(The algorithm used is to try a name server, and if the query times out,
try the next, until out of name servers,
then repeat trying all the name servers
until a maximum number of retries are made).
.TP
\fBdomain\fP
Local domain name.
Most queries for names within this domain can use short names
relative to the local domain.
If no \fBdomain\fP entry is present, the domain is determined
from the local host name returned by
\fIgethostname\fP\|(2);
the domain part is taken to be everything after the first `.'.
Finally, if the host name does not contain a domain part, the root
domain is assumed.
.TP
\fBsearch\fP
Search list for host-name lookup.
The search list is normally determined from the local domain name;
by default, it begins with the local domain name, then successive
parent domains that have at least two components in their names.
This may be changed by listing the desired domain search path
following the \fIsearch\fP keyword with spaces or tabs separating
the names.
Most resolver queries will be attempted using each component
of the search path in turn until a match is found.
Note that this process may be slow and will generate a lot of network
traffic if the servers for the listed domains are not local,
and that queries will time out if no server is available
for one of the domains.
.IP
The search list is currently limited to six domains
with a total of 256 characters.
.LP
The \fIdomain\fP and \fIsearch\fP keywords are mutually exclusive.
If more than one instance of these keywords is present,
the last instance will override.
.LP
The keyword and value must appear on a single line, and the keyword
(e.g. \fBnameserver\fP) must start the line. The value follows
the keyword, separated by white space.
.SH FILES
.I /etc/resolv.conf
.SH SEE ALSO
gethostbyname(3N), resolver(3), hostname(7), named(8)
.br
Name Server Operations Guide for BIND

View File

@ -53,8 +53,6 @@ System configuration and data files; see also \fB/usr/etc/\fP.
\fBpasswd\fP user database, \fBpasswd\fP(1)
\fBprofile\fP system wide shell profile
\fBrc\fP system startup script, \fBboot\fP(8)
\fBresolv.conf\fP
TCP/IP domain name system, \fBresolv.conf\fP(5)
\fBservices\fP
TCP/IP names to services
\fBserv.access\fP