我想知道是否有可能从互联网上的设备回答查询来实现内部网络上节点的跟踪路由。
假设内部网络上的客户端向 Internet 上的服务器发送查询,例如 http 服务器。
该服务器是否有可能通过发送若干时间的响应来实现跟踪路由,从 TTL 1 开始并为每个响应递增它?
从我的角度来看,数据包应该被客户端的 NAT 路由器接受并在内部网络上重定向,因为它是一个响应。因此,服务器可以从内部节点获取 TTL 过期响应和 IP 地址。
我想知道是否有可能从互联网上的设备回答查询来实现内部网络上节点的跟踪路由。
假设内部网络上的客户端向 Internet 上的服务器发送查询,例如 http 服务器。
该服务器是否有可能通过发送若干时间的响应来实现跟踪路由,从 TTL 1 开始并为每个响应递增它?
从我的角度来看,数据包应该被客户端的 NAT 路由器接受并在内部网络上重定向,因为它是一个响应。因此,服务器可以从内部节点获取 TTL 过期响应和 IP 地址。
可能不是。
内部网络中的路由器可能会生成超时消息。问题是当这些消息到达 NAT 时会发生什么。我看到了三种主要的可能性。
在案例 1 中,理论上可以跟踪到内部网络,但实际上它很可能最终被 Internet 端的入口过滤阻止。
在情况 2 中,您可以确定内部网络中有多少跃点,但不能确定这些跃点的地址。
在案例 3 中,您什么也得不到。
为此,您需要两件事:
服务器上的应用程序需要能够在不影响应用程序功能的情况下操作 TTL。换句话说,即使应用程序出现 Time Exceeded 错误,它也需要继续运行。
目标网络防火墙需要允许 Time Exceeded 消息发送到 Internet。
内部和外部网络(互联网网络)与外围设备路由器或防火墙等 L3 设备隔离。如果外围设备允许在防火墙中的出站流量策略中使用 traceroute 协议,则您可以从内部网络跟踪 Internet 托管服务器。