Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Nov 1999 13:34:14 -0500
From:      John <papalia@UDel.Edu>
To:        Michael Kennett <mike@laurasia.com.au>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: DNS (was: DNS & Virtual hosting)
Message-ID:  <4.1.19991112131338.00955680@mail.udel.edu>
In-Reply-To: <199911120623.OAA01557@laurasia.com.au>
References:  <4.1.19991111235710.0094b460@mail.udel.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Mike,

Well, the good news is that the suggestions you made seems to work quite
(almost) flawlessly.  That was probably the easiest ("basic") setup I've
done yet :)  I made up my (currently) phoney domain per your instructions,
and found it with nslookup no problem.  As I indicated though, this is
merely a stepping stone for stuff I plan to (need to) get done in the next
couple of months, so, here's a few more questions - if these branch outside
of the realm of named, please let me know :)

(funny... as I started asking the questions, and started pasting in cuts
from my files, I found a lot of my errors =) ) 

1) I'll be registering 3 domain names.  As things grow, they'll be used.
If my domains are foo1.bar, foo2.bar, foo3.bar, and I have them all point
to my dns (let's say my machine's # is 1.1.1.1), and assuming all http
access is off one machine, how do I get the machine to recognize where to
go for a request between each of the domains?  I'm assuming i have to set
up zones for them, but how do I tell it where to find the appropriate
files?  I'm not sure if this is this outside of the named question?

2) Based upon the upper question, I also need to set up an smtp server.
I'm assuming I can just add a record to the named files for "mail.foo1.bar"
and "mail.foo2.bar" and "mail.foo3.bar".  But again, how is this handled if
all three are on the same machine?

Again, I know these aren't well phrased questions, but I hope you can still
help.

Thanks again!!!
--John Papalia


