Subject: Re: "connect: Can't assign requested address" using netbsd1.5 when going off-subnet
To: Dave Christiansen <cheddardeity@hotmail.com>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: port-i386
Date: 01/15/2001 20:19:37
On Sun, Jan 14, 2001 at 11:40:18PM -0800, Dave Christiansen wrote:
>
> I apologize in advance-- this message is admittedly long and boring, but
> it's as brief as I could get it and still include all the relevant
> information I could think of.
>
> >From: Manuel Bouyer <bouyer@antioche.lip6.fr>
> >ping -n 4.33.176.1 [my gateway] works ?
>
> Yes.
>
> >What does your /etc/resolv.conf looks like ?
>
> It looks good. It has accurate information and is of the appropriate
> syntax.
>
> >Can you ping the nameservers ?
>
> No. See below.
>
> Here's where my investigation has stalled out (reasoning and diagnostic
> steps follow, but here's a SUMMARY). I know that:
>
> A. I CAN connect() to any machine on my subnet
> B. I CAN traceroute to any machine OFF my subnet EXCEPT my nameservers
> C. I canNOT connect() to any machine off my subnet.
> D. The connect() failures are not off-subnet wierdness (due to ISP, etc)
> because NOTHING hits the wire when I try (C).
>
> So:
>
> What can cause connect() to return EADDRNOTAVAIL?
>
> I'd debug it, but I don't have any symbolic info and I'd like to avoid the
> hassle if this may have some simple solution.
I the previous infos you posted, I wondered why sip had these strange
parameters (point to point, noarp, etc ...). This may affect the source
or address, which may affect routing later (source-based routing, ...).
>
> ----------------------------------------
> Here are the diagnostic steps I have performed so far:
> ----------------------------------------
>
> 1. ifconfig -a --> sip0 is up, connected, and has the right IP, broadcast
> and netmask.
>
> 2. netstat -rn --> Internet routing table is fine.
>
> 3. ping sup.netbsd.org --> FAILS w/ DNS error.
>
> 4. ping 4.2.2.1 (nameserver) --> FAILS. DNS is busted because I can't talk
> to the nameservers. Diagnose this:
>
> 5. traceroute to my nameserver (4.2.2.1) --> FAILS. See below:
>
> This is the output from a Windows machine on the same physical wire and also
> configured via DHCP. It works:
>
> Tracing route to 4.2.2.1 over a maximum of 30 hops
>
> 1 60 ms 30 ms 40 ms 4.33.176.1
> 2 20 ms 30 ms 30 ms 4.24.124.9
> 3 20 ms 30 ms 30 ms 4.24.5.101
> 4 20 ms 30 ms 30 ms 4.24.5.98
> 5 30 ms 20 ms 20 ms 4.2.2.1
>
> This is the output from the failing NetBSD machine:
>
> traceroute to 4.2.2.1 (4.2.2.1), 30 hops max, 40 byte packets
> 1 4.33.176.1 28.862 ms 33.648 ms 32.797 ms
> 2 4.24.124.9 23.488 ms 22.826 ms 22.898 ms
> 3 4.24.5.101 22.961 ms 22.817 ms 23.237 ms
> 4 4.24.5.98 23.262 ms 23.255 ms 23.521 ms
> 5 4.24.22.6 23.808 ms * 25.584 ms
>
> Note that the LAST hop is WRONG. This is WIERD, but I don't think this
> explains the "Cannot assign requested address" problem, because traffic is
> actually generated (see step 10 below).
>
> Note also that my other machines hit the last hop just fine, as does my
> NetBSD 1.2 machine (also configured by DHCP).
>
> 6. Take DNS out of the picture since we know something's wrong with it;
> comment out all lines in resolv.conf.
>
> 7. traceroute to sup.netbsd.org (added to /etc/hosts temporarily):
>
> traceroute to sup.netbsd.org (204.152.184.75), 30 hops max, 40 byte packets
> 1 4.33.176.1 (4.33.176.1) 26.621 ms 36.534 ms 30.305 ms
> 2 4.24.124.9 (4.24.124.9) 23.054 ms 22.950 ms 22.969 ms
> 3 4.24.5.101 (4.24.5.101) 23.232 ms 30.740 ms 23.104 ms
> 4 4.24.9.173 (4.24.9.173) 41.824 ms 42.041 ms 42.196 ms
> 5 4.24.7.58 (4.24.7.58) 42.124 ms 41.751 ms 43.545 ms
> 6 4.0.3.198 (4.0.3.198) 42.202 ms 42.125 ms 42.845 ms
> 7 4.0.85.5 (4.0.85.5) 43.337 ms 43.241 ms 43.597 ms
> 8 209.133.31.177 (209.133.31.177) 43.793 ms 44.259 ms 43.166 ms
> 9 207.126.96.54 (207.126.96.54) 43.522 ms 50.622 ms 42.964 ms
> 10 216.200.0.10 (216.200.0.10) 47.183 ms 47.471 ms 47.055 ms
> 11 204.152.184.193 (204.152.184.193) 47.145 ms 48.015 ms 52.559 ms
> 12 204.152.184.179 (204.152.184.179) 194.383 ms 247.447 ms 249.312 ms
> 13 sup.netbsd.org (204.152.184.75) 47.266 ms 47.665 ms 47.546 ms
>
> ...SUCCESS! I now know that I can get off-subnet and that this is not a
> problem with the DHCP-supplied routing information.
>
> Can I sup to the machine, since I can traceroute to it?
>
> 8. sup -s -v
> SUP 8.26 (4.3 BSD) for system software at Jan 4 01:03:20
> SUP: Can't connect to server for supfilesrv: Can't assign requested address
>
> 9. Is the problem specific to sup? Can I connect to other hosts using other
> programs?
>
> >telnet 129.186.1.201
> Trying 129.186.1.201...
> telnet: Unable to connect to remote host: Can't assign requested address
>
> >ftp 204.152.184.75 (ftp.netbsd.org)
> ftp: connect: Can't assign requested address
>
> ...No. Looks like everyone who calls connect() has this problem. Could the
> problem be routing (maybe connect() is returning the wrong error)?
> Connect() to a machine on the local net:
>
> >telnet <windows machine temporarily running telnet>
> Connected to <windows machine>
> Escape character is '^]'.
> Welcome to Microsoft Telnet Service
> login:
>
> So it works when I do it locally, just not out in internetland.
This may be a problem general to TCP (and maybe connected UDP, but you didn't
test it here :). And again, I wonder about the point to point mode of
sip ...
--
Manuel Bouyer <bouyer@antioche.eu.org>
--