![使用用户空间 GRE 实现抑制 ICMP 协议 47 不可达](https://linux22.com/image/754672/%E4%BD%BF%E7%94%A8%E7%94%A8%E6%88%B7%E7%A9%BA%E9%97%B4%20GRE%20%E5%AE%9E%E7%8E%B0%E6%8A%91%E5%88%B6%20ICMP%20%E5%8D%8F%E8%AE%AE%2047%20%E4%B8%8D%E5%8F%AF%E8%BE%BE.png)
由于需要大量无关上下文才能解释清楚的原因,我正在使用带有SOCK_RAW
/IPPROTO_GRE
套接字的用户空间进程处理 GRE 数据包。这工作正常,但尽管有一个原始套接字接受 GRE 数据包,但内核仍会为收到的每个 GRE 数据包生成 ICMP 协议无法访问的响应。除了使用防火墙规则阻止这些响应外,还有其他方法可以阻止它们吗?有什么方法可以告诉系统在原始套接字上收到的数据包已被接受?
由于需要大量无关上下文才能解释清楚的原因,我正在使用带有SOCK_RAW
/IPPROTO_GRE
套接字的用户空间进程处理 GRE 数据包。这工作正常,但尽管有一个原始套接字接受 GRE 数据包,但内核仍会为收到的每个 GRE 数据包生成 ICMP 协议无法访问的响应。除了使用防火墙规则阻止这些响应外,还有其他方法可以阻止它们吗?有什么方法可以告诉系统在原始套接字上收到的数据包已被接受?