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 для нескольких диапазонов.

Другие вопросы по тегам