Date: Fri, 20 Nov 1992 09:55:41 +0000 (GMT) From: Kevin Hoadley <K.Hoadley@directory.rl.ac.uk> Subject: Re: hangs/multiple servers To: timbl@ch.cern.ch Cc: K.Hoadley%UK.ac.RL.DIRECTORY@ac.uk, www-talk@ch.cern.ch In-Reply-To: Tim Berners-Lee's message of Thu, 19 Nov 92 18:29:03 +0100: <9211191729.AA00355@www3.cern.ch> Message-Id: <Ximap.722254606.1308.khoadley@danton> From: Tim Berners-Lee > >Ok, This seems a bery good idea, if that is the functionality which DNS >supports. ><practical> >Let's try it.... Anyone care to mod HTTP.c? It's not obvious from >the gethostbyname that one is allowed to refer to different >machines: > struct hostent { > char *h_name; /* official name of host */ > char **h_aliases; /* alias list */ > int h_addrtype; /* host address type */ > int h_length; /* length of address */ > char **h_addr_list; /* list of addresses from name server */ > }; > >That look like a list of aliases for one machine, rather than a >list of machines for one alias! But maybe the reverse will work. It is both; a list of alias names for a host, and a list of addresses that correspond to the canonical name ... >So all machines support char **h_addr_list rather than the older >h_addr? We can probably differentiate using #ifdef h_addr Probably not, unfortunately >which is set to a macro if there IS a list. I assume you need then >separate entries for the virtual duplicate node and the actual >real nodes, so that you can speak to them sepately. Is this normal >and OK? Yes, you need seperate entires for the pseudo host and the real hosts that are actually providing the service. This looks like the following: www-server.foobar.domain. A 1.2.3.4 A 1.2.5.6 A 1.2.7.8 aeschylus.foobar.domain. A 1.2.3.4 euripides.foobar.domain. A 1.2.5.6 sophocles.foobar.domain. A 1.2.7.8 ie. the virtual hosts www-server appears to be multi-homed, but each "home" is on a different real machine. >Is this normal and OK Well, it's technically acceptable, but it is hardly a normal requirement in the first place. There is one possible gotcha here: some machines verify DNS lookups by checking the forward lookup against the reverse. In this case such a check would fail, as the reverse is likely return either aeschylus, euripides or sophocles (this depends on what you put in the relevant in-addr.arpa domain, whcih is how reverse lookups work). I hope that this checking is done by apps calling gethostbyaddr after each gethostbyname, rather than being being built in gethostbyname Adding support for multiple addresses into the clients is useful anyway... if only to support real multihomed machines Kevin Hoadley, Rutherford Appleton Laboratory, khoadley@ib.rl.ac.uk