ndb 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799
  1. .TH NDB 8
  2. .SH NAME
  3. query, ipquery, mkhash, mkdb, mkhosts, cs, csquery, dns, dnstcp, dnsquery, dnsdebug, inform \- network database
  4. .SH SYNOPSIS
  5. .B ndb/query
  6. [
  7. .B -am
  8. ] [
  9. .B -f
  10. .I dbfile
  11. ]
  12. .I "attr value"
  13. [
  14. .I rattr
  15. .\" [
  16. .\" .I reps
  17. .\" ]
  18. ]
  19. .br
  20. .B ndb/ipquery
  21. .I "attr value"
  22. .I rattr...
  23. .br
  24. .B ndb/mkhash
  25. .I "file attr"
  26. .br
  27. .B ndb/mkdb
  28. .br
  29. .B ndb/mkhosts
  30. [
  31. .I domain
  32. [
  33. .I dbfile
  34. ] ]
  35. .br
  36. .B ndb/cs
  37. [
  38. .B -4n
  39. ] [
  40. .B -f
  41. .I dbfile
  42. ] [
  43. .B -x
  44. .I netmtpt
  45. ]
  46. .br
  47. .B ndb/csquery
  48. [
  49. .B -s
  50. ]
  51. [
  52. .I server
  53. [
  54. .I addr...
  55. ]
  56. ]
  57. .br
  58. .B ndb/dns
  59. [
  60. .B -norRs
  61. ] [
  62. .B -a
  63. .I maxage
  64. ] [
  65. .B -f
  66. .I dbfile
  67. ] [
  68. .B -N
  69. .I target
  70. ] [
  71. .B -x
  72. .I netmtpt
  73. ] [
  74. .B -z
  75. .I program
  76. ]
  77. .br
  78. .B ndb/dnstcp
  79. [
  80. .B -rR
  81. ] [
  82. .B -f
  83. .I dbfile
  84. ] [
  85. .B -x
  86. .I netmtpt
  87. ] [
  88. .I conn-dir
  89. ]
  90. .br
  91. .B ndb/dnsquery
  92. .br
  93. .B ndb/dnsdebug
  94. [
  95. .B -rx
  96. ] [
  97. .B -f
  98. .I dbfile
  99. ] [ [
  100. .BI @ server
  101. ]
  102. .I domain-name
  103. [
  104. .I type
  105. ] ]
  106. .br
  107. .B ndb/inform
  108. [
  109. .B -x
  110. .I netmtpt
  111. ]
  112. .SH DESCRIPTION
  113. The network database holds administrative information used by
  114. network programs such as
  115. .IR dhcpd (8),
  116. .IR ipconfig (8),
  117. .IR con (1),
  118. etc.
  119. .PP
  120. .I Ndb/query
  121. searches the database
  122. .I dbfile
  123. .RB ( /lib/ndb/local
  124. by default)
  125. for an attribute of type
  126. .I attr
  127. and value
  128. .IR value .
  129. If
  130. .I rattr
  131. is not specified, all entries matched by the search are printed.
  132. If
  133. .I rattr
  134. is specified, the value of the first pair with attribute
  135. .I rattr
  136. of all the matched entries normally is printed.
  137. Under
  138. .B -m
  139. and
  140. .IR rattr ,
  141. the values of all pairs with a
  142. .I rattr
  143. attribute within the first matching entry are printed.
  144. Under
  145. .B -a
  146. and
  147. .IR rattr ,
  148. all values of pairs with a
  149. .I rattr
  150. attribute within all entries are printed.
  151. .PP
  152. .I Ndb/ipquery
  153. uses
  154. .I ndbipinfo
  155. (see
  156. .IR ndb (2))
  157. to search for the values of the attributes
  158. .I rattr
  159. corresponding to the system
  160. with entries of attribute type
  161. .I attr
  162. and
  163. value
  164. .IR value .
  165. .PP
  166. .I Ndb/inform
  167. sends an RFC2136 DNS
  168. .I inform
  169. packet to a nameserver to associate the host's IPv4 address with its DNS name.
  170. This is required if the domain's nameserver is
  171. a Microsoft Windows Active Directory controller.
  172. The host's domain name will be sent to the AD controller unless
  173. a tuple of the form
  174. .BI inform= xxx
  175. is found in the host's
  176. .I ndb
  177. entry.
  178. .SS "Database maintenance"
  179. .I Ndb/mkhash
  180. creates a hash file for all entries with attribute
  181. .I attr
  182. in database file
  183. .IR file .
  184. The hash files are used by
  185. .I ndb/query
  186. and by the ndb library routines.
  187. .PP
  188. .I Ndb/mkdb
  189. is used in concert with
  190. .IR awk (1)
  191. scripts to convert
  192. uucp systems files and IP host files
  193. into database files.
  194. It is very specific to the situation at Murray Hill.
  195. .PP
  196. When the database files change underfoot,
  197. .I ndb/cs
  198. and
  199. .I ndb/dns
  200. track them properly. Nonetheless, to keep the database searches efficient
  201. it is necessary to run
  202. .I ndb/mkhash
  203. whenever the files are modified.
  204. It may be profitable to control this by a frequent
  205. .IR cron (8)
  206. job.
  207. .PP
  208. .I Ndb/mkhosts
  209. generates a BSD style
  210. .BR hosts ,
  211. .BR hosts.txt ,
  212. and
  213. .B hosts.equiv
  214. files from an ndb data base file specified on the
  215. command line (default
  216. .BR /lib/ndb/local ).
  217. For local reasons the files are called
  218. .BR hosts.1127 ,
  219. .BR astro.txt ,
  220. and
  221. .BR hosts.equiv .
  222. .SS "Connection service"
  223. .I Ndb/cs
  224. is a server used by
  225. .IR dial (2)
  226. to translate network names.
  227. It is started at boot time.
  228. It finds out what networks are configured
  229. by looking for
  230. .B /net/*/clone
  231. when it starts.
  232. It can also be told about networks by writing to
  233. .B /net/cs
  234. a message of the form:
  235. .IP
  236. .B "add net1 net2 ..."
  237. .PP
  238. .I Ndb/cs
  239. also sets the system name in
  240. .B /dev/sysname
  241. if it can figure it out.
  242. The options are:
  243. .TF -n
  244. .TP
  245. .B -4
  246. Only look up IPv4 addresses (A records) when consulting DNS.
  247. The default is to also look up v6 addresses (AAAA records).
  248. Writing
  249. .L ipv6
  250. to
  251. .B /net/cs
  252. will toggle IP v6 look-ups.
  253. .TP
  254. .B -f
  255. supplies the name of the data base file to use,
  256. default
  257. .BR /lib/ndb/local .
  258. .TP
  259. .B -n
  260. causes cs to do nothing but set the system name.
  261. .TP
  262. .B -x
  263. specifies the mount point of the
  264. network.
  265. .PD
  266. .PP
  267. .I Ndb/csquery
  268. queries
  269. .I ndb/cs
  270. to see how it resolves addresses.
  271. .I Ndb/csquery
  272. prompts for addresses and prints what
  273. .I ndb/cs
  274. returns.
  275. .I Server
  276. defaults to
  277. .BR /net/cs .
  278. If any
  279. .I addrs
  280. are specified,
  281. .I ndb/csquery
  282. prints their translations and immediately exits.
  283. The exit status will be nil only if all addresses
  284. were successfully translated.
  285. The
  286. .B -s
  287. flag sets exit status without printing any results.
  288. .br
  289. .ne 4
  290. .SS "Domain name service"
  291. .I Ndb/dns
  292. serves
  293. .I ndb/cs
  294. and remote systems by translating Internet domain names.
  295. .I Ndb/dns
  296. is started at boot time.
  297. By default
  298. .I dns
  299. serves only requests written to
  300. .BR /net/dns .
  301. Programs must
  302. .I seek
  303. to offset 0 before reading or writing
  304. .B /net/dns
  305. or
  306. .BR /net/cs .
  307. The options are:
  308. .TF -n
  309. .TP
  310. .B -a
  311. sets the maximum time in seconds that an unreferenced
  312. domain name will remain cached.
  313. The default is one hour (3600).
  314. .TP
  315. .B -f
  316. supplies the name of the data base file to use,
  317. default
  318. .BR /lib/ndb/local .
  319. .TP
  320. .B -n
  321. whenever a DNS zone that we serve changes, send UDP NOTIFY
  322. messages to any dns slaves for that zone
  323. (see the
  324. .L dnsslave
  325. attribute below).
  326. .TP
  327. .B -N
  328. sets the goal for the number of domain names cached to
  329. .I target
  330. rather than the default of 8,000.
  331. .TP
  332. .B -o
  333. used with
  334. .BR -s ,
  335. .B -o
  336. causes
  337. .I dns
  338. to assume that it straddles inside and outside networks
  339. and that the outside network is mounted on
  340. .BR /net.alt .
  341. Queries for inside addresses will be sent via
  342. .B /net/udp
  343. (or
  344. .B /net/tcp
  345. in response to truncated replies)
  346. and those for outside addresses via
  347. .B /net.alt/udp
  348. (or
  349. .BR /net.alt/tcp ).
  350. This makes
  351. .I dns
  352. suitable for serving non-Plan-9 systems in an organization with
  353. firewalls, DNS proxies, etc.,
  354. particularly if they don't work very well.
  355. See `Straddling Server' below for details.
  356. .TP
  357. .B -r
  358. act as a resolver only:
  359. send `recursive' queries, asking the other servers
  360. to complete lookups.
  361. If present,
  362. .B /env/DNSSERVER
  363. must be a space-separated list of such DNS servers' IP addresses,
  364. otherwise optional
  365. .IR ndb (6)
  366. .B dns
  367. attributes name DNS servers to forward queries to.
  368. .TP
  369. .B -R
  370. ignore the `recursive' bit on incoming requests.
  371. Do not complete lookups on behalf of remote systems.
  372. .TP
  373. .B -s
  374. also answer domain requests sent to UDP port 53.
  375. .TP
  376. .B -x
  377. specifies the mount point of the
  378. network.
  379. .TP
  380. .B -z
  381. whenever we receive a UDP NOTIFY message, run
  382. .I program
  383. with the domain name of the area as its argument.
  384. .PD
  385. .PP
  386. When the
  387. .B -r
  388. option is specified, the servers used come from the
  389. .I dns
  390. attribute in the database. For example, to specify a set of dns servers that
  391. will resolve requests for systems on the network
  392. .IR mh-net :
  393. .IP
  394. .EX
  395. ipnet=mh-net ip=135.104.0.0 ipmask=255.255.0.0
  396. dns=ns1.cs.bell-labs.com
  397. dns=ns2.cs.bell-labs.com
  398. dom=ns1.cs.bell-labs.com ip=135.104.1.11
  399. dom=ns2.cs.bell-labs.com ip=135.104.1.12
  400. .EE
  401. .LP
  402. The server for a domain is indicated by a database entry containing
  403. both a
  404. .I dom
  405. and a
  406. .I ns
  407. attribute.
  408. .IP
  409. .EX
  410. dom=
  411. ns=A.ROOT-SERVERS.NET
  412. ns=B.ROOT-SERVERS.NET
  413. ns=C.ROOT-SERVERS.NET
  414. dom=A.ROOT-SERVERS.NET ip=198.41.0.4
  415. dom=B.ROOT-SERVERS.NET ip=128.9.0.107
  416. dom=C.ROOT-SERVERS.NET ip=192.33.4.12
  417. .EE
  418. .LP
  419. The last three lines provide a mapping for the
  420. server names to their ip addresses. This is only
  421. a hint and will be superseded from whatever is learned
  422. from servers owning the domain.
  423. .SS "Authoritative Name Servers"
  424. You can also serve a subtree of the domain name space from the local
  425. database. You indicate subtrees that you would like to serve by adding an
  426. .B soa=
  427. attribute to the root entry.
  428. For example, the Bell Labs CS research domain is:
  429. .IP
  430. .EX
  431. dom=cs.bell-labs.com soa=
  432. refresh=3600 ttl=3600
  433. ns=plan9.bell-labs.com
  434. ns=ns1.cs.bell-labs.com
  435. ns=ns2.cs.bell-labs.com
  436. mb=presotto@plan9.bell-labs.com
  437. mx=mail.research.bell-labs.com pref=20
  438. mx=plan9.bell-labs.com pref=10
  439. dnsslave=nslocum.cs.bell-labs.com
  440. dnsslave=vex.cs.bell-labs.com
  441. .EE
  442. .LP
  443. Here, the
  444. .B mb
  445. entry is the mail address of the person responsible for the
  446. domain (default
  447. .BR postmaster ).
  448. The
  449. .B mx
  450. entries list mail exchangers for the domain name and
  451. .B refresh
  452. and
  453. .B ttl
  454. define the area refresh interval and the minimum TTL for
  455. records in this domain.
  456. The
  457. .B dnsslave
  458. entries specify slave DNS servers that should be notified
  459. when the domain changes. The notification also requires
  460. the
  461. .B -n
  462. flag.
  463. .
  464. .SS "Reverse Domains"
  465. You can also serve reverse lookups (returning the name that
  466. goes with an IP address) by adding an
  467. .B soa=
  468. attribute to the entry defining the root of the reverse space.
  469. .PP
  470. For example, to provide reverse lookup for all addresses in
  471. starting with
  472. .L 135.104
  473. or
  474. .LR fd00:: ,
  475. .I ndb
  476. must contain a record like:
  477. .IP
  478. .EX
  479. dom=104.135.in-addr.arpa soa=
  480. dom=d.f.ip6.arpa soa= # special case, rfc 4193
  481. refresh=3600 ttl=3600
  482. ns=plan9.bell-labs.com
  483. ns=ns1.cs.bell-labs.com
  484. ns=ns2.cs.bell-labs.com
  485. .EE
  486. .LP
  487. Notice the form of the reverse address.
  488. For IPv4, it's the bytes of the address range you are serving reversed
  489. and expressed in decimal, and with
  490. .L .in-addr.arpa
  491. appended.
  492. For IPv6, it's the nibbles (4-bit fields) of the address range you are serving
  493. reversed and expressed in hexadecimal, and with
  494. .L .ip6.arpa
  495. appended.
  496. These are the standard forms for a domain name in a PTR record.
  497. .PP
  498. If such an
  499. .B soa
  500. entry exists in the database, reverse addresses will
  501. automatically be generated from any IP addresses in the database
  502. that are under this root. For example
  503. .IP
  504. .EX
  505. dom=ns1.cs.bell-labs.com ip=135.104.1.11
  506. .EE
  507. .LP
  508. will automatically create both forward and reverse entries for
  509. .BR ns1.cs.bell-labs.com .
  510. Unlike other DNS servers, there's no way to generate
  511. inconsistent forward and reverse entries.
  512. .SS "Classless reverse delegation"
  513. Following RFC 2317, it is possible to serve reverse DNS data
  514. for IPv4 subnets smaller than /24.
  515. Declare the non-/24 subnet, the reverse domain and the individual systems.
  516. .PP
  517. For example,
  518. this is how to serve RFC-2317
  519. .B ptr
  520. records for the subnet
  521. .LR 65.14.39.128/123 .
  522. .IP
  523. .EX
  524. ipnet=our-t1 ip=65.14.39.128 ipmask=/123
  525. dom=128.39.14.65.in-addr.arpa soa=
  526. refresh=3600 ttl=3600
  527. ns=ns1.our-domain.com
  528. ns=ns2.our-domain.com
  529. ip=65.14.39.129 dom=router.our-domain.com
  530. .EE
  531. .
  532. .SS "Delegating Name Service Authority"
  533. Delegation of a further subtree to another set of name servers
  534. is indicated by an
  535. .B soa=delegated
  536. attribute.
  537. .IP
  538. .EX
  539. dom=bignose.cs.research.bell-labs.com
  540. soa=delegated
  541. ns=anna.cs.research.bell-labs.com
  542. ns=dj.cs.research.bell-labs.com
  543. .EE
  544. .LP
  545. Nameservers within the delegated domain (as in this example)
  546. must have their IP addresses listed elsewhere in
  547. .I ndb
  548. files.
  549. .
  550. .SS "Wildcards, MX and CNAME records"
  551. Wild-carded domain names can also be used.
  552. For example, to specify a mail forwarder for all Bell Labs research systems:
  553. .IP
  554. .EX
  555. dom=*.research.bell-labs.com
  556. mx=research.bell-labs.com
  557. .EE
  558. .LP
  559. `Cname' aliases may be established by adding a
  560. .B cname
  561. attribute giving the real domain name;
  562. the name attached to the
  563. .B dom
  564. attribute is the alias.
  565. `Cname' aliases are severely restricted;
  566. the aliases may have no other attributes than
  567. .B dom
  568. and are daily further restricted in their use by new RFCs.
  569. .IP
  570. .EX
  571. cname=anna.cs.bell-labs.com dom=www.cs.bell-labs.com
  572. .EE
  573. .PP
  574. makes
  575. .BI www. ...
  576. a synonym for the canonical name
  577. .BI anna. ... .
  578. .SS "Straddling Server"
  579. Many companies have an inside network
  580. protected from outside access with firewalls.
  581. They usually provide internal `root' DNS servers
  582. (of varying reliability and correctness)
  583. that serve internal domains and pass on DNS queries for
  584. outside domains to the outside, relaying the results
  585. back and caching them for future use.
  586. Some companies don't even let DNS queries nor replies through
  587. their firewalls at all, in either direction.
  588. .PP
  589. In such a situation, running
  590. .B "dns -so"
  591. on a machine that imports access to the outside network via
  592. .B /net.alt
  593. from a machine that straddles the firewalls,
  594. or that straddles the firewalls itself,
  595. will let internal machines query such a machine
  596. and receive answers from outside nameservers for outside addresses
  597. and inside nameservers for inside addresses, giving the appearance
  598. of a unified domain name space,
  599. while bypassing the corporate DNS proxies or firewalls.
  600. This is different from running
  601. .B "dns -s"
  602. and
  603. .B "dns -sRx /net.alt -f /lib/ndb/external"
  604. on the same machine,
  605. which keeps the inside and outside namespaces entirely separate.
  606. .PP
  607. Under
  608. .BR -o ,
  609. several
  610. .I sys
  611. names are significant:
  612. .BR inside-dom ,
  613. .BR inside-ns ,
  614. and
  615. .BR outside-ns .
  616. .I Inside-dom
  617. should contain a series of
  618. .B dom
  619. pairs naming domains internal to the organization.
  620. .I Inside-ns
  621. should contain a series of
  622. .B ip
  623. pairs naming the internal DNS `root' servers.
  624. .I Outside-ns
  625. should contain a series of
  626. .B ip
  627. pairs naming the external DNS servers to consult.
  628. .SS "Zone Transfers and TCP"
  629. .I Dnstcp
  630. is invoked,
  631. usually from
  632. .BR /rc/bin/service/tcp53 ,
  633. to answer DNS queries with long answers via TCP,
  634. notably to transfer a zone within the database
  635. .I dbfile
  636. (default
  637. .BR /lib/ndb/local )
  638. to its invoker on the network at
  639. .I netmtpt
  640. (default
  641. .BR /net ).
  642. Standard input will be read for DNS requests and the DNS answers
  643. will appear on standard output.
  644. Recursion is disabled by
  645. .BR -R ;
  646. acting as a pure resolver is enabled by
  647. .BR -r .
  648. If
  649. .I conn-dir
  650. is provided, it is assumed to be a directory within
  651. .IB netmtpt /tcp
  652. and is used to find the caller's address.
  653. .SS "DNS Queries and Debugging"
  654. .I Ndb/dnsquery
  655. can be used to query
  656. .I ndb/dns
  657. to see how it resolves requests.
  658. .I Ndb/dnsquery
  659. prompts for commands of the form
  660. .IP
  661. .I "domain-name request-type"
  662. .LP
  663. where
  664. .I request-type
  665. can be
  666. .BR ip ,
  667. .BR ipv6 ,
  668. .BR mx ,
  669. .BR ns ,
  670. .BR cname ,
  671. .BR ptr ....
  672. In the case of the inverse query type,
  673. .BR ptr ,
  674. .I dnsquery
  675. will reverse the ip address and tack on the
  676. .B .in-addr.arpa
  677. if necessary.
  678. .PP
  679. .I Ndb/dnsdebug
  680. is like
  681. .I ndb/dnsquery
  682. but bypasses the local server.
  683. It communicates via UDP (and sometimes TCP) with the domain name servers
  684. in the same way that the local resolver would and displays
  685. all packets received.
  686. The query can be specified on the command line or
  687. can be prompted for.
  688. The queries look like those of
  689. .I ndb/dnsquery
  690. with one addition.
  691. .I Ndb/dnsdebug
  692. can be directed to query a particular name server by
  693. the command
  694. .BI @ name-server\f1.
  695. From that point on, all queries go to that name server
  696. rather than being resolved by
  697. .IR dnsdebug .
  698. The
  699. .B @
  700. command returns query resolution to
  701. .IR dnsdebug .
  702. Finally, any command preceded by a
  703. .BI @ name-server
  704. sets the name server only for that command.
  705. .PP
  706. Normally
  707. .I dnsdebug
  708. uses the
  709. .B /net
  710. interface and the database file
  711. .BR /lib/ndb/local.
  712. The
  713. .B -f
  714. option supplies the name of the data base file to use.
  715. The
  716. .B -r
  717. option is the same as for
  718. .IR ndb/dns .
  719. The
  720. .B -x
  721. option directs
  722. .I dnsdebug
  723. to use the
  724. .B /net.alt
  725. interface and
  726. .B /lib/ndb/external
  727. database file.
  728. .SH EXAMPLES
  729. Look up
  730. .B helix
  731. in
  732. .IR ndb .
  733. .IP
  734. .EX
  735. % ndb/query sys helix
  736. sys=helix dom=helix.research.bell-labs.com bootf=/mips/9powerboot
  737. ip=135.104.117.31 ether=080069020427
  738. .EE
  739. .br
  740. .ne 8
  741. .LP
  742. Look up
  743. .B plan9.bell-labs.com
  744. and its IP address in the DNS.
  745. .IP
  746. .EX
  747. % ndb/dnsquery
  748. > plan9.bell-labs.com ip
  749. plan9.bell-labs.com ip 204.178.31.2
  750. > 204.178.31.2 ptr
  751. 2.31.178.204.in-addr.arpa ptr plan9.bell-labs.com
  752. 2.31.178.204.in-addr.arpa ptr ampl.com
  753. >
  754. .EE
  755. .LP
  756. Print the names of all PCs that boot via PXE.
  757. .IP
  758. .EX
  759. % ndb/query -a bootf /386/9boot sys
  760. .EE
  761. .SH FILES
  762. .TF /lib/ndb/local.*xxx
  763. .TP
  764. .B /env/DNSSERVER
  765. resolver's DNS servers' IP addresses.
  766. .TP
  767. .B /lib/ndb/local
  768. first database file searched
  769. .TP
  770. .B /lib/ndb/local.*
  771. hash files for
  772. .B /lib/ndb/local
  773. .TP
  774. .B /srv/cs
  775. service file for
  776. .I ndb/cs
  777. .TP
  778. .B /net/cs
  779. where
  780. .B /srv/cs
  781. gets mounted
  782. .TP
  783. .B /srv/dns
  784. service file for
  785. .I ndb/dns
  786. .TP
  787. .B /net/dns
  788. where
  789. .B /srv/dns
  790. gets mounted
  791. .SH SOURCE
  792. .B /sys/src/cmd/ndb
  793. .SH SEE ALSO
  794. .IR ndb (2),
  795. .IR ndb (6)
  796. .SH BUGS
  797. .I Ndb
  798. databases are case-sensitive;
  799. ethernet addresses must be in lower-case hexadecimal.