>Hi John,
>
>[Previous emails trimmed down -- I went overboard on this one!]
>
>> I wasn't sure about the virtual hosting part... I've been looking at
>> playing with DNS for a while, but all the warnings in the conf files make
>> it a bit daunting.  But, what can I learn without trying :)  the file in
>> /usr/share/doc/smm/10.named - how/with what is that read?  It seems
>> readable in lynx, but quite a mess.
>
>The file to read is `paper.ascii.gz'. This is a compressed (gzip) ascii
>documented that has been formatted with nroff (?). I've always read these
>documents straight from the command line with:
>
>  $  zmore paper.ascii.gz
>
>(I think zmore is part of the stock FreeBSD install. If not, do
>
>  $  gunzip -c paper.ascii.gz | more
>
>)
>
>The mess in the file are some embedded control codes for highlighting text,
>etc...  If you want to print the document out as straight ascii, you'll have
>to filter out these codes. Try:
>
>  $  gunzip -c paper.ascii.gz | col -b
>
>> 
>> >With DNS, there need to be (at least) two machines that contain records for
>> >the foo.bar domain. Both of these machines should be available *all* the
>> >time (24 hours each day). You'd also need to find a friend/associate who is
>> >prepared to act as a `secondary' DNS server for your domain name.
>> 
>> I think I can find someone to ask to do that (hopefully).
>> 
>> >Finally, once you have a DNS server setup, the name will propagate out to
>> >the world. This propagation is controlled by the `expiry' time parameter
>> >in the DNS records -- if you set the expiry time to 4 weeks, you can't
>> >change (radically!) your setup the next day. Every 4 weeks the
non-authorit-
>> >ative DNS servers will flush out (expire) the foo.bar domain records, and
>> >refetch them (when demanded) from an authoritative source.
>> 
>> Now, this is the kinda stuff that I need to learn before putting all my
>> eggs in my own DNS basket.  For example, the name propagates, but how?
>> This kinda makes it sounds like you don't even really have to go thru
>> NetworkSolutions or the other registration services to actually register?
>> That just kinda sounds odd (then again, I'm currently in the infancy of
>> knowledge on this :) ) Other than reading the entire O'Reilly book on Bind
>> and DNS, is there a how-to on configuring named?  I couldn't locate one on
>> freebsd, freebsddiary, or freebsdrocks.
>
>Network Solutions, and other NIC's (e.g. aunic) in the world provide the
>root of the DNS system. Let's say that your domain name is foo.bar, and that
>you have the machines `www' and `gateway' with the IP addresses below:
>
>gateway  192.168.27.1       (acting as the DNS server for foo.bar)
>www      192.168.27.2
>
>So what happens when someone looks up a web page on www.foo.bar???
>Clearly, the name `www.foo.bar' has to get converted into the IP Address
>192.168.27.2. (I'll go thru' this in all the gory detail for a Unix system)
>
>1.  The application sends a request to the resolver (3) (also resolv.conf
(5)).
>2.  The resolver library routines look at the file
>
>      /etc/resolv.conf
>
>    to find out where *this* machine should look up names.
>3.  Assuming that the /etc/resolv.conf has a `nameserver' command in it,
>    the resolver forwards the name lookup to the nameserver.
>4.  The nameserver checks its cache to see if anyone has requested www.foo.bar
>    before (and that it hasn't expired). If it has an up-to-date mapping of
>    the name, it sends back the IP address 192.168.27.2.
>
>    Otherwise (www.foo.bar has not been requested before):
>
>5. The nameserver sends off a query to its `owner' (called a forwarder in
>   the named.conf file).
>
>   This nameserver acts in the same way as step 4 (checks if www.foo.bar
>   has been requested before, etc....)
>
>   Finally, the request for the www.foo.bar lookup will filter up to the
>   top level registration service (e.g. Network Solutions) who owns the
>   `bar' domain. This top level service will then lookup the `foo'
>   component, which will point to your domain name server.
>
>6. The request is forwarded to your domain name server. It looks up the
>   name `www', finds a match, and sends back the IP Address 192.168.27.2
>
>7. The IP Address (192.168.27.2) filters back to application that requested
>   the lookup. Along the way, the name mapping www.foo.bar -> 192.168.27.2
>   is stored in a variety of caches so that the next request can be done
>   more efficiently.
>
>**** You must register with Network Solutions or another NIC!!!
>   -- They are the `root' of the domain name hierarchy.
>
>
>Setting Up Your DNS Configuration
>---------------------------------
>
>The main configuration file is /etc/namedb/named.conf. From memory, the
>default FreeBSD config file is well commented. You'll need to add in
>a section on the `forwarders' (who your DNS server should query when it
>doesn't know the answer).
>
>Also, for each domain name that your DNS server is going to be authoritative
>for, you'll need different `zone' entries. For example, for the foo.bar
>domain, you'd have:
>
>  zone "foo.bar" {
>    type master;
>    file "foo.bar.domain";
>  };
>
>This tells your DNS server that whenever it gets a request for the foo.bar
>it should look for the answer in the foo.bar.domain file.
>
>The foo.bar.domain file should look like (for a basic example):
>
>  ; Start-Of-Authority record
>  @    IN    SOA    gateway.foo.bar.  postmaster.foo.bar. (
>                    199911121        ; Serial number (Day+Revision)
>                    3600             ; Refresh (seconds)
>                    900              ; Retry
>                    86400            ; Expiry (seconds -> 1 day)
>                    3600 )           ; Minimum
>  ; Nameservers for the 'foo.bar' domain
>       IN   NS gateway
>       IN   NS <your secondary domain name server for foo.bar>
>
>  ; Machines in the foo.bar domain
>  gateway  IN  A    192.168.27.1
>  www      IN  A    192.168.27.2
>
>
>Things get more complicated when you start adding in mail servers (MX
>records) etc... But really, that is all there is to it! If you add a
>new machine into the foo.bar domain, you just add in another Address
>record (A) to the DNS zone file:
>
>  new      IN  A    192.168.27.3
>
>etc....
>
>
>NOTE: the 192.168.*.* IP addresses are private - they cannot be used on the
>internet as is (so don't copy this example straight off!!)
>
>
>Some Hints:
>-----------
>
>1. You can set up a DNS server on your machine *without* registering a
>   domain name, or even creating any zone files. To do this:
>
>     a)   Get the IP address of the University/Dept. DNS server.
>     b)   Set up your DNS server to `forward' requests to the Uni DNS server.
>
>          In your /etc/namedb/named.conf (5) file, you'll add an entry like:
>
>           options {
>             forwarders {
>               <uni.dns.server.ip.address>
>             };
>           };
>
>     c)   Set up your resolv.conf (5) file to point to the localhost
>          (address 127.0.0.1) with the `nameserver' directive.
>     d)   Send the DNS server a SIGHUP (kill -HUP <DNS process ID>) to
>          inform it that the configuration has changed.
>
>   To test that this is working, use the nslookup (8) command.
>
>2. Create a `play' domainname (for a while, I had `laurasia.home'. You
>   could use `foo.bar' :-)
>     a)   Create the zone file (e.g. as above)
>     b)   Add the `zone' directive to /etc/namedb/named.conf (5) as shown
>          above.
>     c)   Send the DNS server a SIGHUP (kill -HUP <DNS process ID>) to
>          inform it that the configuration has changed.
>
>   Using this play domain, test that your DNS server is serving the new
>   names with nslookup (8).
>
>   Go to another machine, and test if it can recognize the play domain.
>   You can do this by using nslookup in the interactive mode, and using
>   the `server' command (look at the manpage).
>
>
>If you've got this far, register a domain name with Network Solutions
>et. al., and start serving up some awesome FreeBSD pages!
>
>I'm sure there are lots of small details that I've left out, and that
>you'll tripover as you begin to play with the setup. Feel free
>to ask the list (freebsd-questions) and we'll try to sort them out.
>
>Good Luck
>
>Mike Kennett
>(mike@laurasia.com.au)



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4.1.19991112131338.00955680>