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

Re: ICMP Error Message?



On Tue, 04 Apr 2000, Peter Lunnon wrote:
>ICMP is a message control and error-reporting protocol between a host
>server and a gateway to the Internet.

Internet Control Message Protocol.  It's part of the base IP protocol.  See
RFC792 (the introduction paragraph of which I have included at the end of
this message).  It works just as well between two hosts on a 10baseT
crossover cable as it does on the Internet.

>ICMP uses Internet Protocol (IP) datagrams, but the messages are processed
>by the IP software and are not directly apparent to the application user.
>(whatis.com)
>
>Does your kernel have ICMP installed??

It is impossible to have IP without ICMP.  You may be thinking of ICMP
masquerading which is not relevant to non-routers.

>If so is yor box a server with routing or squid installed??

I think it is rather unlikely that he would be doing routing on his omnibook.
I think that my setup of Squid on a Thinkpad is unusual.

>If not, run deselect and remove ICMP.

That is simply impossible.  There is no package named "ICMP".  Did you
consider checking this before writing the message?

>If your network is ethernet, ICMP will get upset cause its looking to
>resolve every IP address and collision (which are many) on the network.

No.  ICMP does not do that at all.  Ethernet collisions never get futher than
the physical layer.  You could probably re-program an Ethernet device driver
to allow you to get headers of Ethernet collision packets, but I suspect that
many (most?) Ethernet hardware wouldn't support this.  ICMP certainly has
nothing to do with collisions.
ICMP does not resolve IP addresses.  ARP does, see RFC826.

I strongly recommend that anyone who wants to give out advice on Internet
protocols have the doc-rfc package installed.
I have that package on every machine that I am likely to use for reading news
or email.  So if someone asks such a question I can give right answers.


Now here's the code from /usr/src/linux/net/ipv4/icmp.c:
        /*
         *      Check the other end isnt violating RFC 1122. Some routers send
         *      bogus responses to broadcast frames. If you see this message
         *      first check your netmask matches at both ends, if it does then
         *      get the other vendor to fix their kit.
         */
 
        if (!sysctl_icmp_ignore_bogus_error_responses)
        {
 
                if (inet_addr_type(iph->daddr) == RTN_BROADCAST)
                {
                        if (net_ratelimit())
                                printk(KERN_WARNING "%d.%d.%d.%d sent an invalid ICMP error to a broadcast.\n",
                                NIPQUAD(skb->nh.iph->saddr));
                        return;
                }
        }

It looks like David can set his system to ignore bogus error responses if his
netmask is indeed correct (the chances of getting a broken router fixed are
very small).

The way I found this was:
find /usr/src/linux -type f | xargs grep sent.an.invalid

>On Mon, 3 Apr 2000, WENDT,DAVID (A-ColSprings,ex1) wrote:
>> I recently upgraded to 'Frozen' and compiled a custom kernel
>> on my Omnibook.
>> 
>> When I connect to my network, I see the following messages printed
>> to the console every couple of minutes.
>> 
>> 	<IP Address> sent an invalid ICMP error to a broadcast
>> 
>> There are several of these printed, each with a different IP.
>> 
>> Is there something I mis-configured in my kernel?  Any insight
>> would be greatly appreciated.

>From RFC792:
Introduction
 
   The Internet Protocol (IP) [1] is used for host-to-host datagram
   service in a system of interconnected networks called the
   Catenet [2].  The network connecting devices are called Gateways.
   These gateways communicate between themselves for control purposes
   via a Gateway to Gateway Protocol (GGP) [3,4].  Occasionally a
   gateway or destination host will communicate with a source host, for
   example, to report an error in datagram processing.  For such
   purposes this protocol, the Internet Control Message Protocol (ICMP),
   is used.  ICMP, uses the basic support of IP as if it were a higher
   level protocol, however, ICMP is actually an integral part of IP, and
   must be implemented by every IP module.

-- 
My current location - X marks the spot.
X
X
X


Reply to: