[PROXYPER] Proxy connection :Unable to send request
peter at llama.nslug.ns.ca
Tue Mar 14 13:58:58 EST 2000
Ok, I'll see if I can explain how it all works. You will need to refer to
other docs, since I don't have the time to explain the whole thing!
On Thu, Mar 09, 2000 at 07:53:09PM -0800, DHS wrote:
> Do you mean that the value "localhost" is what I should use as the 'name'
> for the machine the PerProxy is running on.
> This 'name' is what I associate with (in Win95) as
> CP/Network/Identification tab/Name. I'm thinking I may be orders of
> magnitude removed from where you are.
> Yes, I know that IP's can be confused, but I know that I am using IP
> addy's that are not routable to the internet at large (or so I'm told).
The first thing you really really need to understand is that an IP address
is associated with a logical interface to a network. This can be an
ethernet card, a modem, or even a virtual interface like the loopback device
(for talking to yourself) which has no hardware associated with it. (There
are other non-physical types of interfaces that you can use for tunnelling
and virtual private networks.)
It is possible for a computer to have more than one such interface, and
thus have more than 1 IP address associated with your computer. (if you
have more than 1 logical interface on a single physical interface, that's
called IP aliasing (in the linux kernel, anyway).) For example, my computer
has three logical interfaces: loopback (lo), first ethernet interface
(eth0), and second ethernet inteface (eth1).
lo is a logical interface, and has the IP address 127.0.0.1.
eth0 and eth1 correspond 1-to-1 with physical interfaces.
eth0 connects to my internal home network, and it has the IP addr 10.0.0.1.
The other machine on that network uses 10.0.0.2 for its interface.
eth1 connects to my cable modem, and so is part of the network that includes
a couple other cable subscribers and a gateway to the rest of the internet.
It is technically wrong think of a whole computer as having an IP address,
but every machine has (or should have) the loopback device configured as
127.0.0.1, and most computers have only one other interface to a real
network, so the common and useful practice is to talk about giving a
machine an IP addr. You will notice, however, that windoze (which you said
you use), has its TCP/IP settings configurable per interface. (e.g. "TCP/IP
properties for ne2000 ethernet card" or something.)
I'll answer your other question, now, since I was just getting to that.
> Just how does the Proxy do "Name Resolution?" would this require me to
> have a 'hosts' file on the machine in the root directory? I could generate
> another one, I suppose. But, I was told that this file is unnecessary in W95
> OSR2.1. Told the 'hosts' file is really only useful in WinNT.
> I used to use the 'hosts' file, but now just just the IP addy's.
Name Resolution is the process of finding an IP addr, given a name. This
is what netscape does when you type in www.distributed.net. It finds out that
www.distributed.net is 126.96.36.199, and creates a TCP connection to port 80
on it. (this assumes you aren't behind a web proxy). It is common practice
on all computers to configure the resolver system to resolve localhost to
When a program wants to look up a name, it uses a resolver library, which
provides a standard interface to the name lookup system. (usually) The
first thing the resolver tries is the hosts file, (c:\windows\hosts on
win9x, something else on NT.) If the desired name is not in a file locally,
it looks up the name with DNS.
Host names are associated with IP addrs on the internet via a mechanism
known as DNS, the Domain Name System. For local use, other mechanisms like
hosts files can be used. (hosts files have to list every host there is, so
they don't scale up to netwoks the size of the Internet very well at all.
It used to be that internic (?) emailed out a list of what name went with
what number every time a new host was added to the internet. This got
annoying really soon, so DNS was developed. I wasn't around back then
(having been born in 1979...), but I've read about it.)
I won't explain much about the heirarchy of DNS servers. The important
thing is that you find out the IP addr for a given hostname by sending the
name to the local DNS server, which either gives you the number right away,
or asks other DNS servers. It eventually tells you the number, or tells you
the name isn't associated with an IP address, or isn't in the hosts database
at all. (DNS "A" records give addresses for names. There are other types,
so a name can be in the database without having an address.) There are also
reverse DNS records which map names to IP addresses. It is not necessarily
the case that the IP address associated with a name reverse looks up to that
name again. For example, my machine llama.nslug.ns.ca looks up to
188.8.131.52. This is because I got an entry for llama added to the nslug
DNS zone for me. Reverse lookups give my hostname as
u24n77.hfx.eastlink.ca, because my ISP's "PTR" record for my IP address just
maps it back to the hostname they know me by (which is u24n77). Of course,
forward lookups on u24n77... give my IP address, because my ISP has an "A"
record for me too.
There is no rule against multiple names looking resolving to the same IP
addr. For example, distributed.net and www.distributed.net both look up to
the same IP addr, 184.108.40.206.
If you've been paying attention (and I've been explaining it well :), you
should understand what happens when you ping localhost.eastlink.ca. Your
computer doesn't know about any eastlink.ca stuff, so it asks the DNS server
for the IP address for localhost.eastlink.ca. The DNS server comes back with
127.0.0.1, so your machine sends pings to 127.0.0.1. This is of course the
loopback interface, so it is actually your own machine. You asked another
host on the internet for the IP address, but the actual connection to it was
(that's right, my ISP even has localhost in their DNS server :>
Note that Microsoft introduced a separate naming scheme for it's NetBIOS
protocol, and this is the name you put in the "identification" spot in the
network config. Note that it is _not_ part of the configuration for an
interface, but it is what the computer calls itself on all interfaces. It
is also not necessarily the same as the DNS name associated with any of
your interfaces, and, annoyingly, usually isn't on most machines. NetBIOS
name resolution is configured separately from DNS, but you can set it to use
DNS instead of broadcasts and WINS.
For further information, consult the some of the Linux HOWTO documents.
They are directed at Linux users, but some of the major ones, especially the
NET-HOWTO. Check out http://www.linuxdoc.org/HOWTO/Net-HOWTO.html, and
maybe some of the other HOWTOs. Ignore the stuff that talks about Linux
commands to configure stuff, and focus on what they are telling you about
IP networking. The info is directed at people setting up their own IP
network with linux, but you should be able to apply the linux config info to
your windoze machine. I don't know of a general purpose non-OS-specific
resource which has as much info (even though such a thing probably does
exist.) I recommend the Linux HOWTOs because I learned a lot from them, and
they are what I know.
Hope this helps,
P.S. I wrote the above in a couple sittings, and I'm sure there are
discontinuities. If I've screwed something up, please feel free to reply to
the list with a correction, or ask me if you don't understand because of
#define X(x,y) x##y
DUPS Secretary ; http://is2.dal.ca/~dups/
Peter Cordes ; e-mail: X(peter at cordes.phys. , dal.ca)
"The gods confound the man who first found out how to distinguish the hours!
Confound him, too, who in this place set up a sundial, to cut and hack
my day so wretchedly into small pieces!" -- Plautus, 200 BCE
To unsubscribe, send 'unsubscribe proxyper' to majordomo at lists.distributed.net
More information about the proxyper