我在使用 Windows 7 Enterprise 64 时经常遇到路由问题:我的 LAN 以太网接口连接到我们公司的网络 (172.17.0.0/21),该网络还提供互联网的默认网关。该网关还具有通往我们公司内另一个专用网络 (192.168.1.0/24) 的路由,我可以从我的 PC 访问该网络。
因为我必须处理办公桌上许多需要通过 Web 界面进行配置的不同设备无需暴露于公司网络。为此,我买了一个小型 WiFi 接入点,禁用了它的 DHCP 服务器,并将设备(该设备是需要配置的 UMTS 路由器)连接到其 LAN 端口。设备默认始终设置为地址 192.168.1.1,因此我将 Windows 中的 WiFi 接口设置为固定地址 192.168.1.100 并连接到 AP。
当公司网络接口被禁用或拔掉时,我能到达设备,否则我无法到达我的设备,而是通过默认网关到达上述其他公司网络中的主机 192.168.1.1。这种行为是预料之中的,因为默认网关会处理,并且目前还没有到 192.168.1.0/24 的明确路由。为了解决这个问题,我通过我的 WLAN 接口创建了到网络 192.168.1.0/24 的永久路由,其度量低于默认路由:
route add 192.168.1.0 mask 255.255.255.0 192.168.1.100 if 12 metric 5 -p
默认路由的度量为 10,因此在其下方IF 12
是我的 WLAN 接口,-p
用于永久路由。
在管理员中设置此路线后命令安慰,我能访问设备,同时访问互联网。当然,我无法访问另一个私人公司网络 192.168.1.0/24,因为新路由会拦截数据包 - 这是我所期望的行为。
核心问题如下:
当我重启机器时,我再也无法访问该设备。当我查看路由表时,上面显示的路由仍然存在并列在路由表中(如 所示route print
),但数据包仍然通过默认路由。
当我那时删除手动设置路线,然后使用上面的命令重新设置,我立即能再次到达设备。
这非常烦人,而且不可靠。为什么 Windows 首先会忽略我的路由?我该怎么做才能解决这个问题?说实话,我不想用一些批处理脚本或类似的东西来解决问题。
答案1
在我看来,这听起来像是非对称路由。目标 IP 不会通过相同路径回复您,而是通过其默认网关发送回复。最终,连接跟踪会清理一个或另一个路由器上半建立的连接。
解决方法是,考虑将 192.168.1 网络设置为 /30 或 255.255.255.252 网络掩码。这会将您限制为 2 个活动 IP(.1 和 .2)
给你的笔记本电脑分配 192.168.1.2/30,另一台设备就可以通过 192.168.1.1 访问
从 192.168.1.4 到 .255 的任何其他 IP 都将通过您的默认网关。