我有以下设置:
服务器 (Windows Server 2019) NIC 1(仅 IPv4):
- IP:192.168.2.10/24
- 网关:192.168.2.1(Internet 路由器,也支持 DHCP)
- DNS:192.168.2.10
NIC 2(仅 IPv4)通过交换机连接到网络连接设备
- IP:192.168.100.248/16
个人电脑(Windows 10 专业版) - IP:192.168.2.13/24 - 网关:192.168.2.1(Internet 路由器,也支持 DHCP) - DNS:192.168.2.10
网络连接设备 - LAN-IP:192.168.100.250/16 - WAN-IP:192.168.2.99/24(互联网路由器的网络)
这里的目标是能够从 PC 连接到设备。设备上的网络是固定的,无法更改(因此 NIC 2 上的 IP/MASk 也必须保留)
在服务器上,我安装了路由和 RAS 功能并设置了 LAN 路由。
PC 仍然无法 ping 或连接到设备。
然后我在 PC 上添加了此路由: - route add /p 192.168.0.0 mask 255.255.0.0 192.168.2.10
现在,PC 可以 ping 通服务器的 NIC 2,但不能 ping 通 192.168.100.250。
这里我遗漏了什么吗?PS:防火墙中的所有内容都允许使用 ICMPv4,我甚至在关闭防火墙的情况下也进行了测试。
编辑: 我在设备上发现了一条如下的路线(无法编辑或删除):
- 目标地址:192.168.2.0/24
- 下一跳:192.168.2.131
解决方案
- 我将 DHCP 角色从路由器移到了服务器
- 我打开了路由和 RAS MMC(开始 -> 运行 -> RRASMGMT.MSC)。使用“开始”菜单磁贴时出现了问题(不要问我为什么)
- 右键单击我的服务器 -> 配置路由和 RAS
- 选择自定义 -> 检查 NAT 和 Lan-Routing
- 展开 IPv4 -> 右键单击常规 -> 新路由协议 -> NAT(当通过开始菜单磁贴打开路由和 RAS 时,这会给我一个错误)
- 右键单击 NAT -> 新界面
- NIC 1 -> 选择私有选项
- 右键单击 NAT -> 新界面
- NIC 2 -> 选择公共选项并选中在此接口上启用 NAT
- 完成,ping 正常,设备访问也正常;-)
我标记了引导我找到这个解决方案的答案。
问候 Alkahna
答案1
服务器上的路由很好。器具是一个问题。
请记住,每个数据包都是单独路由的。仅仅因为你设置了一个方向的路由,并不意味着设备的响应将自动以完全相同的方式发回。换句话说,设备不会“记住”它通过您的服务器接收到请求 - 它需要添加一条路由来告诉它这一点。
现在,由于它配置了 /16 子网掩码,设备会认为您的 PC 位于同一子网中 - 它不会通过服务器或任何其他网关发送数据包,而是期望直接到达同一交换机上的您的 PC。
(但即使设备有 /24 子网掩码,它也会通过它自己的“默认网关”——它仍然不会自动知道它需要通过您的服务器回复。)
可能的解决方案包括:
添加路线在设备上对于 192.168.2.0/24 通过 192.168.100.248;这将优先于 /16 子网掩码。
在服务器上启用“代理 ARP”,以便它将响应 NIC 2 上针对 192.168.2.x 的 ARP 查询(但不响应 NIC 1 上的查询!)。
在服务器上启用 SNAT(伪装),这样它就会重写您 PC 的请求,使其看起来像是来自服务器本身。由于设备只能从“相同”子网看到服务器的 IP 地址,因此它也知道将回复发送到哪里。
解决方案 #3可能使用 Windows Server RRAS 是可能的,但是 #2 虽然技术上非常简单,但可能需要第三方软件。