我正在尝试使用ping
命令Windows 7
。
根据ping
命令的帮助。
-j 主机列表 沿主机列表进行松散源路由(仅限 IPv4)。
我的电脑位于家庭局域网中。默认网关是192.168.199.1
。我尝试了以下 2 个 ping 命令。
第一个是直接 ping 外部主机。
ping 114.80.143.158
有用。
然后我尝试检查loose source routing
,即以下命令:
ping -j 192.168.199.1 114.80.143.158
但它给了我Request timed out.
我认为我的所有请求都会通过default gateway
,因此loose source routing ping
应该可以工作。但为什么它没有 ping 通?
答案1
为啥不起作用ping -j
?
松散源路由(使用 或 指定ping -j
)tracert -j
可pathping -g
用于指定数据包在到达目的地之前应经过的系统。
然而,源路由很容易被滥用(见下文),因此大多数网络管理员在边界路由器上阻止所有源路由数据包。
因此,在实践中,松散源路由不会起作用。
tracert
这很不幸,因为在使用和pathping
诊断网络问题时,查看反向路由(可以使用源路由完成)的能力非常有用。
- 正常路线和反向路线可能(并且通常是)完全不同(“不对称”)。
- 如果它们不同,则连接问题可能是到目标的路由存在问题,或者从目标返回的路由存在问题。
- Traceroute 输出中反映的问题实际上可能并不在于跟踪中明显的系统;而可能在于从跟踪看来是问题原因的系统返回的反向路由上的某个其他系统。
反向路径本身在正常的 Traceroute 输出中完全不可见。
有一篇有趣的文章源路由的危险解释启用松散源路由时的风险。
什么是源路由?
源路由是一种技术,通过该技术,数据包的发送方可以指定数据包在网络中应采用的路由。
请记住,当数据包通过网络时,每个路由器都会检查“目标 IP 地址”,并选择将数据包转发到的下一跳。在源路由中,“源”(即发送者)会做出部分或全部这些决定
在严格源路由中,发送方指定数据包必须采用的确切路由。这实际上从未使用过。
更常见的形式是松散源记录路由 (LSRR),其中发送方给出数据包必须经过的一个或多个跳数
LSRR 可以以多种方式用于黑客攻击。有时,计算机位于 Internet 上,但无法访问。(它可能使用私有地址,如 10.0.0.1)。但是,可能存在其他可到达双方并转发数据包的计算机。然后,有人可以通过该中间计算机通过源路由从 Internet 访问该私有计算机。
来源源路由
是否应禁用源路由?
思科路由器通常接受并处理源路由。除非网络依赖它,否则应禁用源路由。
源路由是一种技术,数据包的发送者可以指定数据包在网络中应采用的路由。当数据包在网络中传输时,每个路由器都会检查目标 IP 地址并选择下一跳以将数据包转发到该地址。在源路由中,“源”(即发送者)会做出部分或全部这些决定。
攻击者可以使用源路由将数据包强行送入网络的特定部分,从而探测网络。使用源路由,攻击者可以收集有关网络拓扑的信息,或其他可用于执行攻击的信息。在攻击过程中,攻击者可以使用源路由引导数据包绕过现有的安全限制。
来源路由器已启用 IP 源路由 (CiscoIpsourceRoutingEnabled)
什么是反向路线?
任何通过 Internet 的连接实际上都依赖于两条路由:从您的系统到服务器的路由,以及从该服务器返回您的系统的路由。这些路由可能(并且通常是)完全不同(不对称)。如果它们不同,则您的连接中的问题可能是到服务器的路由或从服务器返回的路由存在问题。跟踪路由输出中反映的问题实际上可能不在于跟踪中明显的系统;它可能在于从系统返回的反向路由上的某个其他系统,从跟踪来看,该系统似乎是导致问题的原因。
因此,从您到服务器的跟踪路由只向您展示了一半的情况。另一半是返回路由或反向路由。那么您如何看到该路由呢?
在过去,你可以使用源路由和 traceroute 来查看从主机到你的反向跟踪。这个想法是指定所谓的松散源路由,它指定你的数据包在到达目的地之前应该经过的系统。
使用松散源路由查看反向路由的功能可能非常方便。不幸的是,源路由很容易被滥用,因此大多数网络管理员都会在边界路由器上阻止所有源路由数据包。因此,实际上,松散源路由不会起作用。
如今,您唯一可能希望运行反向跟踪路由的方法是,您要跟踪的系统在其网站上提供跟踪路由功能。许多系统,尤其是 Usenet 提供商,都有一个网页,您可以在其中运行从其系统到您的系统的跟踪路由。结合您对其系统的跟踪,这可以为您提供另一半情况。我有一个 Usenet 提供商跟踪路由页面列表这里。
答案2
如今,IP 源路由几乎在所有地方都被忽略,因为它们会引发各种安全问题。虽然依靠 IP 路由来保证安全并不是一个好主意,但源路由仍然很容易绕过防火墙,并且伪造你的 IP 地址,但实际上并没有什么用处。
换句话说,带有源路由的数据包会被安全策略丢弃。因此,即使您指定了它们通常采用的相同路由,您也不会收到回复。
在基于 Linux 的路由器上,您仍然可以通过设置 sysctl 来启用此功能:
sysctl -w net.ipv4.conf。<接口>接受源路由=1
FreeBSD(pfSense)有 sysctlsnet.inet.ip.sourceroute
和net.inet.ip.accept_sourceroute
。