这个 netstat-nr 命令的每一行都发生了什么?

这个 netstat-nr 命令的每一行都发生了什么?

我有一个不明白的问题。如何评估每行发生了什么以及哪一行与目标地址 183.77.42.58 匹配以及为什么?

netstat 输出

这个 netstat-nr 命令的每一行都发生了什么?

答案1

这个 netstat -nr 命令已经生成了一个相当标准的路由表 - 因此如果寻求 Google 帮助,只需查看如何解释路由表,但要回答您的问题 -

当数据包进入时,它将匹配最具体的行,然后被引导出接口。网络目标和网络掩码的组合允许系统计算 IP 的范围。在这种情况下,它相当简单,因为网络掩码 255.255.255.255 表示 1 个 IP 地址,而网络掩码 255.255.255.0 表示与 IP 地址的前 3 位数字匹配的所有内容(实际上是 XXX*)

网络为 0.0.0.0 且网络掩码为 0.0.0.0 表示默认网关 = 所有未通过更具体的路由匹配的流量。

(度量标准决定将数据包发送到哪里,其中有两行具有相同的 IP 范围和网络掩码 - 我们可以在这里忽略这一点)

IP 地址 183.77.48.58 与第 2 行匹配,并发送 183.77.42.13,因为它与第 3 行不匹配,但在 183.77.42.0 - 183.77.42.254 范围内。

答案2

注意:我更喜欢 davidgo 的回答。我并不反对他的观点。所以请接受他的回答,而不是我的。

我有一个不明白的问题。如何评估每行发生了什么以及哪一行与目标地址 183.77.42.58 匹配以及为什么?

第 2 行将匹配。因为它位于同一网络上。它匹配以 183.77.42 开头的任何内容

数据包进入或在本地生成。

这不是完整的公式,但足以回答您问题的主要内容。路由将使用的公式是查看该数据包的目标 IP。将其与网络掩码进行 AND 运算,将其发送到指定的接口,并发送到指定的网关(路由器)。

任何数据包都绝对会与第一行匹配。因此,可能存在导致该行最后被测试的原因,例如,我认为是该行在网络掩码中具有最多的 1。如果这些相同,则度量会影响首先查看哪一行。因此,在这种情况下,度量不相关。

列出的最后一行(目标 255.255.255.255)是我最先测试的,因为它在网络掩码中具有最多的 1。它测试 IP 是否发往广播地址。即,它测试目标 IP 是否 = 255.255.255.255 它通过将地址与全为 1 的 255.255.255.255 进行“与”运算来实现这一点,并保持 IP 原样,然后它测试它是否与 255.255.255.255 匹配。

第 3 行正在测试 IP 的目标,该 IP 本身显然是网关。掩码为 255.255.255.255,因此 IP 进入后,保持原样,并查看它是否等于该 .18 地址。如果是,那么无论出于何种原因,它都不会被发送出去,而只会被发送到所谓的环回接口,即 127/8,例如 127.0.0.1,它本质上是机器本身内部的一个内部虚拟接口。

第2行非常重要,意思是如果目标IP在同一个网络,则发送出去。

第 1 行非常重要,它可能会最后运行。它完全匹配任何内容。然后将其发送出去。因此,如果在它之前匹配了某些内容,那么该行将不适用于它。

相关内容