Назад | Перейти на главную страницу

Циклический перебор и балансировка нагрузки по диапазону локальных портов с использованием iptables в RedHat Linux

Я хотел реализовать балансировщик нагрузки (циклический) с использованием 4 экземпляров обратных туннелей ssh, работающих под управлением localhost: 11669, localhost: 11670, localhost: 11671 и localhost: 11672, подключенных к удаленному хосту cmssyn.sys.com на 1669.

/usr/bin/ssh -L -N -a -q -4 -x -c blowfish -L 11669:127.0.0.1:1669 pssh@cmssyn.sys.com
/usr/bin/ssh -L -N -a -q -4 -x -c blowfish -L 11670:127.0.0.1:1669 pssh@cmssyn.sys.com
/usr/bin/ssh -L -N -a -q -4 -x -c blowfish -L 11671:127.0.0.1:1669 pssh@cmssyn.sys.com
/usr/bin/ssh -L -N -a -q -4 -x -c blowfish -L 11672:127.0.0.1:1669 pssh@cmssyn.sys.com

Хотя у меня есть четыре обратных туннеля SSH, я не получаю преимуществ от четырех туннелей, поскольку весь трафик использует только один туннель ssh (11669).

Я хотел реализовать циклическую маршрутизацию с использованием iptables, так что первый сеанс должен идти на 11669, а следующий сеанс должен идти на 11670, затем на 11671, а затем на 11672, затем на 11669 и так далее.

Я создал следующие правила для таблиц IP, однако все пакеты перенаправляются только на 11669 и не идут в другие туннели.

iptables -t nat -A OUTPUT -d 127.0.0.1 -m tcp -p tcp --dport 11669 -j REDIRECT --to-ports 11669-11672

Запрос вашей помощи для успешной маршрутизации трафика ко всем четырем портам в режиме Round Robin.


Привет, Аарон и обкуренный,

Большое спасибо за ваш быстрый ответ, я уже пробовал добавить --random, --RANDOM в конце и получаю следующую ошибку.

[root@prod-unix-p4p06 ~]# iptables -t nat -A OUTPUT -d 127.0.0.1 -m tcp -p tcp --dport 11669 -j REDIRECT --to-ports 11669-11672 --random
iptables v1.3.5: Unknown arg `--random'
Try `iptables -h' or 'iptables --help' for more information.

# uname -r 
2.6.18-412.0.0.0.1.el5

# cat /etc/issue
Oracle Linux Server release 5.11
Kernel \r on an \m

I have even tried the same firewall rule on Oracle Linux 6.7 and 6.8.