为什么这个静态路由不起作用?

为什么这个静态路由不起作用?

我正在尝试开发类似 Microsoft NAP 的 DHCP 强制扩展。我阻止动态 IP 请求机器(不符合特定策略的机器)的技巧是删除 IP 租约中规定的默认网关(无默认网关),并将租约子网掩码设置为 255.255.255.255。

现在我需要被阻止的机器能够到达网络上的某些特定位置(IP)。为了实现这一点,我在租约中包含了一些静态路由。例如,我通过路由器 10.10.10.254(需要访问 10.10.10.11 的被阻止机器所连接的路由器)包含 10.10.10.11。

不幸的是,一旦我将默认网关设置为无,被阻止的机器就无法访问任何添加的静态路由。我也尝试了无类静态路由。

有什么想法吗?有人知道 MS NAP 实际上是如何做到的吗?

答案1

您可能需要10.10.10.254在示例中包含一条到 的路由。该路由可以是“它在本地连接到此接口”(为了您的利益,我希望它是这样的)。

答案2

我认为问题在于将子网掩码定义为 255.255.255.255。您实际上是在告诉计算机它自己位于一个网络段上,然后不告诉它要与谁(即网关)通信才能与其他网络段通信。正确的解决方案是使用未为 LAN 配置路由的真实网关服务器设置专用网络段,然后配置从专用网络到所需 LAN 地址的静态路由。或者,您需要将计算机放在仅广播的网络段上,该网络段具有足够大的子网掩码以到达所需地址,然后在计算机连接到的任何路由器上配置静态路由。

简化:无网关 = 仅广播,255.255.255.255 子集 = 无广播(所有内容路由到网关)

答案3

Bill Weiss:我们尝试了这种方法(将路由器地址添加为静态路由,其网关为特殊的 0.0.0.0,表示在同一链路上)。这样 ping 可以到达路由器,但无法到达目标机器(通过此路由器的另一台静态路由)。

Greg Bray:我们找到了一个半解决方案,即被阻止的机器与静态路由表中的机器(要到达的)位于不同网段,可以 ping 通它们。基本上,我们将默认网关设置为 0.0.0.0,将子网掩码设置为 255.255.255.255,这意味着:如有任何疑问,请查阅静态路由表。我们还将静态路由的网关设置为 0.0.0.0,这意味着该网关与被阻止的机器位于同一链路上(我认为,如果错了,请纠正我)。但是,有什么想法,我们如何通过被阻止的机器 ping 同一网段上的机器?

还有一件事:想象一下两台被阻止的机器使用上述默认网关和子网掩码的设置。现在,为了让被阻止的机器 A ping 另一台被阻止的机器 B,我是否还需要从 B 到 A 的静态路由,以便 B 能够响应此 ping 请求(假设 A 已经有到 B 的静态路由)?我的意思是 ping 响应是否利用 ping 请求标头中有关请求者机器的信息来回复它?还是它需要对该响应进行显式静态路由?

感谢你们 :)

答案4

您遇到的问题部分在于您阻止了比静态路由更具体的网络。路由器根据管理距离选择向哪个网络发送内容,而静态路由的管理距离为 1。但是,如果其他路由是更具体的网络(即具有更多网络位而不是主机位),它们将忽略 AD。因此,如果您将掩码设置为 255.255.255.255,则所有网络位都是网络位,并且到网络+主机的静态路由将被忽略。

此外,既然他们可以手动设置他们的信息并完全忽略这个系统,那么这种强制措施如何呢?

相关内容