Hmm, I never heard of ICMP Type 30 before, I must admit.
Valid types include:
echo reply (0), destination unreachable (3), source quench (4),
redirect (5), echo request (8), router advertisement (9), router
solicitation (10), time-to-live exceeded (11), IP header bad
(12), timestamp request (13), timestamp reply (14), information
request (15), information reply (16), address mask request (17)
and address mask reply (18).
For ping, only ICMP 0 and ICMP 8 are required - strictly speaking. You can block most of the others without *too* much problems. I may stand corrected, but I believe traceroute uses ICMP 11.
Blocking traceroute on ICMP alone won't help you though. Traceroute can also be used with UDP, and you can also do a traceroute on any TCP/IP Port you tell it to use...
A TCP traceroute on port 80:
traceroute: Warning: www.microsoft.com has multiple addresses; using 207.46.225.60
traceroute to lb1.www.ms.akadns.net (207.46.225.60), 64 hops max, 52 byte packets
1 198.18.0.35 1.253 ms 1.568 ms 0.911 ms
2 198.18.0.4 1.490 ms 2.120 ms 1.206 ms
3 * * *
^C
Man page:
The Internet is a large and complex aggregation of network hardware,
connected together by gateways. Tracking the route one's packets fol-
low (or finding the miscreant gateway that's discarding your packets)
can be difficult. Traceroute utilizes the IP protocol `time to live'
field and attempts to elicit an ICMP TIME_EXCEEDED response from each
gateway along the path to some host.
<SNIP><SNIP>
-P Send packets of specified IP protocol. The currently supported
protocols are: UDP, TCP, GRE and ICMP. Other protocols may also
be specified (either by name or by number), though traceroute
does not implement any special knowledge of their packet for-
mats. This option is useful for determining which router along a
path may be blocking packets based on IP protocol number. But
see BUGS below.
-p Protocol specific. For UDP and TCP, sets the base port number
used in probes (default is 33434). Traceroute hopes that noth-
ing is listening on UDP ports base to base + nhops * nprobes - 1
at the destination host (so an ICMP PORT_UNREACHABLE message
will be returned to terminate the route tracing). If something
is listening on a port in the default range, this option can be
used to pick an unused port range.