query, ipquery, mkhash, mkdb, mkhosts, cs, csquery, dns, dnstcp,
dnsquery, dnsdebug, inform – network database|
ndb/query [ –am ] [ –f dbfile ] attr value [ rattr ]|
ndb/ipquery attr value rattr...
ndb/mkhash file attr
ndb/mkhosts [ domain [ dbfile ] ]
ndb/cs [ –4n ] [ –f dbfile ] [ –x netmtpt ]
ndb/csquery [ –s ] [ server [ addr... ] ]
ndb/dns [ –norRs ] [ –a maxage ] [ –f dbfile ] [ –N target ] [ –x netmtpt ] [ –z program ]
ndb/dnstcp [ –rR ] [ –f dbfile ] [ –x netmtpt ] [ conn–dir ]
ndb/dnsdebug [ –rx ] [ –f dbfile ] [ [ @server ] domain–name [ type ] ]
ndb/inform [ –x netmtpt ]
The network database holds administrative information used by
network programs such as dhcpd(8), ipconfig(8), con(1), etc.
Ndb/query searches the database dbfile (/lib/ndb/local by default) for an attribute of type attr and value value. If rattr is not specified, all entries matched by the search are printed. If rattr is specified, the value of the first pair with attribute rattr of all the matched entries normally is printed. Under –m and rattr, the values of all pairs with a rattr attribute within the first matching entry are printed. Under –a and rattr, all values of pairs with a rattr attribute within all entries are printed.
Ndb/ipquery uses ndbipinfo (see ndb(2)) to search for the values of the attributes rattr corresponding to the system with entries of attribute type attr and value value.
Ndb/inform sends an RFC2136 DNS inform packet to a nameserver
to associate the host's IPv4 address with its DNS name. This is
required if the domain's nameserver is a Microsoft Windows Active
Directory controller. The host's domain name will be sent to the
AD controller unless a tuple of the form inform=xxx is
found in the host's ndb entry.
Ndb/mkdb is used in concert with awk(1) scripts to convert uucp systems files and IP host files into database files. It is very specific to the situation at Murray Hill.
When the database files change underfoot, ndb/cs and ndb/dns track them properly. Nonetheless, to keep the database searches efficient it is necessary to run ndb/mkhash whenever the files are modified. It may be profitable to control this by a frequent cron(8) job.
Ndb/mkhosts generates a BSD style hosts, hosts.txt, and hosts.equiv
files from an ndb data base file specified on the command line
(default /lib/ndb/local). For local reasons the files are called
hosts.1127, astro.txt, and hosts.equiv.
–4 Only look up IPv4 addresses (A records) when consulting DNS. The default is to also look up v6 addresses (AAAA records). Writing ipv6 to /net/cs will toggle IP v6 look–ups.
–f supplies the name of the data base file to use, default /lib/ndb/local.
–n causes cs to do nothing but set the system name.
–x specifies the mount point of the network.
Ndb/csquery queries ndb/cs to see how it resolves addresses. Ndb/csquery
prompts for addresses and prints what ndb/cs returns. Server defaults
to /net/cs. If any addrs are specified, ndb/csquery prints their
translations and immediately exits. The exit status will be nil
only if all addresses were successfully
translated. The –s flag sets exit status without printing any results.
Domain name service
–R ignore the `recursive' bit on incoming requests. Do not complete lookups on behalf of remote systems.
–s also answer domain requests sent to UDP port 53.
–x specifies the mount point of the network.
–z whenever we receive a UDP NOTIFY message, run program with the domain name of the area as its argument.
When the –r option is specified, the servers used come from the
dns attribute in the database. For example, to specify a set of
dns servers that will resolve requests for systems on the network
Authoritative Name Servers
For example, to provide reverse lookup for all addresses in starting
with 135.104 or fd00::, ndb must contain a record like:
If such an soa entry exists in the database, reverse addresses
will automatically be generated from any IP addresses in the database
that are under this root. For example
Classless reverse delegation
For example, this is how to serve RFC–2317 ptr records for the
Delegating Name Service Authority
Wildcards, MX and CNAME records
In such a situation, running dns –so on a machine that imports access to the outside network via /net.alt from a machine that straddles the firewalls, or that straddles the firewalls itself, will let internal machines query such a machine and receive answers from outside nameservers for outside addresses and inside nameservers for inside addresses, giving the appearance of a unified domain name space, while bypassing the corporate DNS proxies or firewalls. This is different from running dns –s and dns –sRx /net.alt –f /lib/ndb/external on the same machine, which keeps the inside and outside namespaces entirely separate.
Under –o, several sys names are significant: inside–dom, inside–ns,
and outside–ns. Inside–dom should contain a series of dom pairs
naming domains internal to the organization. Inside–ns should contain
a series of ip pairs naming the internal DNS `root' servers. Outside–ns
should contain a series of ip
pairs naming the external DNS servers to consult.
Zone Transfers and TCP
DNS Queries and Debugging
Ndb/dnsdebug is like ndb/dnsquery but bypasses the local server. It communicates via UDP (and sometimes TCP) with the domain name servers in the same way that the local resolver would and displays all packets received. The query can be specified on the command line or can be prompted for. The queries look like those of ndb/dnsquery with one addition. Ndb/dnsdebug can be directed to query a particular name server by the command @name–server. From that point on, all queries go to that name server rather than being resolved by dnsdebug. The @ command returns query resolution to dnsdebug. Finally, any command preceded by a @name–server sets the name server only for that command.
Normally dnsdebug uses the /net interface and the database file /lib/ndb/local. The –f option supplies the name of the data base file to use. The –r option is the same as for ndb/dns. The –x option directs dnsdebug to use the /net.alt interface and /lib/ndb/external database file.
Look up helix in ndb.|
/env/DNSSERVER resolver's DNS servers' IP addresses.|
/lib/ndb/local first database file searched
/lib/ndb/local.* hash files for /lib/ndb/local
/srv/cs service file for ndb/cs
/net/cs where /srv/cs gets mounted
/srv/dns service file for ndb/dns
/net/dns where /srv/dns gets mounted
Ndb databases are case–sensitive; ethernet addresses must be in