我从我目前所在的工作地点的 ISP 获得了 5 个静态 IP 块。POS 供应商安装了一个路由器,将其连接到调制解调器,但没有使用 ISP 的静态 IP 之一进行配置。我正在使用的设备已插入此路由器网络(由于电缆路径问题,直接连接到调制解调器非常困难)。
我是否可以使用 ISP 的静态 IP 配置我的设备,并让其通过启用 dhcp(并配置动态 IP)的路由器正确路由?
我最大的疑问是网关地址。我的设备是否能够通过路由器解析调制解调器的网关地址?我应该将路由器的网关地址放在我的设备中还是调制解调器中?
换句话说,有没有办法让通过路由器连接到调制解调器的设备绕过(或通过其通信)路由器的网关并直接与调制解调器通信?
这似乎也没有完全概括这个问题,但我想不出其他方式来提问,所以如果我能澄清任何事情,或者这根本没有意义,请告诉我。提前感谢你的帮助!
答案1
如果路由器基于 Linux,并且您有办法更改其路由表,那么这绝对是可能的。一个关键的观察结果是,由于我们的地址很少,我们无法按照传统方式将一个地址分配给一个接口。因此,必须使用路由器现有的 NAT 样式地址作为网关,并且 PC 必须有 2 个地址 - 一个在私有范围内以访问路由器作为网关,另一个是实际使用的公共 IP。考虑
ip route add 20.20.20.0/29 dev br0
在路由器上(DD-WRT GUI > 管理 > 命令 > 粘贴到文本框 > 保存防火墙)。然后在 PC 上添加 2 个 IP:
192.168.1.200, 255.255.255.0, no gateway
20.20.20.2, 255.255.255.248, gateway 192.168.1.1
其中20.20.20.1
是路由器为实现 NAT 目的而占用的地址,因此我们使用上面的地址(假设范围是连续的),br0
是从路由器到您的接口(DD-WRT 上的默认地址),192.168.1.200
是路由器 DHCP 范围之外的免费私有地址,192.168.1.1
是路由器的私有地址。选择/29
或255.255.255.248
作为子网掩码可能足以包围您给出的奇数 5 个地址范围,而不会禁止访问外部的大范围。如果需要,您可以将其拆分为 2 个范围(当此示例中的 5 个地址超过 8 的倍数时)。
注意任何防火墙规则是否阻碍了您在路由器上的进程。禁用防火墙进行测试;如果您发现它在重新启用后停止工作,则可以从那里继续。
注意:我假设 Linux 可以处理一个接口上的单个 IP 和另一个接口上的重叠范围,因为范围不太具体。如果这证明有问题,请尝试调整路由范围,以便它避开 NAT 使用的地址,但仍覆盖 ISP 提供的其余地址。
答案2
我是否可以使用 ISP 的静态 IP 配置我的设备,并让其通过启用 dhcp(并配置动态 IP)的路由器正确路由?
不。
换句话说,有没有办法让通过路由器连接到调制解调器的设备绕过(或通过其通信)路由器的网关并直接与调制解调器通信?
再说一遍,不行。
根据定义,路由器 LAN 网络内的设备需要使用路由器的 LAN 接口与其子网外的任何设备进行通信。如果您在 NATted 网络上为设备设置了公共 IP 地址,则无法正常工作。
您能做的最好的事情就是在路由器上配置 1:1 NAT,以便将往返于该 IP 地址和内部设备的私有 IP 之间的流量进行 NAT。
如果您无权修改路由器的配置,那么这个问题就不合适了,您需要直接与该路由器上具有管理权限的人员打交道。