Its not an oversight (honest!).
The code for handling ICMP actually breaks down into 2 different sections:-
1. Code handling ICMP packets which are associated with TCP/UDP
connections
[I use "connections" rather loosely here]. ie ICMP packets related
to
PATH MTU discovery etc. This basically means that ICMP packets that
are
for destination unreachable, ttl exceeded or source quench AND the
embedded
proto information is for an already masq-ed connection are handled.
2. Code handling all ICMP packets as ICMP...
The code to handle (1) existed before the real ICMP handling code was
written - it came in a bit before 2.0.0. Without that code all sorts of
things fall apart - especially if you try and do MTU discovery.
[incidently if ICMP handling is disabled ping from inside the masq network
doesn't work - as expectec - BUT Unix traceroute does work since it uses
UDP probe packets and gets ICMPs back related to those packets. MS
tracert doesn't work without full ICMP support since it uses ICMP probe
packets].
Nigel.
-- [ Nigel.Metheringham@theplanet.net - Systems Software Engineer ] [ Tel : +44 113 251 6012 Fax : +44 113 224 0003 ] [ Friends don't let friends use sendmail! ]