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


0

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

netstat输出

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

Answers:


1

这个netstat -nr命令产生了一个相当标准的路由表 - 所以如果寻找谷歌帮助,只需看看如何解释路由表,但回答你的问题 -

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

具有0.0.0.0且网络掩码为0.0.0.0的网络意味着默认网关=所有流量与更具体的路由不匹配。

(度量标准确定在哪里发送数据包,其中有2行具有相同的IP范围和网络掩码 - 我们可以在此处忽略它)

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


1

请注意 - 我更喜欢davidgo对我的回答。我并不反对他。所以请接受他的我的。

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

第2行将匹配。因为它在同一个网络上。它匹配任何开始183.77.42的东西

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

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

绝对任何数据包都匹配第一行。所以可能有一些东西导致最后一行被测试,例如我认为它在网络掩码中具有最多的1。如果它们相同,那么度量标准会影响首先查看哪一行。因此,在这种情况下,度量标准不相关。

列出的最后一行(目标255.255.255.255)是我首先测试的那一行,因为它在网络掩码中具有最多1个。它测试以查看IP是否发往广播地址。即它测试目的地IP = 255.255.255.255通过ANDing地址255.255.255.255(全是1)并按原样保持IP,然后测试它是否匹配255.255.255.255。

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

第2行非常重要,这意味着如果目标IP位于同一网络上,则将其发送出去。

并且第1行非常重要,它可能会运行到最后......它绝对匹配任何东西。并发送出去。因此,如果某事物在它之前匹配,那么该行将不适用于它。


1
所以你会说255.255.255.255描述了一个限制在子网内的广播,为什么还要将数据包发送到183.77.42.18?
伊莫拉

是。地址255.255.255.255是一个特殊地址 - 发送给它的数据包将发送到所有直接连接的机器(即在同一子网中)。它通过183.77.42.18发送,因为它是它所在机器的IP地址,即它通过引用它的Mac地址来定义本地系统上的接口。
davidgo

@imora以及255.255.255.255这里是数据包中的目标IP,而不是子网掩码。这样,它会导致向该子网上的所有计算机进行广播。一个IP 183.77.42.X位于子网183.77.42.0 /255.255.255.0所以来自子网上任何计算机的广播,因此,从任何IP起始183.77.42.XYZ,将转到183.77.42子网上的每个IP 。
barlop
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.