From owner-freebsd-isp Sat Aug 24 22:39:36 1996 Return-Path: owner-isp Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id WAA08610 for isp-outgoing; Sat, 24 Aug 1996 22:39:36 -0700 (PDT) Received: from GndRsh.aac.dev.com (GndRsh.aac.dev.com [198.145.92.241]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id WAA08589 for ; Sat, 24 Aug 1996 22:39:31 -0700 (PDT) Received: (from rgrimes@localhost) by GndRsh.aac.dev.com (8.6.12/8.6.12) id WAA17651; Sat, 24 Aug 1996 22:39:11 -0700 From: "Rodney W. Grimes" Message-Id: <199608250539.WAA17651@GndRsh.aac.dev.com> Subject: Re: Who knows about routed? To: robert@chalmers.com.au (Robert Chalmers) Date: Sat, 24 Aug 1996 22:39:11 -0700 (PDT) Cc: freebsd-isp@FreeBSD.org In-Reply-To: from Robert Chalmers at "Aug 25, 96 11:13:23 am" X-Mailer: ELM [version 2.4ME+ PL11 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-isp@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk > Can someone routed guru please tell me what this is trying to say, > apart from the obvious... > > > nanguo routed[304]: bad host in route from eros (af 2) > nanguo routed[304]: bad host in route from eros (af 2) ^^^^^^ af 2 == INET ^^^^^^^^ this is coming from this part of input.c: if (((*afp->af_checkhost)(&n->rip_dst)) == 0) { syslog(LOG_DEBUG, "bad host in route from %s (af %d)\n", (*afswitch[from->sa_family].af_format)(from), from->sa_family); continue; } > Just what does routed see as a "bad host" ? It means that the IP address is not believed to be an internet host, and by following the indirection of *afp->af_checkhost you end up in this chunk of code: /* * Return 1 if the address is believed * for an Internet host -- THIS IS A KLUDGE. */ inet_checkhost(sin) struct sockaddr_in *sin; { u_long i = ntohl(sin->sin_addr.s_addr); #ifndef IN_EXPERIMENTAL #define IN_EXPERIMENTAL(i) (((long) (i) & 0xe0000000) == 0xe0000000) #endif if (IN_EXPERIMENTAL(i) || sin->sin_port != 0) return (0); if (i != 0 && (i & 0xff000000) == 0) return (0); for (i = 0; i < sizeof(sin->sin_zero)/sizeof(sin->sin_zero[0]); i++) if (sin->sin_zero[i]) return (0); return (1); } There should probably be additional data in the logged message (ie, a pretty print of &n->rip_dst->sin_addr.s_addr would tell you exactly what data was rejected by inet_checkhost. > it's filling my log files... The host eros routed is probably sending out funny routes :-(. -- Rod Grimes rgrimes@gndrsh.aac.dev.com Accurate Automation Company Reliable computers for FreeBSD