我希望设置以下内容:
---[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