Considerations for filtering the ICMPv6 protocol

11/06/2025

Considerations for filtering the ICMPv6 protocol

By Henri Alves de Godoy and Ernesto Sanchez

During LACNIC 43, held in São Paulo’s Anhembi District from May 5 to 9, Henri Alves de Godoy and Ernesto Sanchez presented the research paper “Considerations for filtering the ICMPv6 protocol” at the Technical Forum. This article provides a summary of the work, jointly prepared for the LACNIC Blog.

Introduction: The Evolution of ICMP

The Internet Control Message Protocol (ICMP) was defined in RFC 792 (1981) as an essential mechanism for network devices to report errors, announce connectivity issues, and allow network diagnostics. It was created together with IPv4 to provide support during the transmission of packets over the network, which travel without a guarantee that they will be delivered by the network layer. It is used, for example, to notify when a host on the network is inaccessible, to inform about expired TTL, and to identify fragmentation issues.

Some of the most popular tools that are also easy to use even for the most inexperienced users are the ping (Echo Request/Reply) and traceroute (Time Exceeded) commands, which use the ICMP protocol directly. We frequently use these tools in our daily lives, and they provide a quick and straightforward connectivity test.

With the expansion of the Internet and the possibility of browsing the Web which was once limited to universities and research centers, the introduction of small regional Internet Service Providers (ISPs) in the mid-1990s allowed each user to receive a public IPv4 address for their home. Residential users were not yet familiar with NAT and maintained a direct end-to-end connection, without any address translation and without sharing the same IP among multiple subscribers, as is the case today.

During this same period, denial of service attacks began to surface, exploiting devices connected to different networks. These attacks included smurf attacks, where ICMP Echo Request packets were sent to broadcast addresses. This became known as an amplification attack and its goal is to incapacitate a local network.

Another major incident with lasting historical implications was the Ping of Death, which exploited vulnerabilities in the implementation of the IP protocol across various operating systems, particularly Windows 95, where the attacker created an ICMP Echo Request packet exceeding the size permitted by the IP standard (65,535 bytes).

(Free access, no subscription required)

Over time, the idea that “to ping is dangerous” spread. In this context, many began to adopt blanket ICMP blocking, and for many years this was considered “good security practice.”

However, this decision was driven more by panic and fear than by technical analysis. Consequently, distinguishing between a connectivity failure and the filtering of ICMP traffic has become increasingly challenging, creating invisible networks to make it difficult to map the internal network and thus making diagnosis inefficient.

Many firewall scripts (iptables, ipchains) and tutorials encouraged fully blocking the ICMP protocol, often without explaining the technical implications. This practice became so deeply ingrained that, even after 30 years, we still see many people completely blocking ICMP on their networks, fostering a false sense of security.

The views expressed by the authors of this blog are their own and do not necessarily reflect the views of LACNIC.

Subscribe
Notify of

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments