home *** CD-ROM | disk | FTP | other *** search
/ Peanuts NeXT Software Archives / Peanuts-1.iso / CDROM / FAQs / Internet / Domains / part2 < prev   
Encoding:
Text File  |  1996-10-08  |  55.0 KB  |  1,374 lines

  1. Newsgroups: comp.protocols.tcp-ip.domains,comp.answers,news.answers
  2. Path: informatik.tu-muenchen.de!Germany.EU.net!main.Germany.EU.net!EU.net!howland.erols.net!news.sgi.com!rutgers!njitgw.njit.edu!hertz.njit.edu!cdp2582
  3. From: cdp2582@hertz.njit.edu (Chris Peckham)
  4. Subject: comp.protocols.tcp-ip.domains Frequently Asked Questions (FAQ) (Part 2 of 2)
  5. Message-ID: <cptd-faq-2-844662719@njit.edu>
  6. Followup-To: comp.protocols.tcp-ip.domains
  7. Originator: cdp2582@hertz.njit.edu
  8. Keywords: BIND,DOMAIN,DNS
  9. Sender: news@njit.edu
  10. Supersedes: <cptd-faq-2-841897014@njit.edu>
  11. Nntp-Posting-Host: hertz.njit.edu
  12. X-Posting-Frequency: posted during the first week of each month
  13. Reply-To: domain-faq@njit.edu (comp.protocols.tcp-ip.domains FAQ comments)
  14. Organization: NJIT.EDU - New Jersey Institute of Technology, Newark, NJ, USA
  15. References: <cptd-faq-1-844662719@njit.edu> 
  16. Date: Mon, 7 Oct 1996 04:32:08 GMT
  17. Approved: news-answers-request@MIT.EDU
  18. Expires: Mon 11 Nov 96 00:31:59 EDT
  19. Lines: 1352
  20. Xref: informatik.tu-muenchen.de comp.protocols.tcp-ip.domains:14351 comp.answers:21516 news.answers:83577
  21.  
  22. Posted-By: auto-faq 3.1.1.2
  23. Archive-name: internet/tcp-ip/domains-faq/part2
  24. Revision: 1.11 1996/09/05 04:16:22
  25.  
  26.  
  27. This FAQ is edited and maintained by Chris Peckham, <cdp@pfmc.net>. 
  28. The latest version may always be found for anonymous ftp from
  29.  
  30.     ftp://rtfm.mit.edu/pub/usenet/news.answers/internet/tcp-ip/domains-faq
  31.  
  32. If you can contribute any answers for items in the TODO section, please do
  33. so by sending e-mail to domain-faq@pfmc.net !  If you know of any items that 
  34. are not included and you feel that they should be,  send the relevant
  35. information to domain-faq@pfmc.net.
  36.  
  37.  
  38. ------------------------------
  39.  
  40. Date: Wed Sep  4 23:45:28 EDT 1996
  41. Subject: Table of Contents
  42.  
  43. Table of Contents              
  44. Subject: Table of Contents
  45.  
  46. Table of Contents
  47. =================
  48. Part 1
  49. ------
  50.    0. TO DO / UPDATES
  51.    1. INTRODUCTION / MISCELLANEOUS
  52.       1.1  What is this newsgroup ?
  53.       1.2  More information
  54.       1.3  What is BIND and where is the latest version of BIND ?
  55.       1.4  How can I find the route between systems ?
  56.       1.5  Finding the hostname if you have the tcp-ip address
  57.       1.6  How to register a domain name
  58.       1.7  Change IP of primary name server
  59.       1.8  Change of Domain name
  60.       1.9  How memory and CPU does DNS use ?
  61.       1.10 Other things to consider when planning your servers  
  62.       1.11 Proper way to get NS and reverse IP records into DNS
  63.       1.12 How to get my address assigned from the NIC ?
  64.       1.13 Is there a block of private IP addresses I can use?
  65.       1.14 Cache failed lookups
  66.       1.15 What does an NS record really do ?
  67.       1.16 DNS ports
  68.       1.17 Obtaining the latest cache file 
  69.       1.18 Selecting a nameserver/root cache
  70.       1.19 InterNIC and domain names
  71.    2. UTILITIES
  72.       2.1  Utilities to administer DNS zone files
  73.       2.2  DIG - Domain Internet Groper
  74.       2.3  DNS packet analyzer
  75.       2.4  host 
  76.       2.5  Programming with DNS
  77.       2.6  A source of information relating to DNS
  78.    3. DEFINITIONS
  79.       3.1  TCP/IP Host Naming Conventions
  80.       3.2  Slaves and servers with forwarders
  81.       3.3  When is a server authoritative?
  82.       3.4  Underscore in host-/domain names
  83.       3.5  Lame delegation
  84.       3.6  What does opt-class field do?
  85.       3.7  Top level domains
  86.       3.8  Classes of networks
  87.       3.9  What is CIDR ?
  88.       3.10 What is the rule for glue ?
  89.  
  90. Part 2
  91. ------
  92.    4. CONFIGURATION
  93.       4.1  Changing a Secondary server to a Primary and moving Primary
  94.       4.2  How do I subnet a Class B Address ?
  95.       4.3  Subnetted domain name service
  96.       4.4  Recommended format/style of DNS files
  97.       4.5  DNS on a system not connected to the Internet
  98.       4.6  Multiple Domain configuration
  99.       4.7  wildcard MX records
  100.       4.8  How to identify a wildcard MX record
  101.       4.9  Why are fully qualified domain names recommended ?
  102.       4.10 Distributing load using named
  103.       4.11 Order of returned records
  104.       4.12 resolv.conf 
  105.       4.13 Delegating authority 
  106.       4.14 DNS instead of NIS on a Sun OS 4.1.x system
  107.       4.15 Patches to add functionality to BIND
  108.       4.16 How to serve multiple domains from one server
  109.       5.4  Some root nameservers don't know localhost
  110.       5.5  MX records and CNAMES and separate A records for MX targets
  111.       5.6  NS is a CNAME
  112.       5.7  Nameserver forgets own A record
  113.       5.8  General problems (core dumps !)
  114.       5.9  malloc and DECstations
  115.       5.10 Can't resolve names without a "."
  116.       5.11 Err/TO errors being reported
  117.       5.12 Why does swapping kill BIND ?
  118.    6. ACKNOWLEDGEMENTS
  119.  
  120. ------------------------------
  121.  
  122.  
  123. Date: Fri Jul  5 23:54:35 EDT 1996
  124. Subject: Q4.1 - Changing a Secondary server to a Primary and moving Primary
  125.  
  126. Q: Do I need to do anything special when I change a server from a secondary 
  127.    to a primary ?
  128.  
  129. A: For 4.8.3,  it's prudent to kill and restart following any changes to
  130.    named.boot.
  131.  
  132.    In BIND 4.9.3, you only have to kill and restart named if you change
  133.    a primary zone to a secondary or v-v, or if you delete a zone and
  134.    remain authoritative for its parent.  Every other case should be
  135.    taken care of by a HUP.  (Ed. note: 4.9.3b9 may still require you to
  136.    kill and restart the server due to some bugs in the HUP code).
  137.  
  138.    You will also need to update the server information on the root servers.
  139.    You can do this by filing a new domain registration form to inform 
  140.    InterNIC of the change.  They will then update the root server's SOA
  141.    records.  This process usually takes 10-12 business days after they
  142.    receive the request.
  143.  
  144. Q: How do I move my primary nameserver from one server to another ?
  145.  
  146. A: The usual solution is to move the primary to ns.newserver.com, and have
  147.    ns.oldserver.com be configured as a secondary server until the change 
  148.    to the root servers takes place after the request has been made to the
  149.    InterNIC.
  150.  
  151. Q: I am currently moving to a diffrent ISP which will change my IP's.
  152.    Now I have 26+ domains that I am Primary and Secondary name servers for.  
  153.    Is there a way to have a change of these domains name servers all at once
  154.    on a specific day?  
  155.  
  156.    Is there a recommened setting for the SOA that would minimize name servers
  157.    using the old settings?
  158.  
  159. A: Yes.  Gradually lower the TTL value in your SOA (that's the last one of
  160.    the five numbers) to always be equal to the time left until you change
  161.    over.  (assuming that none of your resource records have individual
  162.    TTL's set, if so, do likewise witht them.)  So, the day before, lower 
  163.    to 43200 seconds (12 hours).  Then lower every few hours to be the time 
  164.    remaining until the change-over.  So, an hour before the change, you may 
  165.    just want to lower it all the way to 60 seconds or so.  That way no one 
  166.    can cache information past the change-over.
  167.  
  168.    After the change, start gradually incrementing the TTL value, because
  169.    you'll probably be making changes to work out problems.  Once everything
  170.    stabilizes, move the TTL up to whatever your normal values are.
  171.  
  172.    To minimize name servers from using the "old settings", you can do the 
  173.    same thing with the "refresh" interval in the SOA (the second
  174.    number of the SOA).  That will tell the secondaries to refresh every X
  175.    seconds.  Lower that value as you approach the changeover date.  You
  176.    probably don't want to go much below an hour or you'll start the primary
  177.    thrashing as all the secondaries perpetually refresh.
  178.  
  179.  
  180. -------------------------------
  181.  
  182. Date: Fri Apr 28 13:34:52 EDT 1995
  183. Subject: Q4.2 - How do I subnet a Class B Address ?
  184.  
  185. Q: I just received a Class B internet address and I am wondering where to
  186.    get an RFC or other information on how to properly to the TCP/IP
  187.    sub-netting.
  188.  
  189. A: That you need to subnet at all is something of a misconception.  You
  190.    can also think of a class B network as giving you 65,534 individual
  191.    hosts, and such a network will work. You can also configure your
  192.    class B as 16,384 networks of 2 hosts each.  That's obviously not
  193.    very practical, but it needs to be made clear that you are not
  194.    constrained by the size of an octet (remember that many older
  195.    devices would not work in a network configured in this manner).
  196.  
  197.    So, the question is: why do you need to subnet?   One reason is that
  198.    it is easier to manage a subnetted network, and in fact, you can
  199.    delegate the responsibility for address space management to local
  200.    administrators on the various subnets.  Also, IP based problems will
  201.    end up localized rather than affecting your entire network.
  202.    
  203.    If your network is a large backbone with numerous segments
  204.    individually branching off the backbone, that too suggests
  205.    subnetting.
  206.  
  207.    Subnetting can also be used to improve routing conditions.
  208.  
  209.    You may wish to partition your network to disallow certain protocols 
  210.    on certain segments of your net.  You can, for example, restrict IP or
  211.    IPX to certain segments only by adding a router routing high level 
  212.    protocols, and across the router you may have to subnet. 
  213.  
  214.    Finally, as far as how many subnets you need depends on the answer to
  215.    the above question.  As far as subnet masks are concerned, the mask
  216.    can be anything from 255.0.0.0 to 255.255.255.252.  You'll probably be
  217.    looking at 9 or 10 bits for the subnet (last octet 128 or 192
  218.    respectively).  RFC1219 discusses the issue of subnetting very well 
  219.    and leaves the network administrator with a large amount of flexibility
  220.    for future growth.
  221.  
  222.  
  223. ------------------------------
  224.  
  225. Date: Mon Aug  5 23:00:16 EDT 1996
  226. Subject: Q4.3 -Subnetted domain name service
  227.  
  228. Q: After doing some reading (DNS and BIND, Albitz&Liu), I don't really
  229.    find any examples of handling subnetted class C networks as separate
  230.    DNS domains.
  231.  
  232. A: See the Internet Draft
  233.  
  234.       draft-ietf-cidrd-classless-inaddr-01.txt
  235.  
  236.    for more information.   This file is available for anonymous ftp at
  237.  
  238.       ftp://ds.internic.net/internet-drafts
  239.  
  240.    or other IETF mirror sites (ftp.is.ca.za [Africa], nic.nordu.net [Europe],
  241.    munnari.oz.au [Pacific Rim], ds.internic.net [US East Coast], or
  242.    ftp.isi.edu [US West Coast]).
  243.  
  244.    Details follow- You need to delegate down to the fourth octet, so you
  245.    will have one domain per IP address !  Here is how you can subdelegate
  246.    a in-addr.arpa address for non-byte aligned subnet masks:
  247.  
  248.    Take as an example the net 192.1.1.x, and example subnet mask 
  249.    255.255.255.240.
  250.  
  251.    We first define the domain for the class C net,
  252.  
  253. $origin  1.1.192.in-addr.arpa
  254. @       SOA   (usual stuff)
  255. @       ns  some.nameserver
  256.         ns  some.other.nameserver
  257. ; delegate a subdomain
  258. one     ns  one.nameserver
  259.         ns  some.nameserver
  260. ; delegate another
  261. two     ns  two.nameserver
  262.         ns  some.nameserver
  263. ; CNAME pointers to subdomain one
  264. 0       CNAME 0.one
  265. 1       CNAME 1.one
  266. ;    through
  267. 15      CNAME 15.one
  268. ; CNAME pointers to subdomain two
  269. 16      CNAME 16.two
  270. 17      CNAME 17.two
  271. 31      CNAME 31.two
  272. ; CNAME as many as required.
  273.  
  274.    Now, in the delegated nameserver, one.nameserver
  275.  
  276. $origin one.1.1.192.in-addr.arpa
  277. @       SOA (usual stuff)
  278.         NS  one.nameserver
  279.         NS  some.nameserver   ;  secondary for us
  280. 0       PTR  onenet.one.domain
  281. 1       PTR  onehost.one.domain
  282. ;   through
  283. 15      PTR  lasthost.one.domain
  284.  
  285.    And similar for the two.1.1.192.in-addr.arpa delegated domain.
  286.  
  287.    There is additional documentation and a perl script that may be used
  288.    for this purpose available for anonymous ftp from:
  289.  
  290.       ftp://ftp.vix.com/pub/bind/gencidrzone .
  291.  
  292.  
  293. ------------------------------
  294.  
  295. Date: Sun Nov 27 23:32:41 EST 1994
  296. Subject: Q4.4 - Recommended format/style of DNS files
  297.  
  298. Q:  Are there any suggestions for how to layout DNS configuration files
  299.     (both forward and reverse)?
  300.  
  301. A: This answer is quoted from an article posted by Paul Vixie:
  302.  
  303.    I've gone back and forth on the question of whether the BOG should
  304.    include a section on this topic.  I know what I myself prefer, but
  305.    I'm wary of ramming my own stylistic preferences down the throat of
  306.    every BOG reader.  But since you ask :-)...
  307.  
  308.    Create /var/named.  If your system is too old to have a /var, either
  309.    create one or use /usr/local/adm/named instead.  Put your named.boot
  310.    in it, and make /etc/named.boot a symlink to it.  If your system
  311.    doesn't have symlinks, you're S-O-L (but you knew that).  In
  312.    named.boot, put a "directory" directive that specifies your actual
  313.    BIND working directory:
  314.  
  315.         directory       /var/named
  316.  
  317.    All relative pathnames used in "primary", "secondary", and "cache"
  318.    directives will be evaluated relative to this directory.  Create two
  319.    subdirectories, /var/named/pri and /var/named/sec.  Whenever you add
  320.    a "primary" directive to your named.boot, use "pri/WHATEVER" as the
  321.    path name.  And then put the primary zone file into "pri/WHATEVER".
  322.    Likewise when you add "secondary" directives, use "sec/WHATEVER" and
  323.    BIND (really named-xfer) will create the files in that
  324.    subdirectory.
  325.  
  326.    (Variations: (1) make a midlevel directory "zones" and put "pri" and
  327.    "sec" into it; (2) if you tend to pick up a lot of secondaries from
  328.    a few hosts, group them together in their own subdirectories --
  329.    something like /var/named/zones/uucp if you're a UUCP Project name
  330.    server.)
  331.  
  332.    For your forward files, name them after the zone.  dec.com becomes
  333.    "/var/named/zones/pri/dec.com".  For your reverse files, name them
  334.    after the network number.  0.1.16.in-addr.arpa becomes
  335.    "/var/named/zones/pri/16.1.0".
  336.  
  337.    When creating or maintaining primary zone files, try to use the same
  338.    SOA values everywhere, except for the serial number which varies per
  339.    zone.  Put a $ORIGIN directive at the top of the primary zone file,
  340.    not because its needed (it's not since the default origin is the
  341.    zone named in the "primary" directive) but because it make it easier
  342.    to remember what you're working on when you have a lot of primary
  343.    zones.  Put some comments up there indicating contact information
  344.    for the real owner if you're proxying.  Use RCS and put the "Id"
  345.    in a ";" comment near the top of the zone file.
  346.  
  347.    The SOA and other top level information should all be listed
  348.    together.  But don't put IN on every line, it defaults nicely.  For
  349.    example:
  350.  
  351. ==============
  352. @       IN      SOA     gw.home.vix.com. postmaster.vix.com. (
  353.                         1994082501      ; serial
  354.                         3600    ; refresh (1 hour)
  355.                         1800    ; retry (30 mins)
  356.                         604800  ; expire (7 days)
  357.                         3600 )  ; minimum (1 hour)
  358.  
  359.                 NS      gw.home.vix.com.
  360.                 NS      ns.uu.net.
  361.                 NS      uucp-gw-1.pa.dec.com.
  362.                 NS      uucp-gw-2.pa.dec.com.
  363.  
  364.                 MX      10 gw.home.vix.com.
  365.                 MX      20 uucp-gw-1.pa.dec.com.
  366.                 MX      20 uucp-gw-1.pa.dec.com.
  367. ==============
  368.  
  369.    I don't necessarily recommend those SOA values.  Not every zone is
  370.    as volatile as the example shown.  I do recommend that serial number
  371.    format; it's in date format with a 2-digit per-day revision number.
  372.    This format will last us until 2147 A.D. at which point I expect a
  373.    better solution will have been found :-).  (Note that it would last
  374.    until 4294 A.D. except that there are some old BINDs out there that
  375.    use a signed quantity for representing serial number interally; I
  376.    suppose that as long as none of these are still running after 2047
  377.    A.D., that we can use the above serial number format until 4294
  378.    A.D., at which point a better solution will HAVE to be found.)
  379.  
  380.    You'll note that I use a tab stop for "IN" even though I never again
  381.    specify it.  This leaves room for names longer than 7 bytes without
  382.    messing up the columns.  You might also note that I've put the MX
  383.    priority and destination in the same tab stop; this is because both
  384.    are part of the RRdata and both are very different from MX which is
  385.    an RRtype.  Some folks seem to prefer to group "MX" and the priority
  386.    together in one tab stop.  While this looks neat it's very confusing
  387.    to newcomers and for them it violates the law of least
  388.    astonishment.
  389.  
  390.    If you have a multi-level zone (one which contains names that have
  391.    dots in them), you can use additional $ORIGIN statements but I
  392.    recommend against it since there is no "back" operator.  That is,
  393.    given the above example you can add:
  394.  
  395. =============
  396. $ORIGIN home
  397. gw              A       192.5.5.1
  398. =============
  399.  
  400.    The problem with this is that subsequent RR's had better be
  401.    somewhere under the "home.vix.com" name or else the $ORIGIN that
  402.    introduces them will have to use a fully qualified name.  FQDN
  403.    $ORIGIN's aren't bad and I won't be mad if you use them.
  404.    Unqualified ones as shown above are real trouble.  I usually stay
  405.    away from them and just put the whole name in:
  406.  
  407. =============
  408. gw.home         A       192.5.5.1
  409. =============
  410.  
  411.    In your reverse zones, you're usually in some good luck because the
  412.    owner name is usually a single short token or sometimes two.
  413.  
  414. =============
  415. $ORIGIN 5.5.192.in-addr.arpa.
  416. @       IN      SOA     ...
  417.                 NS      ...
  418. 1               PTR     gw.home.vix.com.
  419. =========================================
  420. $ORIGIN 1.16.in-addr.arpa.
  421. @       IN      SOA     ...
  422.                 NS      ...
  423. 2.0             PTR     gatekeeper.dec.com.
  424. =============
  425.  
  426.    It is usually pretty hard to keep your forward and reverse zones in
  427.    synch.  You can avoid that whole problem by just using "h2n" (see
  428.    the ORA book, DNS and BIND, and its sample toolkit, included in the
  429.    BIND distribution or on ftp.uu.net (use the QUOTE SITE EXEC INDEX
  430.    command there to find this -- I never can remember where it's at).
  431.    "h2n" and many tools like it can just read your old /etc/hosts file
  432.    and churn it into DNS zone files.  (May I recommend
  433.    contrib/decwrl/mkdb.pl from the BIND distribution?)  However, if you
  434.    (like me) prefer to edit these things by hand, you need to follow
  435.    the simple convention of making all of your holes consistent.  If
  436.    you use 192.5.5.1 and 192.5.5.3 but not (yet) 192.5.5.2, then in
  437.    your forward file you will have something like
  438.  
  439. =============
  440. ....
  441. gw.home         A       192.5.5.1
  442. ;avail          A       192.5.5.2
  443. pc.home         A       192.5.5.3
  444. =============
  445.  
  446.    and in your reverse file you will have something like
  447.  
  448. =============
  449. ....
  450. 1               PTR     gw.home.vix.com.
  451. ;2              PTR     avail
  452. 3               PTR     pc.home.vix.com.
  453. =============
  454.  
  455.    This convention will allow you to keep your sanity and make fewer
  456.    errors.  Any kind of automation (h2n, mkdb, or your own
  457.    perl/tcl/awk/python tools) will help you maintain a consistent
  458.    universe even if it's also a complex one.  Editing by hand doesn't
  459.    have to be deadly but you MUST take care.
  460.  
  461. ------------------------------
  462.  
  463. Date: Sun Nov 27 23:32:41 EST 1994
  464. Subject: Q4.5 - DNS on a system not connected to the Internet
  465.  
  466.  
  467. Q: How do I use DNS on a system that is not connected to the Internet or
  468.    set BIND up with an internal root server ?
  469.  
  470. A: You need to create your own root domain name server until you connect 
  471.    to the internet.  Your roots need to delegate to mydomain.com and any
  472.    in-addr.arpa subdomains you might have, and that's about it.  As
  473.    soon as you're connected, rip out the fake roots and use the real
  474.    ones.
  475.  
  476.    It does not actually have to be another server pretending to be the root.
  477.    You can set up the name server so that it is primary for each domain
  478.    above you and leave them empty (i.e. you are foo.bar.com - claim to be
  479.    primary for bar.com and com)
  480.  
  481. Q: What if you connect intermittently and want DNS to work when you are
  482.    connected, and "fail" when you are not ?
  483.  
  484. A: You can point the resolver at the name server at the remote site and
  485.    if the connection (SLIP/PPP) isn't up, the resolver doesn't have a
  486.    route to the remote server and since there's only one name server in
  487.    resolv.conf, the resolver quickly backs off the using /etc/hosts.
  488.    No problem.  You could do the same with multiple name server and a
  489.    resolver that did configurable /etc/hosts fallback.
  490.  
  491. ------------------------------
  492.  
  493. Date: Fri Dec  2 15:40:49 EST 1994
  494. Subject: Q4.6 -Multiple Domain configuration
  495.  
  496.  
  497. Q: I have seen sites that seem to have multiple domain names pointing to the
  498.    same destination. I would like to implement this and have found no
  499.    information explaining how to do it. What I would like to do is:
  500.  
  501.       ftp ftp.biff.com connects user to -> ftp.biff.com
  502.       ftp ftp.fred.com connects user to -> ftp.biff.com
  503.       ftp ftp.bowser.com connects user to -> ftp.biff.com
  504.  
  505. A: This is done through CNAME records:
  506.  
  507.       ftp.bowser.com.         IN      CNAME ftp.biff.com.
  508.  
  509.     You can also do the same thing with multiple A records.
  510.    
  511.  
  512. ------------------------------
  513.  
  514. Date: Sun Nov 27 23:32:41 EST 1994
  515. Subject: Q4.7 - wildcard MX records
  516.  
  517. Q: Does BIND not understand wildcard MX records such as the following?
  518.  
  519.      *.foo.com       MX      0       mail.foo.com.
  520.  
  521. A: Explicit RR's at one level of specificity will, by design, "block" a
  522.    wildcard at a lesser level of specificity. I suspect that you have
  523.    an RR (an A RR, perhaps?) for "bar.foo.com" which is blocking the
  524.    application of your "*.foo.com" wildcard. The initial MX query is
  525.    thus failing (NOERROR but an answer count of 0), and the backup
  526.    query finds the A RR for "bar.foo.com" and uses it to deliver the
  527.    mail directly (which is what you DIDN'T want it to do).  Adding an
  528.    explicit MX RR for the host is therefore the right way to handle
  529.    this situation.
  530.  
  531.    See RFC 1034, Section 4.3.3 ("Wildcards") for more information on
  532.    this "blocking" behavior, along with an illustrative example. See
  533.    also RFC 974 for an explanation of standard mailer behavior in the
  534.    face of an "empty" response to one's MX query.
  535.  
  536.    Basically, what it boils down to is, there is no point in trying to
  537.    use a wildcard MX for a host which is otherwise listed in the DNS.
  538.  
  539.    It just doesn't work.
  540.  
  541. ------------------------------
  542.  
  543. Date: Thu Dec  1 11:10:39 EST 1994
  544. Subject: Q4.8 - How to identify a wildcard MX record
  545.  
  546.  
  547. Q: How do you identify a wildcard MX record ?
  548.  
  549. A: You don't really need to "identify" a wildcard MX RR.  The precedence 
  550.    for u@dom is:
  551.  
  552.         exact match MX
  553.         exact match A
  554.         wildcard MX
  555.  
  556.    One way to implement this is to query for ("dom",IN,MX) and if the
  557.    answer name that comes back is "*." something, you know it's a
  558.    wildcard, therefore you know there is no exact match MX, and you
  559.    therefore query for ("dom",IN,A) and if you get something, use it.
  560.    if you don't, use the previous wildcard response.
  561.  
  562.    RFC 974 explains this pretty well.
  563.  
  564. ------------------------------
  565.  
  566. Date: Sun Nov 27 23:32:41 EST 1994
  567. Subject: Q4.9 - Why are fully qualified domain names recommended ?
  568.  
  569.  
  570. Q: Why are fully qualified domain names recommended ?
  571.  
  572. A: The documentation for BIND 4.9.2 says that the hostname should be set 
  573.    to the full domain style name (i.e host.our.domain rather than
  574.    host).  What advantages are there in this, and are there any adverse
  575.    consequences if we don't?
  576.  
  577. A: Paul Vixie likes to do it :-)  He lists a few reasons -
  578.  
  579.    * Sendmail can be configured to just use Dj$w rather than
  580.      Dj$w.mumble where "mumble" is something you have to edit in by
  581.      hand.  Granted, most people use "mumble" elsewhere in their config
  582.      files ("tack on local domain", etc) but why should it be a
  583.      requirement ?
  584.  
  585.    * The real reason is that not doing it violates a very useful invariant:
  586.  
  587.     gethostbyname(gethostname) == gethostbyaddr(primary_interface_address)
  588.  
  589.      If you take an address and go "backwards" through the PTR's with
  590.      it, you'll get a FQDN, and if you push that back through the A
  591.      RR's, you get the same address.  Or you should.  Many multi-homed
  592.      hosts violate this uncaringly.
  593.  
  594.      If you take a non-FQDN hostname and push it "forwards" through the
  595.      A RR's, you get an address which, if you push it through the
  596.      PTR's, comes back as a FQDN which is not the same as the hostname
  597.      you started with.  Consider the fact that, absent NIS/YP, there is
  598.      no "domainname" command analogous to the "hostname" command.
  599.      (NIS/YP's doesn't count, of course, since it's
  600.      sometimes-but-only-rarely the same as the Internet domain or
  601.      subdomain above a given host's name.)  The "domain" keyword in
  602.      resolv.conf doesn't specify the parent domain of the current host;
  603.      it specifies the default domain of queries initiated on the
  604.      current host, which can be a very different thing.  (As of RFC
  605.      1535 and BIND 4.9.2's compliance with it, most people use "search"
  606.      in resolv.conf, which overrides "domain", anyway.)
  607.  
  608.      What this means is that there is NO authoritative way to
  609.      programmatically discover your host's FQDN unless it is set in the
  610.      hostname, or unless every application is willing to grovel the
  611.      "netstat -in" tables, find what it hopes is the primary address,
  612.      and do a PTR query on it.
  613.  
  614.      FQDN /bin/hostnames are, intuitively or not, the simplest way to go.
  615.  
  616. ------------------------------
  617.  
  618. Date: Wed Mar  1 11:04:43 EST 1995
  619. Subject: Q4.10 - Distributing load using named
  620.  
  621. Q: If you attempt to distribute the load on a system using named, won't 
  622.    the first response be cached, and then later queries use the cached
  623.    value? (This would be for requests that come through the same
  624.    server.)
  625.  
  626. A: Yes.  So it can be useful to use a lower TTL on records where this is
  627.    important.  You can use values like 300 or 500 seconds.
  628.  
  629.    If your local caching server has ROUND_ROBIN, it does not matter
  630.    what the authoritative servers have -- every response from the cache
  631.    is rotated.
  632.  
  633.    But if it doesn't, and the authoritative server site is depending on
  634.    this feature (or the old "shuffle-A") to do load balancing, then if
  635.    one doesn't use small TTLs, one could conceivably end up with a
  636.    really nasty situation, e.g., hundreds of workstations at a branch
  637.    campus pounding on the same front end at the authoritative server's
  638.    site during class registration.
  639.  
  640.    Not nice.
  641.  
  642. A: Paul Vixie has an example of the ROUND_ROBIN code in action.  Here is 
  643.    something that he wrote regarding his example:
  644.  
  645.      >I want users to be distributed evenly among those 3 hosts.
  646.  
  647.      Believe it or not :-), BIND offers an ugly way to do this.  I offer
  648.      for your collective amusement the following snippet from the
  649.      ugly.vix.com zone file:
  650.  
  651.        hydra           cname        hydra1
  652.                        cname        hydra2
  653.                        cname        hydra3
  654.        hydra1          a            10.1.0.1
  655.                        a            10.1.0.2
  656.                        a            10.1.0.3
  657.        hydra2          a            10.2.0.1
  658.                        a            10.2.0.2
  659.                        a            10.2.0.3
  660.        hydra3          a            10.3.0.1
  661.                        a            10.3.0.2
  662.                        a            10.3.0.3
  663.        
  664.       Note that having multiple CNAME RR's at a given name is
  665.       meaningless according to the DNS RFCs but BIND doesn't mind (in
  666.       fact it doesn't even complain).  If you call
  667.       gethostbyname("hydra.ugly.vix.com") (try it!) you will get
  668.       results like the following.  Note that there are two round robin
  669.       rotations going on: one at ("hydra",CNAME) and one at each
  670.       ("hydra1",A) et al.  I used a layer of CNAME's above the layer of
  671.       A's to keep the response size down.  If you don't have nine
  672.       addresses you probably don't care and would just use a pile of
  673.       CNAME's pointing directly at real host names.
  674.  
  675.       {hydra.ugly.vix.com}
  676.       name: hydra2.ugly.vix.com
  677.       aliases: hydra.ugly.vix.com
  678.       addresses: 10.2.0.2 10.2.0.3 10.2.0.1
  679.  
  680.       {hydra.ugly.vix.com}
  681.       name: hydra3.ugly.vix.com
  682.       aliases: hydra.ugly.vix.com
  683.       addresses: 10.3.0.2 10.3.0.3 10.3.0.1
  684.  
  685.       {hydra.ugly.vix.com}
  686.       name: hydra1.ugly.vix.com
  687.       aliases: hydra.ugly.vix.com
  688.       addresses: 10.1.0.2 10.1.0.3 10.1.0.1
  689.  
  690.       {hydra.ugly.vix.com}
  691.       name: hydra2.ugly.vix.com
  692.       aliases: hydra.ugly.vix.com
  693.       addresses: 10.2.0.3 10.2.0.1 10.2.0.2
  694.  
  695.       {hydra.ugly.vix.com}
  696.       name: hydra3.ugly.vix.com
  697.       aliases: hydra.ugly.vix.com
  698.       addresses: 10.3.0.3 10.3.0.1 10.3.0.2
  699.  
  700.  
  701. ------------------------------
  702.  
  703. Date: Sun Dec  4 22:12:32 EST 1994
  704. Subject: Q4.11 - Order of returned records
  705.  
  706. Q: Is there any way to tell named to return records, specifically
  707.    address records, in the order in which they are listed in the
  708.    database?
  709.  
  710.    It would appear that named consistently applies a sorting algorithm
  711.    to address records which seems to be virtually guaranteed to be
  712.    pessimal for our routers, which have many A records.
  713.  
  714. A: Sorting, is the *resolver's* responsibility.  RFC 1123:
  715.  
  716.          6.1.3.4  Multihomed Hosts
  717.  
  718.             When the host name-to-address function encounters a host
  719.             with multiple addresses, it SHOULD rank or sort the
  720.             addresses using knowledge of the immediately connected
  721.             network number(s) and any other applicable performance or
  722.             history information.
  723.  
  724.             DISCUSSION:
  725.                  The different addresses of a multihomed host generally
  726.                  imply different Internet paths, and some paths may be
  727.                  preferable to others in performance, reliability, or
  728.                  administrative restrictions.  There is no general way
  729.                  for the domain system to determine the best path.  A
  730.                  recommended approach is to base this decision on local
  731.                  configuration information set by the system
  732.                  administrator.
  733.  
  734.    In BIND 4.9.x's resolver code, the "sortlist" directive in resolv.conf 
  735.    can be used to configure this.
  736.  
  737. ------------------------------
  738.  
  739. Date: Fri Feb 10 15:46:17 EST 1995
  740. Subject: Q4.12 - resolv.conf
  741.  
  742.  
  743. Q: Why should I use "real" IP addresses in /etc/resolv.conf and not 0.0.0.0 
  744.    or 127.0.0.1.
  745.  
  746. A: Paul Vixie writes on the issue of the contents of resolv.conf:
  747.  
  748.    It's historical.  Some kernels can't unbind a UDP socket's source
  749.    address, and some resolver versions (notably not including BIND
  750.    4.9.2 or 4.9.3's) try to do this.  The result can be wide area
  751.    network traffic with 127.0.0.1 as the source address.  Rather than
  752.    giving out a long and detailed map of version/vendor combinations of
  753.    kernels/BINDs that have/don't this problem, I just tell folks not to
  754.    use 127.0.0.1 at all.
  755.  
  756.    0.0.0.0 is just an alias for the first interface address assigned
  757.    after a system boot, and if that interface is a up-and-down point to
  758.    point link (PPP, SLIP, whatever), there's no guarantee that you'll
  759.    be able to reach yourself via 0.0.0.0 during the entire lifetime of
  760.    any system instance.  On most kernels you can finesse this by adding
  761.    static routes to 127.0.0.1 for each of your interface addresses, but
  762.    some kernels don't like that trick and rather than give a detailed
  763.    map of which ones work and which ones don't, I just globally
  764.    recommend against 0.0.0.0.
  765.  
  766.    If you know enough to know that 127.0.0.1 or 0.0.0.0 is safe on your
  767.    kernel and resolver, then feel free to use them.  If you don't know
  768.    for sure that it is safe, don't use them.  I never use them (except
  769.    on my laptop, whose hostname is "localhost" and whose 0.0.0.0 is
  770.    127.0.0.1 since I ifconfig my lo0 before any other interface).  The
  771.    operational advantage to using a real IP address rather than an
  772.    wormhole like 0.0.0.0 or 127.0.0.1, is that you can then "rdist" or
  773.    otherwise share identical copies of your resolv.conf on all the
  774.    systems on any given subnet, not all of which will be servers.
  775.  
  776. A: The problem was with older versions of the resolver (4.8.X).  If you
  777.    listed 127.0.0.1 as the first entry in resolv.conf, and for whatever
  778.    reason the local name server wasn't running and the resolver fell
  779.    back to the second name server listed, it would send queries to the
  780.    name server with the source IP address set to 127.0.0.1 (as it was
  781.    set when the resolver was trying to send to 127.0.0.1--you use the
  782.    loopback address to send to the loopback address).
  783.  
  784. ------------------------------
  785.  
  786. Date: Mon Jan  2 13:50:13 EST 1995
  787. Subject: Q4.13 - Delegating authority 
  788.  
  789. Q: How do I delegate authority for domains within my domain ?
  790.  
  791. A: When you start having a very big domain that can be broken into logical 
  792.    and separate entities that can look after their own DNS information,
  793.    you will probably want to do this.  Maintain a central area for the
  794.    things that everyone needs to see and delegate the authority for the
  795.    other parts of the organization so that they can manage themselves.
  796.     
  797.    Another essential piece of information is that every domain that
  798.    exists must have it NS records associated with it.  These NS records
  799.    denote the name servers that are queried for information about that
  800.    zone.  For your zone to be recognized by the outside world, the
  801.    server responsible for the zone above you must have created a NS
  802.    record for your machine in your domain.  For example, putting the
  803.    computer club onto the network and giving them control over their
  804.    own part of the domain space we have the following.
  805.    
  806.    The machine authorative for gu.uwa.edu.au is mackerel and the machine
  807.    authorative for ucc.gu.uwa.edu.au is marlin.
  808.     
  809.    in mackerel's data for gu.uwa.edu.au we have the following
  810.     
  811.    @               IN      SOA ...
  812.                    IN      A       130.95.100.3
  813.                    IN      MX      mackerel.gu.uwa.edu.au.
  814.                    IN      MX      uniwa.uwa.edu.au.
  815.     
  816.    marlin          IN      A       130.95.100.4
  817.  
  818.    ucc             IN      NS      marlin.gu.uwa.edu.au.
  819.                    IN      NS      mackerel.gu.uwa.edu.au.
  820.  
  821.    Marlin is also given an IP in our domain as a convenience.  If they
  822.    blow up their name serving there is less that can go wrong because
  823.    people can still see that machine which is a start.  You could place
  824.    "marlin.ucc" in the first column and leave the machine totally
  825.    inside the ucc domain as well.
  826.  
  827.    The second NS line is because mackerel will be acting as secondary name
  828.    server for the ucc.gu domain.  Do not include this line if you are not
  829.    authorative for the information included in the sub-domain.
  830.  
  831.  
  832. ------------------------------
  833.  
  834. Date: Wed Mar  1 11:45:00 EST 1995
  835. Subject: Q4.14 - DNS instead of NIS on a Sun OS 4.1.x system
  836.  
  837. Q: I would appreciate any comments on whether running bind 4.9.x will 
  838.    enable sendmail, ftp, telnet and other TCP/IP services to bypass
  839.    NIS and connect directly to named.
  840.  
  841. A: How to do this is documented quite well in the comp.sys.sun.admin FAQ in
  842.    questions one and two.  You can get them from:
  843.  
  844.       ftp://thor.ece.uc.edu/pub/sun-faq/FAQs/sun-faq.general 
  845.       http://www.cis.ohio-state.edu/hypertext/faq/usenet/comp-sys-sun-faq
  846.  
  847.    as well as from rtfm.mit.edu in the usual place, etc.
  848.  
  849.  
  850. ------------------------------
  851.  
  852. Date: Sun May  5 23:10:41 EDT 1996
  853. Subject: Q4.15 - Patches to add functionality to BIND 
  854.  
  855. There are others, but these are listed here:
  856.  
  857. Q: When using the round robin DNS and assigning 3 IPs to a host (for
  858.    example), anybody know of software or processes to guarantee that all 3
  859.    IPs are reachable?  
  860.  
  861. A: Look at
  862.  
  863.     http://www-leland.stanford.edu/~schemers/docs/lbnamed/lbnamed.html
  864.  
  865.    for precisely what you need.
  866.  
  867.  
  868. Q: Does anyone know where to find patches for BIND 4.9.3-P1 to support
  869.    the IPv6 AAAA record format?
  870.  
  871. A: The patches for 4.9.3-REL are at
  872.  
  873.        ftp://ftp.inria.fr/network/ipv6/
  874.  
  875.    These patches will apply fairly cleanly for 4.9.3-P1.
  876.  
  877.  
  878. Q: How do I turn off forwarding of information from my server ?
  879.  
  880. A: The patch for 4.9.3-REL may be found at
  881.        ftp://ftp.vix.com/pub/bind/release/4.9.3/contrib/noforward.tar.gz.
  882.  
  883.  
  884. ------------------------------
  885.  
  886. Date: Wed Sep  4 23:46:35 EDT 1996
  887. Subject: Q4.16 - How to serve multiple domains from one server
  888.  
  889. Q: How do you serve more than one domain from a single server ?
  890.  
  891. A: Most name server implementations allow information about multiple
  892.    domains to be kept on one server, and questions about those domains 
  893.    to be answered by that one server.  For instance, there are many large 
  894.    servers on the Internet that each serve information about more than 
  895.    1000 different domains.
  896.  
  897.    To be completely accurate, a server contains information about zones,
  898.    which are parts of domains that are kept as a single unit.  [Ed note:
  899.    for a definition of zones and domains, see Section 2: The Name Service
  900.    in the "Name Server Operations Guide" included with the BIND 4.9.4
  901.    distribution.]
  902.  
  903.    In the configuration of the name server, the additional zones need to be
  904.    specified.  An important consideration is whether a particular server is
  905.    primary or secondary for any specific zone--a secondary server maintains
  906.    only a copy of the zone, periodically refreshing its copy from another,
  907.    specified, server.  In BIND, to set up a server as a secondary server
  908.    for the x.y.z zone, to the configuration file /etc/named.boot add the line
  909.  
  910.       secondary   x.y.z   10.0.0.1        db.x.y.z
  911.  
  912.    where 10.0.0.1 is the IP address of the server that the zone will be
  913.    copied from, and db.x.y.z is a local filename that will contain the copy
  914.    of the zone.
  915.  
  916.  
  917. ------------------------------
  918.  
  919. Date: Mon Jan  2 13:49:43 EST 1995
  920. Subject: Q5.1 - No address for root server
  921.  
  922.  
  923. Q: I've been getting the following messages lately from bind-4.9.2..
  924.         ns_req: no address for root server
  925.  
  926. We are behind a firewall and have the following for our named.cache file -
  927.  
  928.         ; list of servers
  929.         .               99999999    IN  NS  POBOX.FOOBAR.COM.
  930.                         99999999    IN  NS  FOOHOST.FOOBAR.COM.
  931.         foobar.com.     99999999    IN  NS  pobox.foobar.com.
  932.  
  933. A:  You can't do that.  Your nameserver contacts POBOX.FOOBAR.COM, gets the
  934.     correct list of root servers from it, then tries again and fails
  935.     because of your firewall.
  936.  
  937.     You will need a 'forwarder' definition, to ensure that all requests
  938.     are forwarded to a host which can penetrate the firewall.  And
  939.     it is unwise to put phony data into 'named.cache'.
  940.  
  941. ------------------------------
  942.  
  943. Date: Sun Nov 27 23:32:41 EST 1994
  944. Subject: Q5.2 - Error - No Root Nameservers for Class XX
  945.  
  946. Q: I've received errors before about "No root nameservers for class XX"
  947.    but they've been because of network connectivity problems.
  948.    I believe that Class 1 is Internet Class data.
  949.    And I think I heard someone say that Class 4 is Hesiod??
  950.    Does anyone know what the various Class numbers are?
  951.  
  952. A:  From RFC 1700:
  953.  
  954.        DOMAIN NAME SYSTEM PARAMETERS
  955.        The Internet Domain Naming System (DOMAIN) includes several
  956.        parameters.  These are documented in [RFC1034] and [RFC1035].  The
  957.        CLASS parameter is listed here.  The per CLASS parameters are 
  958.        defined in separate RFCs as indicated.
  959.  
  960.        Domain System Parameters:
  961.  
  962.        Decimal   Name                                          References
  963.        --------  ----                                          ----------
  964.               0  Reserved                                           [PM1]
  965.               1  Internet (IN)                              [RFC1034,PM1]
  966.               2  Unassigned                                         [PM1]
  967.               3  Chaos (CH)                                         [PM1]
  968.               4  Hesoid (HS)                                       [PM1]
  969.         5-65534  Unassigned                                         [PM1]
  970.           65535  Reserved                                           [PM1]
  971.  
  972. DNS information for RFC 1700 was taken from
  973.  
  974.         ftp://ftp.isi.edu/in-notes/iana/assignments/dns-parameters
  975.  
  976.    Hesiod is class 4, and there are no official root nameservers for class 
  977.    4, so you can safely declare yourself one if you like.  You might want 
  978.    to put up a packet filter so that no one outside your network is capable 
  979.    of making Hesiod queries of your machines, if you define yourself to be 
  980.    a root nameserver for class 4.
  981.  
  982. ------------------------------
  983.  
  984. Date: Sun Nov 27 23:32:41 EST 1994
  985. Subject: Q5.3 - Bind 4.9.x and MX querying?
  986.  
  987.  
  988. Q: If I query a 4.9.x DNS server for MX records, a list of the MX records 
  989.    as well as a list of the authorative nameservers is returned.  Why ?
  990.  
  991. A: Bind 4.9.2 returns the list of nameserver that are authorative
  992.    for a domain in the response packet, along with their IP
  993.    addresses in the additional section.
  994.  
  995. ------------------------------
  996.  
  997. Date: Sat Sep  9 00:36:01 EDT 1995
  998. Subject: Q5.4 - Some root nameservers don't know localhost
  999.  
  1000. Q: Do I need to define an A record for localhost ?
  1001.  
  1002.    Where is the A record for 127.0.0.1 defined?  I see where
  1003.    the PTR record is defined pointing to localhost, but can't find
  1004.    where the A record is.  And is the A record supposed to be
  1005.    localhost.MY_DOMAIN or just localhost ?
  1006.  
  1007. A: Somewhere deep in the BOG (BIND Operations Guide) that came with
  1008.    4.9.3 (section 5.4.3), it says that you define this yourself 
  1009.    (if need be) in the same zone files as your "real" IP addresses 
  1010.    for your domain.  Quoting the BOG:
  1011.  
  1012.                                  ... As  implied by this PTR
  1013.          record, there should be a  ``localhost.my.dom.ain''
  1014.          A  record  (with address 127.0.0.1) in every domain
  1015.          that contains hosts.  ``localhost.'' will lose  its
  1016.          trailing dot when 1.0.0.127.in-addr.arpa is queried
  1017.          for;...
  1018.  
  1019.    The sample files in the BIND distribution show you what needs to be
  1020.    done (see the BOG).
  1021.  
  1022.    Some HP boxen (especially those running HP OpenView) will also need
  1023.    "loopback" defined with this IP address.   You may set it as a CNAME 
  1024.    record pointing to the "localhost." record.
  1025.  
  1026. ------------------------------
  1027.  
  1028. Date: Sun Nov 27 23:32:41 EST 1994
  1029. Subject: Q5.5 - MX records and CNAMES and separate A records for MX targets
  1030.  
  1031. Q: The O'Reilly "DNS and Bind" book warns against using non-canonical
  1032.    names in MX records, however, this warning is given in the context
  1033.    of mail hubs that MX to each other for backup purposes.  I don't see
  1034.    how this applies to mail spokes.  RFC 974 has a similar warning, but
  1035.    I can not see where it specifically prohibits using an alias in an
  1036.    MX record.
  1037.  
  1038. A: Without the restrictions in the RFC, a MTA must request the A records 
  1039.    for every MX listed to determine if it is in the MX list then reduce
  1040.    the list. This introduces many more lookups than would other wise be
  1041.    required. If you are behind a 1200 bps link YOU DON'T WANT TO DO
  1042.    THIS. The addresses associated with CNAMES are not passed as
  1043.    additional data so you will force additional traffic to result even
  1044.    if you are running a caching server locally.
  1045.  
  1046.    There is also the problem of how does the MTA find all of it's
  1047.    IP addresses. This is not straight forward. You have to be able
  1048.    to do this is you allow CNAMEs (or extra A's) as MX targets.
  1049.  
  1050.    The letter of the law is that an MX record should point to an A record.
  1051.        
  1052.    There is no "real" reason to use CNAMEs for MX targets or separate
  1053.    As for nameservers any more. CNAMEs for services other than mail
  1054.    should be used because there is no specified method for locating the
  1055.    desired server yet.
  1056.  
  1057.    People don't care what the names of MX targets are.  They're
  1058.    invisible to the process anyway.  If you have mail for "mary"
  1059.    redirected to "sue" is totally irrelevant.  Having CNAMEs as the
  1060.    targets of MX's just needlessly complicates things, and is more work
  1061.    for the resolver.
  1062.  
  1063.    Having separate A's for nameservers like "ns.your.domain" is
  1064.    pointless too, since again nobody cares what the name of your
  1065.    nameserver is, since that too is invisible to the process.  If you
  1066.    move your nameserver from "mary.your.domain" to "sue.your.domain"
  1067.    nobody need care except you and your parent domain administrator
  1068.    (and the InterNIC).  Even less so for mail servers, since only you
  1069.    are affected.
  1070.  
  1071. Q: Given the example - 
  1072.  
  1073.      hello in cname     realname
  1074.      mailx in mx        0 hello
  1075.  
  1076.    Now, while reading the operating manual of bind it clearly states
  1077.    that this is *not* valid.  These two statements clearly contradict
  1078.    each other.  Is there some later rfc than 974 that overrides what is
  1079.    said in there with respect to MX and CNAMEs?  Anyone have the
  1080.    reference handy?
  1081.  
  1082. A: This isn't what the BOG says at all.  See below.  You can have a CNAME 
  1083.    that points to some other RR type; in fact, all CNAMEs have to point
  1084.    to other names (Canonical ones, hence the C in CNAME).  What you
  1085.    can't have is an MX that points to a CNAME.  MX RR's that point to
  1086.    names which have only CNAME RR's will not work in many cases, and
  1087.    RFC 974 intimates that it's a bad idea:
  1088.  
  1089.       Note that the algorithm to delete irrelevant RRs breaks if LOCAL has
  1090.       a alias and the alias is listed in the MX records for REMOTE.  (E.g.
  1091.       REMOTE has an MX of ALIAS, where ALIAS has a CNAME of LOCAL).  This
  1092.       can be avoided if aliases are never used in the data section of MX
  1093.       RRs.
  1094.  
  1095.    Here's the relevant BOG snippet:
  1096.  
  1097.          aliases    {ttl}   addr-class   CNAME   Canonical name
  1098.          ucbmonet           IN           CNAME   monet
  1099.  
  1100.          The  Canonical  Name resource record, CNAME, speci-
  1101.          fies an alias or  nickname  for  the  official,  or
  1102.          canonical,  host  name.   This record should be the
  1103.          only one associated with the alias name.  All other
  1104.          resource  records  should  be associated  with the
  1105.          canonical  name,  not  with  the   nickname.  Any
  1106.          resource  records  that  include  a  domain name as
  1107.          their value (e.g., NS or MX) must list the  canoni-
  1108.          cal name, not the nickname.
  1109.  
  1110. ------------------------------
  1111.  
  1112. Date: Wed Mar  1 11:14:10 EST 1995
  1113. Subject: Q5.6 - NS is a CNAME
  1114.  
  1115. Q: Can I do this ?  Is it legal ?
  1116.  
  1117.    @                       SOA     (.........)
  1118.                            NS      ns.host.this.domain.
  1119.                            NS      second.host.another.domain.
  1120.    ns                      CNAME   third
  1121.    third           IN      A       xxx.xxx.xxx.xxx
  1122.  
  1123.  
  1124. A: No.  Only one RR type is allowed to refer, in its data field, to a
  1125.    CNAME, and that's CNAME itself.  So CNAMEs can refer to CNAMEs but 
  1126.    NSs and MXs cannot.
  1127.  
  1128.    BIND 4.9.3 (Beta11 and later) explicitly syslogs this case rather than 
  1129.    simply failing as pre-4.9 servers did.  Here's a current example:
  1130.  
  1131.     Dec  7 00:52:18 gw named[17561]: \
  1132.                    "foobar.com IN NS" points to a CNAME (foobar.foobar.com)
  1133.  
  1134.    Here is the reason why:
  1135.  
  1136.       Nameservers are not required to include CNAME records in the
  1137.       Additional Info section returned after a query.  It's partly an
  1138.       implementation decision and partly a part of the spec.  The
  1139.       algorithm described in RFC 1034 (pp24,25; info also in RFC 1035,
  1140.       section 3.3.11, p 18) says 'Put whatever addresses are available
  1141.       into the additional section, using glue RRs [if necessary]'.
  1142.       Since NS records are speced to contain only primary names of
  1143.       hosts, not CNAMEs, then there's no reason for algorithm to
  1144.       mention them. If, on the other hand, it's decided to allow CNAMEs
  1145.       in NS records (and indeed in other records) then there's no
  1146.       reason that CNAME records might not be included along with A
  1147.       records.  The Additional Info section is intended for any
  1148.       information that might be useful but which isn't strictly the
  1149.       answer to the DNS query processed.  It's an implementation
  1150.       decision in as much as some servers used to follow CNAMEs in 
  1151.       NS references.
  1152.  
  1153.  
  1154. ------------------------------
  1155.  
  1156. Date: Fri Dec  2 16:17:31 EST 1994
  1157. Subject: Q5.7 - Nameserver forgets own A record
  1158.  
  1159.  
  1160. Q: Lately, I've been having trouble with named 4.9.2 and 4.9.3.  
  1161.    Periodically, the nameserver will seem to "forget" its own A record,
  1162.    although the other information stays intact.  One theory I had was
  1163.    that somehow a site that the nameserver was secondary for was
  1164.    "corrupting" the A record somehow.
  1165.  
  1166. A: This is invariably due to not removing ALL of the cached zones
  1167.    when you moved to 4.9.X. Remove ALL cached zones and restart
  1168.    your nameservers.
  1169.  
  1170.    You get "ignoreds" because the primaries for the relevant zones are
  1171.    running old versions of BIND which pass out more glue than is
  1172.    required. named-xfer trims off this extra glue.
  1173.  
  1174. ------------------------------
  1175.  
  1176. Date: Sun Dec  4 22:21:22 EST 1994
  1177. Subject: Q5.8 - General problems (core dumps !)
  1178.  
  1179. Q: I am running bind 4.9.3b9p1 on a DEC alpha OSF/1 V3.0 and have had it 
  1180.    core dump while in debug mode.  The last lines printed to named.run 
  1181.    were [...]
  1182.  
  1183. A: Paul Vixie says:
  1184.  
  1185.    I'm always interested in hearing about cases where BIND dumps core.
  1186.    However, I need a stack trace.   Compile with -g and not -O (unless
  1187.    you are using gcc and know what you are doing) and then when it
  1188.    dumps core, get into dbx or gdb using the executable and the core
  1189.    file and use "bt" to get a stack trace.   Send it to me
  1190.    <paul@vix.com> along with specific circumstances leading to or
  1191.    surrounding the crash (test data, tail of the debug log, tail of the
  1192.    syslog... whatever matters) and ideally you should save your core
  1193.    dump for a day or so in case I have questions you can answer via
  1194.    gdb/dbx.
  1195.  
  1196. ------------------------------
  1197.  
  1198. Date: Mon Jan  2 14:19:22 EST 1995
  1199. Subject: Q5.9 - malloc and DECstations
  1200.  
  1201. We have replaced malloc on our DECstations with a malloc that is more 
  1202. compact in memory usage, and this helped the operation of bind a lot.
  1203. The source is now available for anonymous ftp from
  1204.  
  1205.    ftp://ftp.cs.wisc.edu/pub/misc/malloc.tar.gz
  1206.  
  1207.  
  1208. ------------------------------
  1209.  
  1210. Date: Sun May  5 23:46:32 EDT 1996
  1211. Subject: Q5.10 - Can't resolve names without a "."
  1212.  
  1213. Q: I am trying to debug a problem.  I can not resolve fully qualified
  1214.    domain names unless I put a . at the end of the name.  Any thoughts?
  1215.  
  1216. A: (Answer written by Mark Andrews) You are not using a RFC1535 aware
  1217.    resolver. Depending upon the age of your resolver you could try 
  1218.    adding a search directive to resolv.conf.
  1219.  
  1220.     e.g.
  1221.     domain <domain>
  1222.     search <domain> [<domain2> ...]
  1223.  
  1224.    If that doesn't work you can configure you server to serve the parent
  1225.    and grandparent domains as this is the default search list.
  1226.  
  1227.    "domain langley.af.mil" has an implicit "search langley.af.mil af.mil 
  1228.    mil" in the old resolvers, and you are timing out trying to resolve 
  1229.    the address with one of these domains tacked on.
  1230.  
  1231.    When resolving internic.net the following will be tried in order.
  1232.         internic.net.langley.af.mil
  1233.         internic.net.af.mil
  1234.         internic.net.mil
  1235.         internic.net.
  1236.     
  1237.    RFC1535 aware resolvers try qualified address first.
  1238.  
  1239.         internic.net.
  1240.         internic.net.langley.af.mil
  1241.         internic.net.af.mil
  1242.         internic.net.mil
  1243.  
  1244.    RFC1535 documents the problems associated with the old search algorithim,
  1245.    including security issues, and how to alleviate some of the problems.
  1246.  
  1247.  
  1248. ------------------------------
  1249.  
  1250. Date: Sun May  5 23:46:32 EDT 1996
  1251. Subject: Q5.11 - Err/TO errors being reported
  1252.  
  1253.  
  1254. Q: I am running the latest verison of named (4.9.3 + P1).   Why are we 
  1255.    seeing messages like:
  1256.  
  1257.      Apr  2 20:41:58 nameserver named[25846]: Err/TO getting serial# for 
  1258.      "foobar.domain1.com"
  1259.      Apr  2 20:41:59 nameserver named[25846]: Err/TO getting serial# for 
  1260.      "foobar.domain2.com"
  1261.  
  1262. A: These generally indicate that there is one of the following problems:
  1263.  
  1264.      1. A network problem between you and the primary,
  1265.      2. A bad IP address in named.boot,
  1266.      3. The primary is Lame for the zone.
  1267.  
  1268.    An external check to see if you can retrieve the SOA is the best way to
  1269.    work out which it is. 
  1270.  
  1271. ------------------------------
  1272.  
  1273. Date: Thu Jul  4 23:20:20 EDT 1996
  1274. Subject: Q5.12 - Why does swapping kill BIND ?
  1275.  
  1276.  
  1277. Q: I've been diagnosing a problem with BIND 4.9.x (where x is usually 3BETA9 
  1278.    or 3REL) for several months now.  I finally tracked it down to swap space
  1279.    utilization on the unix boxes.
  1280.  
  1281.    This happens under (at least) under Linux 1.2.9 & 1.2.13, SunOS 4.1.3U1, 
  1282.    4.1.1, and Solaris 2.5.  The symptom is that if these machines get into 
  1283.    swap at all bind quits resolving most, if not all queries.  Mind you that 
  1284.    these machines are not "swapping hard", but rather we're talking about a 
  1285.    several hundred K TEMPORARY deficiency.   I have noticed while digging 
  1286.    through various archives that there is some referral to "bind thrashing
  1287.    itself to death".   Is this what is happening ?
  1288.  
  1289. A: Yes it is. Bind can't tolerate having even a few pages swapped out.  
  1290.    The time required to send responses climbs to several seconds/request,
  1291.    and the request queue fills and overflows.
  1292.  
  1293.    It's possible to shrink memory consumption a lot by undefining STATS
  1294.    and XSTATS, and recompiling.  You could nuke DEBUG too, which will
  1295.    cut the code size down some, but probably not the data size.  If that
  1296.    doesn't do the job then it sounds like you'll need to move DNS onto a
  1297.    separate box.
  1298.  
  1299.    BIND tends to touch all of its resident pages all of the time with
  1300.    normal activity... if you look at the RSS verses the total process
  1301.    size, you will always see the RSS within, usually, 90% of the total
  1302.    size of the process.  This means that *any* paging of named-owned
  1303.    pages will stall named.  Thus, a machine running a heavily accessed
  1304.    named process cannot afford to swap *at all*.
  1305.  
  1306.    (Paul Vixie continues on this subject):
  1307.    I plan to try to get BIND to exhibit slightly better locality of
  1308.    reference in some future release.  Of course, I can only do this if
  1309.    the query names also exhibit some kind of hot spots.  If someone
  1310.    queries all your names often, BIND will have to touch all of its VM
  1311.    pool that often.  (Right now, BIND touches everything pretty often
  1312.    even if you're just hammering on some hot spots -- that's the part
  1313.    I'd like to fix.  Malloc isn't cooperating.)
  1314.  
  1315.  
  1316. ------------------------------
  1317.  
  1318. Date: Thu Jul  4 23:29:40 EDT 1996
  1319. Subject: Q6 - Acknowledgements
  1320.  
  1321. Listed in e-mail address alphabetical order, the following people have 
  1322. contributed to this FAQ:
  1323.  
  1324. Benoit.Grange@inria.fr (Benoit.Grange)
  1325. D.T.Shield@csc.liv.ac.uk (Dave Shield)
  1326. Todd.Aven@BankersTrust.Com
  1327. adam@comptech.demon.co.uk (Adam Goodfellow)
  1328. andras@is.co.za (Andras Salamon)
  1329. barmar@nic.near.net (Barry Margolin)
  1330. barr@pop.psu.edu (David Barr)
  1331. bj@herbison.com (B.J. Herbison)
  1332. bje@cbr.fidonet.org (Ben Elliston)
  1333. brad@birch.ims.disa.mil (Brad Knowles)
  1334. ckd@kei.com (Christopher Davis)
  1335. cdp2582@hertz.njit.edu (Chris Peckham)
  1336. cricket@hp.com (Cricket Liu)
  1337. cudep@csv.warwick.ac.uk (Ian 'Vato' Dickinson [ID17])
  1338. dillon@best.com (Matthew Dillon)
  1339. dparter@cs.wisc.edu (David Parter)
  1340. e07@nikhef.nl (Eric Wassenaar)
  1341. fitz@think.com (Tom Fitzgerald)
  1342. fwp@CC.MsState.Edu (Frank Peters)
  1343. gah@cco.caltech.edu (Glen A. Herrmannsfeldt) 
  1344. glenn@popco.com (Glenn Fleishman)
  1345. harvey@indyvax.iupui.edu (James Harvey)
  1346. hubert@cac.washington.edu (Steve Hubert)
  1347. ivanl@pacific.net.sg (Ivan Leong)
  1348. jmalcolm@uunet.uu.net (Joseph Malcolm)
  1349. jhawk@panix.com (John Hawkinson)
  1350. kevin@cfc.com (Kevin Darcy)
  1351. lamont@abstractsoft.com (Sean T. Lamont)
  1352. lavondes@tidtest.total.fr (Michel Lavondes)
  1353. mark@ucsalf.ac.uk (Mark Powell)
  1354. marka@syd.dms.CSIRO.AU (Mark Andrews)
  1355. mathias@unicorn.swi.com.sg (Mathias Koerber)
  1356. mjo@iao.ford.com (Mike O'Connor)
  1357. nick@flapjack.ieunet.ie (Nick Hilliard)
  1358. oppedahl@popserver.panix.com (Carl Oppedahl)
  1359. patrick@oes.amdahl.com (Patrick J. Horgan)
  1360. paul@software.com (Paul Wren)
  1361. pb@fasterix.frmug.fr.net (Pierre Beyssac)
  1362. ph10@cus.cam.ac.uk (Philip Hazel)
  1363. phil@netpart.com (Phil Trubey)
  1364. rv@seins.Informatik.Uni-Dortmund.DE (Ruediger Volk)
  1365. shields@tembel.org (Michael Shields)
  1366. tanner@george.arc.nasa.gov (Rob Tanner)
  1367. vixie@vix.com (Paul A Vixie)
  1368. wag@swl.msd.ray.com (William Gianopoulos {84718})
  1369. whg@inel.gov (Bill Gray)
  1370. wolf@pasteur.fr (Christophe Wolfhugel)
  1371.  
  1372. Thank you !
  1373.  
  1374.