不同类型的 ICMP

网络工程 线鲨 包分析 icmp tcpdump
2022-02-20 06:59:06

我有一个任务,我花了很多时间。我不精通 Linux,但我可以管理基本的事情。

任务是收集不同类型的 ICMP 数据包。tcpdump我可以通过(我更喜欢)或 Wireshark来收获它们。

我能够获得 ICMP 类型echo replyecho requestusingpingtime exceededusing tracepathor traceroute现在,我想要得到的是unreachabletimestamp或别的什么。我需要另外两种类型,但是我不知道生产方法。

我尝试 ping 一个不存在的主机或错误的端口,并使用tracepath相同的方式,但我没有得到任何东西。

有人可以告诉我或告诉我可以使用哪些命令以及以哪种方式获得另外两种类型的 ICMP 数据包?

编辑(对评论的回答):我想不管是哪一个。我必须抓住一些类型并描述它们。可能与回复、请求和超时时间属于同一类别,但应该是不同的类别。

1个回答

我想这个任务的重点是让你弄清楚如何生成和捕获不同类型的 ICMP 消息。在没有直接给你答案的情况下,我会为你指出如何弄清楚的方向。

RFC 792描述了 ICMP 消息。ICMP 消息有不同的可能来源:

代码

0 = 网络不可达;

1 = 主机不可达;

2 = 协议不可达;

3 = 端口不可达;

4 = 需要碎片和 DF 集;

5 = 源路由失败。

可以从网关接收代码 0、1、4 和 5。可以从主机接收代码 2 和 3。

你说想要unreachable消息。代码 0 似乎是一个很好的目标,它来自网关(路由器),您认为如何让路由器生成其中一个代码?请记住,这是路由器必须能够知道的。

这是您在弄清楚如何生成和捕获消息时应该寻找的东西。

RFC 是理解协议的好来源,一旦你理解了协议(显然是本练习的重点),就更容易弄清楚如何使用它。