问题已移至其他地方并完全重写这里。
我有来自 ISP 的一组静态 IP,我希望在 DD-WRT 内设置单独的网络接口,这些接口都通过我拥有的单个 WAN 连接。我想为每个接口分配静态 IP,并在 DD-WRT 路由器内设置单独的子网和网关。我希望能够根据我在每个设备中分配的静态信息在 LAN 上的任何位置访问这些子网中的每一个。
例子:
1 WAN Port
2 WAN network interfaces (Via aliasing or VLAN's, or any other option)
2 Subnets (Routed separately to each of the respective WAN interfaces)
将 LAN 上的任何设备连接到任一子网,并让该设备的流量通过其分配的 WAN 接口路由并从同一个 WAN 端口发出。
我知道通常只有一个 WAN 网络接口具有 WAN 端口的物理 MAC 地址,但我确信有一种方法可以创建具有虚拟 MAC(随机,无论如何)的第二个虚拟接口,并能够从同一个 WAN 端口路由出去。只是不确定如何使用 DD-WRT 做到这一点。已在 DD-WRT 的论坛上发布,但尚未收到回复。任何信息都非常感谢。
编辑:
我无法让我的 ISP 将所有静态 IP 分配给我的网关/路由器 MAC。我必须静态设置每个网络接口。因此,我本质上需要创建一个辅助虚拟 WAN 接口,该接口通过相同的 WAN 端口路由,但分配一个与主默认 WAN 接口配置的静态 IP 不同的 IP。这可以通过拥有 2 个物理网络接口然后将它们交换在一起来解决,但是,如果我要这样做,为什么不直接将其配置为通过虚拟接口来执行此操作呢?
答案1
这种方法比您想象的要简单。如果您的 ISP 为您提供了一组静态 IP,那么第一步就是让 ISP 将这些 IP 地址路由到您的 WAN 公共地址。
此举可确保任何发往您的 IP 地址的数据包最终都会到达您的路由器。
剩下的就是确保传出的数据包正确地网络地址转换到正确的公共地址。
假设您使用 vlan 作为内部网络 - 假设其中一个是 192.168.1.0/24,另一个是 192.168.2.0/24,那么您可以使用 iptables 命令为您执行 nat:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT -o eth1 --to-source 123.123.123.123
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT -o eth1 --to-source 123.123.123.124
这些意思是:路由后,如果源在 192.168.1.0/24 范围内,而目的地在接口eth1
(WAN 接口)之外,则将源地址更改为 123.123.123.123
因此数据包将通过您的一个公共地址离开路由器,任何回复都将返回到您的路由器,因为您的 ISP 已表示该范围已路由到您的 WAN 地址。在那里它将匹配 NAT 规则并“取消网络地址转换”,最终转到 192.168.1.x。