我有以下设置:
服务器 (Windows Server 2019) NIC 1(仅限 IPv4):
- IP:192.168.2.10/24
- 网关:192.168.2.1(也做 DHCP 的互联网路由器)
- 域名解析:192.168.2.10
通过 swtich 连接到联网设备的 NIC 2(仅限 IPv4)
- IP:192.168.100.248/16
PC(Windows 10 专业版) - IP:192.168.2.13/24 - 网关:192.168.2.1(也执行 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 也必须保留)
在服务器上,我安装了 Routing 和 RAS Feature 并设置了 LAN-Routing。
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)。使用 Startmenu 磁贴给我带来了问题(不要问我为什么)
- 右键单击我的服务器 -> 配置路由和 RAS
- 选择自定义 -> 检查 NAT 和局域网路由
- 展开 IPv4 -> 右键单击常规 -> 新路由协议 -> NAT(当通过开始菜单磁贴打开路由和 RAS 时,这会给我一个错误)
- 右键单击 NAT -> 新界面
- NIC 1 -> 选择私有选项
- 右键单击 NAT -> 新界面
- NIC 2 -> 选择 public 选项并勾选 enable NAT on this interface
- 完成,ping 正常工作并且对设备的访问也正常工作;-)
我标记了导致我找到此解决方案的答案。
关于阿尔卡纳
服务器上的路由很好。设备上的路由是一个问题。
请记住,每个数据包都是单独路由的。仅仅因为您在一个方向上设置了路由,并不意味着来自设备的响应将自动以完全相同的方式发回。换句话说,设备不会“记住”它通过您的服务器接收到请求——它需要添加一个路由来告诉它。
现在,因为它配置了 /16 子网掩码,设备会认为您的 PC 在同一子网中 - 它不会通过服务器或任何其他网关发送数据包,但会期望直接到达您的 PC同一个开关。
(但即使设备有 /24 子网掩码,它也会通过自己的“默认网关”发送回复——它仍然不会自动知道它需要通过您的服务器回复。)
可能的解决方案是:
通过 192.168.100.248在设备上为 192.168.2.0/24添加路由;这将优先于 /16 子网掩码。
在服务器上启用“代理 ARP”,以便它响应 NIC 2 上 192.168.2.x 的 ARP 查询(但不在 NIC 1 上!)。
在服务器上启用 SNAT(伪装),这样它就会重写您 PC 的请求,使其看起来像是来自服务器本身。由于设备只能看到来自“相同”子网的服务器 IP 地址,因此它也知道将回复发送到哪里。
解决方案 #3可能使用 Windows Server RRAS,但 #2 虽然技术上非常简单,但可能需要第三方软件。