[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#45912: ping', and name resolution in general, hangs



Hi,

On Fri, 24 Sep 1999 offby1@blarg.net wrote:

> Package: libc6
> Version: 2.1.2-3
> Severity: critical

Surely, as you say you don't know for sure that this bug is in libc6, you
cannot mark it as "critical"?  The actual impact of the bug doesn't seem
to warrant a "critical" severity anyways (have you actually read the bug
submitting guidelines?)

I'm sorry to say, but from what I'm reading in your report, it seems just
very likely that you have a problem setting up your machine or network.
 
> Here's the problem:
> 
> When I type `ping blarg.net' at a shell, `ping' hangs.  I expect it to display
> 
> 	PING blarg.net (206.124.128.1): 56 data bytes
> 	64 bytes from 206.124.128.1: icmp_seq=0 ttl=62 time=25.7 ms
> 	...

What happens if you `ping 206.124.128.1'? Does that work? If so, your
network card and kernel are very likely to be fine.  If so, the problem is
restricted to name resolving and although libc6 plays some role in that
arena, it's very much unlikely that it is the culprit here, as it would be
a quite blatant failure in libc which numerous others would have reported
here already.

> Other name resolution also fails.  For example, Netscape hangs when
> trying to visit web pages on machines other than mine.

That would be explained pretty nicely by the hypothesis of a not
working resolver setup.
 
> I've never sat around and waited to see if `ping' eventually gets
> unstuck; I've always given up and hit control-C after no more than
> perhaps a minute.

You should try waiting 4 minutes, as the default name lookup timeout is 3
minutes.  The results would probably be somewhat informative.

> This problem didn't always happen, although I don't remember exactly
> when it started.  I know for certain that it didn't happen immediately
> after I installed slink, nor did it happen immediately after I
> upgraded to potato the first time.

My guess is that it happened when your router started having ideas of its
own about how your network is setup.

>      * The exact and complete text of any error messages printed or
>        logged. This is very important!
> 
> I haven't noticed any error messages -- certainly none at the shell on
> which I ran `ping', and none in /var/log.

Hmm, I tend to say that you could have done better here, like run some
more diagnostics and present the output/results of that, maybe even
hypothesize a bit yourself and provide some discussion material pro/contra
the various options, based on some ecxperimental data.

>      * Details of the configuration of the program with the problem.
>        Include the complete text of its configuration files.
> 
> I don't think a particular program is at fault; if the problem is in
> Debian at all, I assume it's in the resolver library, or perhaps in
> the driver for the network card.  And I'm not aware of any
> configuration files for either the library or the network card.

That's not much ground for submitting a "critical" bug, eh?

On a personal note, IMHO you really should have asked first on
debian-user.  Oh, but you already did, didn't you?

>      * Any other details of your Linux system, if it seems appropriate.
>        For example, if you had a problem with a Debian Perl script, you
>        would want to provide the version of the `perl' binary (perl -v).
> 
> I connect to the Internet via DSL, using a Cisco 675 router, which is
> a little grey box that sits on the floor.  I have a phone cord that
> connects the router and my phone jack; I have an Ethernet cable that
> connects the router and my network card.
> 
> The router is quite configurable, and perhaps its configuration is
> relevant: 
> 
> * I've got it set to act as a DHCP server, although since I don't know
>   how to make Debian use DHCP, I've told Debian to use a static IP
>   address.  Since I only have one computer, there is no risk of having
>   two IP addresses conflict.
> 
> * It's doing something called `network address translation', which, as
>   I understand it, means that my machine "appears" to the outside
>   world to have a different IP address than what the machine thinks.
>   That is (as you can see below in my network configuration files), my
>   machine thinks its IP address is 10.0.0.2, but the outside world
>   uses 206.124.128.30 (that address might change from time to time,
>   because the router might be a DHCP client of my ISP).  Also, if I
>   were to connect other machines to the router (with an Ethernet hub),
>   they would get IP addresses like 10.0.0.3, 10.0.0.4, etc.; but they
>   would *all* appear to the outside world as 206.124.128.30.  It would
>   appear that this would cause total confusion, but it doesn't;
>   somehow this `network address translation' keeps things from getting
>   confused.  I don't understand how it does this, but it seems to work
>   OK.  (The place I work used to have a similar setup; they had five
>   machines connected to the Internet, all "sharing" an outside IP
>   address; the machines all worked fine.)  The one tradeoff that I
>   know of is that nobody in the outside world can connect to any
>   servers that I run, because the network address translation
>   apparantly futzes with port numbers.  For example, my SMTP server
>   listens on port 25, but someone who tries to connect to that port
>   using my outside IP address 206.124.128.30 won't be able to.
>   Presumably, if they could guess the port to which the router has
>   "mapped" port 25, they could connect to that port.

I think you really should read some documentation, my friend.  I propose
to you the following (among others) excellent materials: the Net-3-HOWTO,
the IP-Masquerading-HOWTO, the Linux Network Administrator's Guide (both
available as a free download and as an O'Reilly Book.)  And did I mention
yet the debian-user mailinglist, also an excellent source of peer
information, inside knowledge and pointers to vast areas of useful
documentation?
 
> Oddly, the problem goes away if I run `tcpdump': I do
> 
>        tcpdump &
>        ping blarg.net

Tcpdump places your network adapter in promiscuous mode.  That means it
will pickup and to some amount also process network packets that it
officially shouldn't.  

Looking into my crystal ball, my guess is that this magically and
mysteriously causes the Cisco and your linux box to "see" each other.

> and `ping' responds correctly.  I can then kill `tcpdump', and until
> the next time I boot, the network works fine.  It's as if `tcpdump'
> changed something, and that change allows name resolution to work.

Try running "arp -a" before and after that tcpdump trick.  Also, play a
bit with "netstat", "ifconfig" and "route".  If it doesn't help
immediately, it's still fun to play with anyway and you'll learn a lot
while doing so.

Try similar diagnostics on the Cisco if you can.  Read all the
documentation about the Cisco.  It sounds like you'll need to know a bit
how it works and how to make it jive with your linux machine in order for 
your network to work correctly.

Cheers,


Joost



Reply to: