<<On Fri, 17 Mar 2000 15:03:18 -0800 (PST), Archie Cobbs <[EMAIL PROTECTED]> said:

> When the program is run, if you ping the IP address from the
> local machine, it sees packets.  However, if you ping it from
> a remote machine, it doesn't see packets.

The ICMP never passes certain packets up to raw listeners.  These
include ECHO REQUEST, TIMESTAMP REQUEST, and SUBNET MASK REQUEST
packets -- but not the corresponding replies!  So, when you ping the
local machine, you will see the ECHO REPLY packets on all raw
listners, but not the initial ECHO REQUESTs.  When you ping from a
remote machine, you never see the ECHO REQUEST packets because the
kernel takes care of them, and you never see the ECHO REPLY packets
because they are addressed to the other machine.

It would be possible to pass all ICMP packets to the raw listeners,
but it would require rewriting parts of icmp_input() (which would not
be a bad idea) either to avoid modifying the packet in-place or to
keep a copy of the original before responding -- either of which would
slow down `ping' processing.

-GAWollman

--
Garrett A. Wollman   | O Siem / We are all family / O Siem / We're all the same
[EMAIL PROTECTED]  | O Siem / The fires of freedom 
Opinions not those of| Dance in the burning flame
MIT, LCS, CRS, or NSA|                     - Susan Aglukark and Chad Irschick


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to