NONAMED.8
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:5k
源码类别:

操作系统开发

开发平台:

C/C++

  1. ." These numbers should match those in nonamed.c:
  2. .ds TT "1 hour"
  3. .ds ST "two seconds"
  4. .ds MT "four seconds"
  5. .ds LT "five minutes"
  6. .ds NS "five"
  7. .ds NI "256"
  8. .TH NONAMED 8
  9. .SH NAME
  10. nonamed - not a name daemon, but acts like one
  11. .SH SYNOPSIS
  12. .B nonamed
  13. .RB [ -d [fIlevelfP]]
  14. .RB [ -p
  15. .IR port ]
  16. .RB [ -n
  17. .IR address [/fIportfP]]
  18. .SH DESCRIPTION
  19. .B Nonamed
  20. is not an Internet name daemon.  When started it immediately tries to find a
  21. real name daemon on the local network.  If it finds one then it will relay
  22. any DNS queries to that name daemon.  If it can't find one then it will do
  23. its best to answer simple queries using the
  24. .B /etc/hosts
  25. table for name to address translation.
  26. .PP
  27. On startup
  28. .B nonamed
  29. broadcasts up to *(NS simple UDP queries on the local network.  This is a
  30. somewhat nasty thing to do, because it makes all name servers on the net
  31. spring into action to answer the request.  The first name server to answer
  32. is used by
  33. .B nonamed
  34. to answer the queries of its clients.  The broadcast search is repeated
  35. after an hour to give another name server a chance to be abused.  (It is
  36. quite normal for a host to use a remote name server.  The broadcasts are a
  37. bit unfriendly, but they only happen once an hour.)
  38. .PP
  39. If a real name server is found then
  40. .B nonamed
  41. enters "relay mode", passing all queries on.  In relay mode the daemon
  42. cannot be distinguished from a real DNS name daemon. 
  43. .PP
  44. .B Nonamed
  45. accepts both UDP and TCP queries under Minix-vmd.  Under standard Minix
  46. only UDP queries are accepted.  *(NI relayed UDP queries can be outstanding
  47. before it forgets where the first one came from.
  48. .PP
  49. In answer mode
  50. .B nonamed
  51. can answer simple DNS queries to translate a host name to an IP address, or
  52. an IP address to a host name.  Suppose
  53. .B /etc/hosts
  54. looks like this:
  55. .PP
  56. .RS
  57. .ta +15n
  58. .nf
  59. 127.0.0.1 localhost
  60. 192.9.200.1 darask.home.cs.vu.nl
  61. 192.9.200.2 burask.home.cs.vu.nl
  62. .fi
  63. .RE
  64. .PP
  65. Then queries for the host names listed can be answered with the IP addresses
  66. to the left of them.  If the name can't be found then it is retried with the
  67. domain name stripped of, this is because "localhost" is looked up as
  68. "localhost.home.cs.vu.nl" in the above example.  Reverse lookups are
  69. answered with the first hostname on the line with the IP address.
  70. .PP
  71. UDP queries are immediately answered on startup if the answer can be found
  72. in the hosts file.  Failure answers, and answers to TCP queries are delayed
  73. until it decides that there are no real name servers out there.
  74. .PP
  75. .B Nonamed
  76. employs several timeouts for efficient operation:
  77. .PP
  78. If *(NS broadcasts, *(ST apart fail to produce a name server on startup
  79. then it decides that there are no real name servers around.
  80. .PP
  81. After *(TT it will again look for a name server.  (We don't want to hog the
  82. same one indefinitely.)
  83. .PP
  84. If no UDP reply is seen in *(MT than a simple probe is sent the name
  85. server.  If that doesn't provoke an answer in *(ST then it will look for a
  86. new name server.  A failing TCP connection will also invoke a search, the
  87. TCP connection is then made to the new name server.  A client using UDP will
  88. retry eventually, a client using TCP will notice nothing but a short delay.
  89. The daemon drops back into answer mode if the search fails and it has a
  90. hosts file with a "localhost" entry.
  91. .PP
  92. It waits *(LT for any action on a TCP stream before the connection is
  93. aborted.
  94. .PP
  95. In answer mode it will generate data with a TTL (time to live) of *(TT.
  96. .SH OPTIONS
  97. The options are only useful when debugging
  98. .BR nonamed ,
  99. although it can be very instructive to watch DNS queries being done.
  100. .TP
  101. .BR -d [fIlevelfP]
  102. Set debugging level to
  103. .I level
  104. (a single digit, by default
  105. .BR 1 .)
  106. Debug mode 1 makes
  107. .B nonamed
  108. decode and display the DNS queries and replies that it receives, sends and
  109. relays.  The decoding only handles the common cases.  In debug mode 2 it
  110. prints tracing information about the internal jobs it executes.  In debug
  111. mode 3 it core dumps when an error causes it to exit.  The debugging level
  112. may also be increased by 1 at runtime by sending signal
  113. .B SIGUSR1
  114. or turned off (set to 0) with
  115. .BR SIGUSR2 .
  116. .TP
  117. .RB [ -p " fIportfP]
  118. Port to use instead of the normal
  119. .B domain
  120. port.
  121. .TP
  122. .RB [ -n " fIaddressfP[/fIportfP]]
  123. Use this IP address and port to find a real name server.  It can be used to
  124. make
  125. .B nonamed
  126. relay to another
  127. .BR nonamed .
  128. (They do not listen to broadcasts, of course.)  You can run two daemons on
  129. one machine if you choose a new port number for one of them.  You can force
  130. .B nonamed
  131. out of relay mode by sending it a hangup signal.
  132. .SH FILES
  133. .TP 15n
  134. /etc/hosts
  135. Hosts to address translation table when in answer mode.
  136. .SH "SEE ALSO"
  137. .BR gethostbyname (3),
  138. .BR resolver (3),
  139. .BR hosts (5),
  140. .BR set_net_default (8),
  141. .BR boot (8),
  142. .BR inetd (8),
  143. .BR irdpd (8),
  144. .BR rarpd (8).
  145. .SH NOTES
  146. You can specify a remote name server in
  147. .B /etc/resolv.conf
  148. to circumvent
  149. .BR nonamed .
  150. But then you lose its talent for automatically finding new name servers when
  151. the remote name server becomes unreachable.
  152. .PP
  153. Don't add a "localhost" entry to the hosts file if there are remote name
  154. servers.  It makes
  155. .B nonamed
  156. drop back in answer mode on a flaky network.
  157. .SH BUGS
  158. If you can get a remote
  159. .B nonamed
  160. to listen to your name server then you can make it believe anything you
  161. want to.  You need access to a machine on the same subnet of course.
  162. .SH AUTHOR
  163. Kees J. Bot (kjb@cs.vu.nl)