ndb 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. .TH NDB 6
  2. .SH NAME
  3. ndb \- Network database
  4. .SH DESCRIPTION
  5. .PP
  6. The network database consists of files
  7. describing machines known to the local
  8. installation and machines known publicly.
  9. The files comprise multi-line tuples made up of
  10. attribute/value pairs of the form
  11. .IB attr = value
  12. or sometimes just
  13. .IR attr .
  14. Each line starting without white space starts a new tuple.
  15. Lines starting with
  16. .B #
  17. are comments.
  18. .PP
  19. The file
  20. .B /lib/ndb/local
  21. is the root of the database.
  22. Other files are included in the
  23. database if a tuple with an
  24. attribute-value pair of attribute
  25. .B database
  26. and no value exists in
  27. .BR /lib/ndb/local .
  28. Within the
  29. .B database
  30. tuple,
  31. each pair with attribute
  32. .B file
  33. identifies a file to be included in the database. The files are searched
  34. in the order they appear.
  35. For example:
  36. .IP
  37. .EX
  38. database=
  39. file=/lib/ndb/common
  40. file=/lib/ndb/local
  41. file=/lib/ndb/global
  42. .EE
  43. .PP
  44. declares the database to be composed of the three files
  45. .BR /lib/ndb/common ,
  46. .BR /lib/ndb/local ,
  47. and
  48. .BR /lib/ndb/global .
  49. By default,
  50. .B /lib/ndb/local
  51. is searched before the others.
  52. However,
  53. .B /lib/ndb/local
  54. may be included in the
  55. .B database
  56. to redefine its ordering.
  57. .PP
  58. Within tuples, pairs on the same line bind tighter than
  59. pairs on different lines.
  60. .PP
  61. Programs search the database directly using the routines in
  62. .IR ndb (2)
  63. or indirectly using
  64. .B ndb/cs
  65. and
  66. .B ndb/dns
  67. (see
  68. .IR ndb (8)).
  69. Both
  70. .B ndb/cs
  71. and the routine
  72. .I ndbipinfo
  73. impose structure on the otherwise flat database by using
  74. knowledge specific to the network.
  75. The internet is made up of networks which can be subnetted
  76. multiple times. A network must have an
  77. .B ipnet
  78. attribute and is uniquely identified by the values of its
  79. .B ip
  80. and
  81. .B ipmask
  82. attributes. If the
  83. .B ipmask
  84. is missing, the relevant Class A, B or C one is used.
  85. .LP
  86. A search for an attribute associated with a network or host starts
  87. at the lowest level, the entry for the host or network itself,
  88. and works its way up, bit by bit, looking at entries for nets/subnets
  89. that include the network or host. The search ends when the attribute
  90. is found.
  91. For example, consider the following entries:
  92. .IP
  93. .EX
  94. ipnet=murray-hill ip=135.104.0.0 ipmask=255.255.0.0
  95. dns=135.104.10.1
  96. ntp=ntp.cs.bell-labs.com
  97. ipnet=plan9 ip=135.104.9.0 ipmask=255.255.255.0
  98. ntp=oncore.cs.bell-labs.com
  99. smtp=smtp1.cs.bell-labs.com
  100. ip=135.104.9.6 sys=anna dom=anna.cs.bell-labs.com
  101. smtp=smtp2.cs.bell-labs.com
  102. .EE
  103. .LP
  104. Here
  105. .B anna
  106. is on the subnet
  107. .B plan9
  108. which is in turn on the class B net
  109. .BR murray-hill .
  110. Assume that we're searching for
  111. .BR anna 's
  112. .B NTP
  113. and
  114. .B SMTP
  115. servers.
  116. The search starts by looking for an entry with
  117. .BR sys=anna .
  118. We find the anna entry. Since it has an
  119. .B smtp=smtp2.cs.bell-labs.com
  120. pair,
  121. we're done looking for that attribute.
  122. To fulfill the NTP request, we continue by looking for networks
  123. that include anna's IP address.
  124. We lop off the right most one bit from anna's address and
  125. look for an
  126. .B ipnet=
  127. entry with
  128. .BR ip=135.104.9.4 .
  129. Not finding one, we drop another bit and look for an
  130. .B ipnet=
  131. entry with
  132. .BR ip=135.104.9.0 .
  133. There is
  134. such an entry and it has the pair,
  135. .BR ntp=oncore.cs.bell-labs.com ,
  136. ending our search.
  137. .PP
  138. .I Ndb/cs
  139. can be made to perform such network aware
  140. searches by using metanames in the dialstring.
  141. A metaname is a
  142. .I $
  143. followed by an attribute name.
  144. .I Ndb/cs
  145. looks up the attribute relative to the system it is running
  146. on. Thus, with the above example, if a program called
  147. .IP
  148. .EX
  149. dial("tcp!$smtp!smtp", 0, 0, 0);
  150. .EE
  151. .LP
  152. the dial would connect to the SMTP port of
  153. .BR smtp2.cs.bell-labs.com .
  154. .PP
  155. A number of attributes are meaningful to programs and thus
  156. reserved.
  157. They are:
  158. .TF dnsdomain
  159. .TP
  160. .B sys
  161. system name (a short name)
  162. .TP
  163. .B dom
  164. Internet fully-qualified domain name
  165. .TP
  166. .B ip
  167. Internet address,
  168. v4 or v6.
  169. .TP
  170. .B ipv6
  171. IPv6 Internet address.
  172. For DNS, an
  173. .L AAAA
  174. record.
  175. .TP
  176. .B ether
  177. Ethernet address
  178. (must be lower-case hexadecimal).
  179. Beware that for machines with multiple
  180. .B ether
  181. attributes,
  182. .I dhcpd
  183. may expect requests to come from the address in the first
  184. .B ether
  185. attribute.
  186. .TP
  187. .B bootf
  188. file to download for initial bootstrap;
  189. .B /386/9boot
  190. to boot a PC via PXE.
  191. .TP
  192. .B ipnet
  193. Internet network name
  194. .TP
  195. .B ipmask
  196. Internet network mask
  197. .TP
  198. .B ipgw
  199. Internet gateway
  200. .TP
  201. .B auth
  202. authentication server to be used
  203. .TP
  204. .B authdom
  205. authentication domain. Plan 9 supports multiple authentication
  206. domains. To specify an authentication server for a particular domain,
  207. add a tuple containing both
  208. .B auth
  209. and
  210. .B authdom
  211. attributes and values.
  212. .TP
  213. .B fs
  214. file server to be used
  215. .TP
  216. .B tcp
  217. a TCP service name
  218. .TP
  219. .B udp
  220. a UDP service name
  221. .TP
  222. .B port
  223. a TCP or UDP port number
  224. .TP
  225. .B restricted
  226. a TCP service that can be called only by ports numbered
  227. less that 1024
  228. .TP
  229. .B proto
  230. a protocol supported by a host.
  231. The pair
  232. .B proto=il
  233. was needed by
  234. .I cs
  235. (see
  236. .IR ndb (8))
  237. in tuples for hosts that supported the IL protocol
  238. .TP
  239. .B dnsdomain
  240. a domain name that
  241. .I ndb/dns
  242. adds onto any unrooted names when doing a search.
  243. There may be multiple
  244. .B dnsdomain
  245. pairs.
  246. .TP
  247. .B dns
  248. a DNS server to use (for DNS and DHCP)
  249. .TP
  250. .B ntp
  251. an NTP server to use (for DHCP)
  252. .TP
  253. .B smtp
  254. an SMTP server to use (for DHCP)
  255. .TP
  256. .B time
  257. a time server to use (for DHCP)
  258. .TP
  259. .B wins
  260. a Windows name server (for DHCP)
  261. .TP
  262. .B mx
  263. mail exchanger (for DNS and DHCP);
  264. also
  265. .BR pref .
  266. .TP
  267. .B srv
  268. service location (for DNS);
  269. also
  270. .BR pri ,
  271. .B weight
  272. and
  273. .BR port .
  274. .TP
  275. .B soa
  276. start of area (for DNS)
  277. .PD
  278. .PP
  279. .I Cs
  280. defers to
  281. .I dns
  282. to translate dotted names to IP addresses,
  283. only consulting the database files if
  284. .I dns
  285. cannot translate the name.
  286. .PP
  287. .I Cs
  288. allows network entries with
  289. .B sys
  290. and
  291. .B dom
  292. attributes but no
  293. .B ip
  294. attribute.
  295. Searches for the system name are resolved
  296. by looking up the domain name with
  297. .IR dns .
  298. .PP
  299. The file
  300. .B /lib/ndb/auth
  301. is used during authentication to decide who has the power to `speak for' other
  302. users; see
  303. .IR authsrv (6).
  304. .SH EXAMPLES
  305. .LP
  306. A tuple for the CPU server, spindle.
  307. .LP
  308. .EX
  309. sys=spindle
  310. dom=spindle.research.bell-labs.com
  311. bootf=/mips/9powerboot
  312. ip=135.104.117.32 ether=080069020677
  313. .EE
  314. .LP
  315. Entries for the network
  316. .B mh-astro-net
  317. and its subnets.
  318. .LP
  319. .EX
  320. ipnet=mh-astro-net ip=135.104.0.0 ipmask=255.255.255.0
  321. fs=bootes.research.bell-labs.com
  322. ipgw=r70.research.bell-labs.com
  323. auth=p9auth.research.bell-labs.com
  324. ipnet=unix-room ip=135.104.117.0
  325. ipgw=135.104.117.1
  326. ipnet=third-floor ip=135.104.51.0
  327. ipgw=135.104.51.1
  328. .EE
  329. .LP
  330. Mappings between TCP service names and port numbers.
  331. .LP
  332. .EX
  333. .ta \w'\fLtcp=sysmonxxxxx'u \w'\fLtcp=sysmonxxxxxport=512xxx'u
  334. tcp=sysmon port=401
  335. tcp=rexec port=512 restricted
  336. tcp=9fs port=564
  337. .EE
  338. .SH FILES
  339. .TF /lib/ndb/local
  340. .TP
  341. .B /lib/ndb/local
  342. first database file searched
  343. .SH "SEE ALSO"
  344. .IR con (1),
  345. .IR dial (2),
  346. .IR ndb (2),
  347. .IR 9boot (8),
  348. .IR booting (8),
  349. .IR dhcpd (8),
  350. .IR ipconfig (8),
  351. .IR ndb (8)