我想知道当数据包离开 NAT 时是否还留下原始来源的痕迹。
假设我从我的机器向公共服务器发出一系列 DNS 请求。我位于 NAT 后面。服务器能否以某种方式看到这些请求来自同一台机器?例如,当请求来自同一台机器时,NAT 是否会重用源端口?
答案1
这个问题没有好的答案,因为你问了一个非常具体的问题 - 一个通用术语。
NAT 是一种方法,而不是程序。每个实施 NAT 的路由器可能都采用不同的方式。实施细节。
因此,没有通用的答案。
我记得以前你不仅可以识别出使用了 NAT,还可以识别出某个路由器生产商(基于此类实施细节),尽管那是几年前的事了——那时一切都已经明朗了。说真的,这需要对每个路由器进行分析,甚至多年来固件版本之间也可能存在差异。
哦,还有另外一个——你的例子很糟糕。非常糟糕:
Let’s say I do a series of DNS requests from my machine to a public server
在我见过的任何网络设置中,你都不会这样做 - 你的机器会向路由器发出 DNS 请求,路由器也充当本地 DNS 服务器。它无法满足的任何请求都将被转发。这样做的原因是,例如,找到也在 DNS 中注册的本地资产……远程 DNS 不知道。无论如何,使用这种(正常)设置,不会涉及 NAT,因为任何外部 DNS 请求实际上都来自同一设备。