7.32. (多个IP - DMZ 区段) - 我有几个外部 IP 地址,想要端口转发到几台内部机器。我该如何操作?

虽然技术上可行,但不要使用 IP MASQ 来做这件事。对于这种网络设计,有更好的解决方案。

MASQ 是一种 1:多 NAT 设置,它不是执行您想要操作的正确工具。您需要的是多:多 NAT 解决方案或桥接设置。

注意:对于那些考虑在内部网卡上使用“IP 别名”启用多个 IP 地址,然后仅仅端口转发所有这些端口 (0-65535),并最终使用 IPROUTE2 来维护正确的源/目标 IP 对的用户。这在 2.0.x 内核上已成功完成,在 2.2.x 内核上不太成功。无论成功与否,这不是正确的方法,这完全是黑客行为,而且它不是受支持的 MASQ 配置。请认真考虑 2.4.x 内核上的 IPTABLES,或者在较小程度上,对于 2.2.x 内核,查看第 7.30 节 IPROUTE2。

无论如何,对于将外部 IP 地址转发到内部主机,您基本上有三种可能性。

每种解决方案都有优点和缺点。

项目 #1:如果您足够幸运,您的 ISP 会为您设置好这一切(非常罕见),您只需要使用基本的 'route' 命令即可使其运行。这是最健壮的解决方案,并且不需要任何形式的 IPMASQ 或 NAT 即可工作。

项目 #2:1:1 NAT 尚未在本 HOWTO 中介绍,但如果您需要帮助,请给我发邮件,我会帮您一把。

项目 #3:ProxyARP 非常简单明了,但仅在特定情况下且仅适用于以太网网络。桥接功能更强大,但可能需要重新编译内核和进行一些高级配置。最终,这些解决方案都不再是 IPMASQ,因此我无法帮助您设置它们。幸运的是,还有其他 HOWTO 涵盖此主题。

注意: 如果您有桥接的 DSL 或有线调制解调器连接(不是 PPPoE),情况会稍微复杂一些,因为您的设置不是路由的。不过不用担心,请查看 Bridge+Firewall Mini HOWTOBridge+Firewall+DSL Mini HOWTO。这些 HOWTO 将教您如何让您的 Linux 机器在单个接口上支持多个 IP 地址!