CentOS 6 中的无状态 NAT

CentOS 6 中的无状态 NAT

我希望设置以下内容:

                              ---[IVR 1]
                             |
(internet)----[CentOS box]---+---[IVR 2]
                             |
                              ---[IVR 3]

CentOS 盒的内部接口是 192.168.110.1,IVR 的内部接口是 192.168.110.101-103。

我想要做的是将一组外部 UDP 端口映射到每个 IVR - 例如,端口 10000-14999 映射到 IVR 1,15000-19999 映射到 IVR 2,等等。我遇到的问题是端口必须直接映射 - 即来自互联网的东西进入端口 10000将要发送到 IVR 上的 10000 端口,并且 IVR 1 中的 10000 端口正在发送一些内容将要从 CentOS 盒子面向互联网的接口上的 10000 端口发送出去。

iptables 的 NAT 功能都带有警告,即它会尝试不重新映射端口,但可能不得不这样做。

现在,我的选择如下:

  • 单独映射端口(15,000 个 iptables 行,每个端口一行),格式为ipables -t nat -A PREROUTING -i eth0 -p udp --dport 10000 -j DNAT --to 192.168.110.101:10000

  • 构建一个内核,将 UDP conntrack 超时关闭

两者都不太有吸引力。

我错过了什么?

答案1

怎么样

PREROUTING -i eth0 -p udp --match multiport --dport 10000-14999 -j DNAT --to 192.168.110.101

或者

PREROUTING -i eth0 -p udp --match multiport --dport 10000-14999 -j DNAT --to 192.168.110.101:10000-14999

编辑

-t nat -A PREROUTING -i eth0 -p udp --match multiport --dport 10000-14999 -j DNAT --to 192.168.110.101
-t nat -A POSTROUTING -s 192.168.110.101 -j SNAT --to-destination 192.168.110.1

相关内容