Date: Sun, 14 Nov 1999 23:15:26 -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.19991114230718.0097c8f0@mail.udel.edu> In-Reply-To: <199911130306.LAA18644@laurasia.com.au> References: <4.1.19991112131338.00955680@mail.udel.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
Mike,
My "flawless" installation of named seems to have some bugs, but I think
they're "user error"... upon bootup, I get the following messages:
merlin# Nov 14 23:08:42 merlin named[394]: reloading nameserver
Nov 14 23:08:42 merlin named[394]: /etc/namedb/named.conf:64: syntax error
near zo
ne
Nov 14 23:08:42 merlin named[394]: /etc/namedb/named.conf:97: cannot
redefine zone
'75.175.128.in-addr.arpa' class 1
Nov 14 23:08:42 merlin named[394]: /etc/namedb/named.conf:107: cannot
redefine zon
e '75.175.128.in-addr.arpa' class 1
Nov 14 23:08:42 merlin named[394]: Ready to answer queries.Nov: No match.
Seems easy enough to trackdown, rite? Well, this is where the text is
tripping up:
The syntax error near line 64:
//};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "s/named.localhost.rev";
};
I don't see a syntax error?
As for the "can't redefine zones", here are examples of my zones. Are
these allowed: Please recall that I'm planning on setting up 3 domains on
a single IP. In the examples, taking 1.2.3.4 to be my IP and 192.168.1.*
to be my internal subnet. Given that there are 3 domains, are the 2nd and
third zones for reverse IP's needed, or is there something to do inside the
single reverse to make it happen
zone "foobar1.com" {
type master;
file "foobar1.com";
};
zone "3.2.1.in-addr.arpa" {
type master;
file "foobar1.com.rev";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "internal.rev";
};
zone "foobar2.com" {
type master;
file "foobar2.com";
};
zone "3.2.1.in-addr.arpa" {
type master;
file "foobar2.com.rev";
};
zone "foobar3.com" {
type master;
file "foobar3.com";
};
zone "3.2.1.in-addr.arpa" {
type master;
file "foobar3.com.rev";
};
Thanks again!!!
--John
>> 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
>
>Thats great!
>
>> 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?
>
>You'll have to set up three different zone files. The /etc/namedb/named.conf
>file is the `anchor' for the named configuration, and in this file you'd put
>lines like:
>
> // Zone file for the foo1.bar domain...
> zone "foo1.bar" {
> type master;
> file "foo1.bar.domain";
> };
>
> // Zone file for the foo2.bar domain...
> zone "foo2.bar" {
> type master;
> file "foo2.bar.domain";
> };
>
> // ....more zone declarations...
>
>Next, you'd create each of the fooX.bar.domain files (as outlined in a
>previous email).
>
>Assuming that your web server has the IP address 1.2.3.4, and that you want
>to have that machine visible from each of the fooX.bar domains, you'd
>create an address (A) entry in each of the zone files for that machine:
>
>[in foo1.bar.domain]
> www IN A 1.2.3.4
>
>[in foo2.bar.domain]
> www IN A 1.2.3.4
>
>[in foo3.bar.domain]
> www IN A 1.2.3.4
>
>Now, an nslookup on www.fooX.bar (X=1,2,3) should return 1.2.3.4.
>
>You had the question: ``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 think this is the `virtual hosting' question -- I'm not experienced at
> doing that, and I think it falls outside of named, but here goes....]
>
>As stated above, the name->address translation for each of the www.fooX.bar
>names will return the IP address 1.2.3.4 --- so a `naive' setup of your
>Webserver for these domains would return the **same** set of pages, which
>is most probably not what you want! I'm assuming you want the requests to
>http://www.foo1.bar/welcome.html and http://www.foo2.bar/welcome.html
>to return different pages...
>
>The Apache Web server (v1.3 and above?) supports `Virtual Hosting', which
>is the ability of a single machine to act differently according to the
>name/IP-address it is accessed as.
>
>There are two virtual hosting mechanisms (documented in the Apache
>distribution -- look at it for more details):
>
> 1. IP Address
>
> I won't discuss this one -- it won't work with the named configuration
> that I've suggested above.
>
> 2. Name
>
> Use the <VirtualHost>, and NameVirtualHost directives in your apache
> configuration files. Each virtual host can be given its own set of
> web pages with the DocumentRoot directive.
>
>According to the Apache Documentation:
>
> ``While the approach with IP-based virtual hosts works well, it is not the
> most elegant solution, ..., and it is hard to implement on some machines.
> The HTTP/1.1 contains a method for the server to identify what name it is
> being addressed as. Apache 1.1 and later support this approach ....
>
> The benefits of using the name-based virtual host support is a practically
> unlimited number of servers, ease of configuration and use, and requires
> no additional hardware or software. The main disadvantage is that the
> client must support this part of the protocol. ...''
>
>
>So, have a look at the Apache documentation, and try it out!
>
>
>> 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?
>
>Mail is handled quite differently in the DNS system. It uses the `MX' (mail
>exchange) records in the zone files. Basically, I've got entries like the
>following in my zone files:
>
>[e.g. foo1.bar.domain zone file]
>
> gateway IN A 1.1.1.1
> ; IN MX 100 mail ; (mail==gateway, no MX req'd)
> mail IN CNAME gateway ; mail is another name for gateway
>
> ; mail sent to machineX.foo1.bar is handled by the mail (gateway) machine
> machine1 IN A 1.1.1.2
> IN MX 100 mail
> machine2 IN A 1.1.1.3
> IN MX 100 mail
> machine3 IN A 1.1.1.4
> IN MX 100 mail
>
>Note: I've used the `CNAME' directive. This is a handy directive for setting
>up aliases for the name of a machine. Internally, I have `friendly' names for
>a few of my machines (sparkle, alpha, rabbit, etc...), but these are aliased
>over to the more `functional' names www, mail, ftp that provide the given
>service.
>
>You can set a single mail gateway to accept mail for a variety of hosts.
>I'm not a sendmail guru, but I've done it by editing the /etc/mail/sendmail.cw
>file, and adding in the names (as seen in the DNS) of the hosts that I accept
>mail for. You might also have to edit the /etc/sendmail.cf file to add in
>the line:
>
> Fw-o /etc/mail/sendmail.cw
>
>(From memory, this is commented out by default (?). It should be at the top
>of the /etc/sendmail.cf file)
>
>>
>> Again, I know these aren't well phrased questions, but I hope you can still
>> help.
>
>Your questions are fine! I think we've found the `virtual hosting' part of
>what you want to do -- it is done by Apache (or your web server), and not the
>DNS. Your second question (on mail) is handled by both the DNS and the mail
>transport agent (e.g. sendmail).
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.19991114230718.0097c8f0>
