我有一台商用有线调制解调器,运行的是 shibby 的 Tomato 1.28。它目前有一个通过 DHCP 分配的静态 IP 地址,工作正常。我被分配了一些额外的可路由 IP,但它们位于不同的子网中。
**WAN**
addr:1.2.3.10 Bcast:1.2.3.255 Mask:255.255.255.0
**LAN**
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
**Additional WAN block info:**
Network: 2.2.3.120/29
Subnet Mask: 255.255.255.248
Start: 2.2.2.121
End: 2.2.2.126
我计划将新的 5 个地址分配给 192.168.1.x 主机,然后将它们映射到公共地址。
**LAN** **WAN**
192.168.1.121 -> 2.2.2.121
192.168.1.122 -> 2.2.2.122
...
192.168.1.126 -> 2.2.2.126
这应该通过防火墙规则还是静态路由来完成?
来自 ISP 的说明:...您声明您将路由您的额外块,这是需要对您的设备执行的操作的一个基本示例
路由:我需要您从此块配置一个 IP 到内部接口;我建议使用第一个可用 IP 2.2.2.121。然后,此 IP 将充当子网流量的网关。
答案1
这应该通过防火墙规则还是静态路由来完成?
如果你指的是静态路由iproute2 套件,那么您是对的,这两种方式都可以做到,而且到目前为止我还没有察觉到性能上的差异。
NIC 仅在两种情况下接受 UNICAST 流量:
它具有 UNICAST 流量定向到的 IP 地址;
它处于混杂模式。
混杂模式被视为一种安全隐患。因此,您应该将一组新的公共 IP 地址分配给路由器上的 WAN 端口。
网络过滤选项
你可以通过这个单一的方式将所有流量重定向到适当的电脑iptables命令:
iptables -t nat -A PREROUTING -d 2.2.2.121 -j DNAT --to-destination 192.168.1.121
但这留下了一个小漏洞:netfilter NAT不是使内核回答 NAT 后的 IP 的 ARP 请求,看这里。因此我建议您使用以下两个重定向:
iptables -t nat -A PREROUTING -d 2.2.2.121 -p tcp -j DNAT --to-destination 192.168.1.121
iptables -t nat -A PREROUTING -d 2.2.2.121 -p udp -j DNAT --to-destination 192.168.1.121
这不会重新路由非 TCP/UDP 流量,因此 ICMP/ARP 流量会到达路由器的内核,并由路由器采取相应的行动。
您的其他 IP 和服务器也同样如此。
iproute2选项
这样你就不会碰iptables 完全正确,并且 ARP 流量得到正确计算。要发出的命令是:
ip route add nat 2.2.2.121 via 192.168.1.121
ip rule add nat 2.2.2.121 from 192.168.1.121
第一条规则适用于入站流量,第二条规则适用于出站流量。第一条规则通过重写目标地址将流量重定向到本地服务器。第二条规则重写源地址,使回复看起来像是来自公共 IP 2.2.2.121,而不是本地 IP 192.168.1.121。
尽情享受吧。顺便说一句,
它目前有一个通过 DHCP 分配的静态 IP 地址,并且运行良好
这是什么意思???