iptables с целевым DNAT для трансляции диапазона нескольких портов
Я хочу использовать iptables для установки цели DNAT. Многопортовый виртуальный сервер - это цель, которую я хочу сделать. Но я обнаружил, что DNAT не может сопоставить многопортовый порт с многопортовым. например
iptables -t nat -A PREROUTING -p tcp --dport 1000:2000 -j DNAT - к месту назначения 192.168.1.100:3000-4000
Я думаю, что это правило должно быть 1000 ------> 3000 1001 ------> 3001 .......................... 2000 ------> 4000
Я пытался использовать whireshark для захвата пакетов. Независимо от того, являются ли исходные пакеты 1000, 1001, 2000 и т. Д., Кажется, что они транслируются только на порт 3000. Это связано с тем, что iptables отображает только несколько портов на один порт.
Любой совет?
Благодарю.
1 ответ
Страница maniptables-extensions гласит, что ядро 2.6.11-rc1 и новее не поддерживают указание нескольких портов назначения:
В ядрах до 2.6.10 вы можете добавить несколько
--to-destination
опции. Для этих ядер, если вы укажете более одного адреса назначения, либо через диапазон адресов, либо несколько--to-destination
опциями, между этими адресами происходит простое циклическое (одно за другим в цикле) распределение нагрузки. Более поздние ядра (> = 2.6.11-rc1) больше не имеют возможности NAT для нескольких диапазонов.