I think I have a few things to bring up concerning
sshd, tinydns, resolv.conf, and nsswitch.conf

  I'll try to keep it concise :-)
    But there are things that cause issues.
      Things that could be covered in the docs.

  Does anybody's dns work as well as they think it should?
A quick way to check is to login to the LEAF box and run
this command on it:

         netstat -a

  Any pause at all is an indication that your dns is not
resolving as it should.

So here we go:
================
  I rebooted my LEAF box 17 days ago, and haven't saved any
changes since January.

  Today, while trying to ssh into my LEAF box from my internal 
NAT'd lan, I got the dreaded 1-2 minute delays before logging in.  
Why?  Nothing had changed since January, as I mentioned.

  Was tinydns stuck?  Full?  Crashed?  How about dnscache?
None of the above.  I restarted both and got the same problem.
I rebooted because I needed coffee, and I felt st00pid.  That
made no difference.  It wasn't a lack of memory or ramdisk space.

  I'll get to the point.  I think I must have made a change
that I didn't back up.  It's possible that I haven't ssh'd
into the LEAF in 17 days, also.  Making the correct changes
in my /etc fixed things.


Here are the problems I want to address:
=========================================

   1)   When people run sshd, it tries to do reverse name lookups
        on the ip address of the client.  JN mentions this in his 
        sshd faq.

   2)   His faq suggests adding the private lan IP that's failing
        lookups into /etc/hosts.  That caused me more confusion.

   3)   I run tinydns and dnscache.  Those need to be able to handle
        the sshd resolutions correctly.  They didn't.  Both resolv.conf
        and the tinydns-private/root/data files needed to be adjusted.

   4)   But the tinydns docs don't mention how to set /etc/resolv.conf 
        on the LEAF box.  I wish they would.  It's possible that someone
        will run tinydns by itself (if they lack ram for dnscache).  In
        that case, they need to know how to set up resolv.conf.  To reach 
        only tinydns, the resolv.conf would be this:
                  nameserver   127.0.0.1
                  search somedomain.net

   5)   The dnscache docs also fail to explain setting up resolv.conf.
        It's not clear whether the nameserver should be 127.0.0.1 or 
        192.168.1.254.  The confusion arises, because the IP's that
        tinydns and dnscache uses are reversed from those used in the djbdns 
        FAQs.  Once the admin realizes that the dnscache runs on 192.168.1.254,
        then they realize that resolv.conf would look like this:
                  nameserver   192.168.1.254
                  search somedomain.net
        
   6)   JN's tinydns screenshot that shows what /etc/tinydns-private/root/data 
        looks like,
            http://leaf.sourceforge.net/devel/jnilo/tinydns3.html#AEN454
        has problems.  I'm not sure if it's meant to be a working example, but 
        I don't think it works.  Here's why:

           *  It only diagrams A (address, alias) records, not both 
              A and PTR records for each LAN comp.  The LAN comps 
              need to be listed as:
                    =xena.schalit.net:10.2.2.2
                    =luke.schalit.net:10.2.2.3
              or similar.  A computer listed in a DNS zone needs both A 
              and PTR records.

           *  There's no listing for localhost in tinydns's data.
                      =localhost:127.0.0.1
              That's also not shown in any djbdns docs.  It's possible this
              is unnecessary, but the result is this:  If someone uses this
                       nameserver  127.0.0.1
              in resolv.conf then lookups come directly from tinydns, bypassing
              dnscache, and in that scenario, localhost doesn't resolve.  It
              ends up coming out of /etc/hosts.  Prove it to yourself using
                       netstat -a 
              as I suggested previously.  The 30 sec delay is the proof as far
              as I've deduced.



   7)   It's not necessary to have localhost listed in tinydns if you use dnscache, 
        though, because dnscache handles the localhost A and PTR lookups internally.  
        So by using dnscache,  we coverup this localhost problem, but at least it 
works.  
        I'm going to take this up on the djbdns mailing list.
    
   8)   /etc/hosts gets in the way if you run dnscache and tinydns.  It covers
        up a misconfigured dns.  I see no need for it besides the 
                     127.0.0.1 localhost
        entry that's historical and perhaps an entry for your static external IP name, 
        if any, i.e.:
                     63.194.213.179  adsl-63-194-213-179.sfnc21.pacbell.net


Well that's about it.  Adding = records in the data file and fixing
/etc/resolv.conf to point to the internal nic ip that dnscache is bound
to were the fixes.

Sorry about the long post.  I know those can be a pain sometimes.
Matthew

_______________________________________________
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel

Reply via email to