Я хочу настроить следующее:
---[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 воля будет отправлено на порт 10000 в IVR, и что-то будет отправлено из порта 10000 в IVR 1 воля быть отправленным из порта 10000 в интерфейсе CentOS, выходящем в Интернет.
Весь материал iptables о NAT идет с оговоркой, что он будет пытаться не переназначать порты, но, возможно, придется.
Сейчас мои варианты выглядят так:
отображать порты индивидуально (15000 строк iptables, по одной для каждого порта) формы ipables -t nat -A PREROUTING -i eth0 -p udp --dport 10000 -j DNAT --to 192.168.110.101:10000
построить ядро с таймаутом UDP conntrack, уменьшенным вправо
ни то, ни другое не очень привлекательно.
Что я пропустил?
как насчет
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