Друзья, помогите разобраться и советом. Есть 2 провайдера IPS1, IPS2, шлюз по умолчанию стоит от IPS1. Ядро собрано с дивертами, NATами и т.д., конфигурация IPFW следующая:
#!/bin/sh -
fwcmd="/sbin/ipfw -q"
ips1="em0"
ips2="em1"
${fwcmd} -f flush
# allow ssh on all interface
${fwcmd} add allow tcp from any to me 2211 in via ${ips1}
${fwcmd} add allow tcp from any to me 2211 in via ${ips2}
# network address translation
${fwcmd} add fwd 195.111.111.111 ip from 195.151.111.112 to any
${fwcmd} add fwd 62.117.222.222 ip from 62.117.222.223 to any
${fwcmd} nat 1 config if ${ips1} reset deny_in same_ports unreg_only redirect_port tcp 192.168.ххх.ххх:2900 2900
${fwcmd} nat 2 config if ${ips2} reset deny_in same_ports unreg_only redirect_port tcp 192.168.ххх.ххх:2900 2900
${fwcmd} add nat 1 all from any to any
${fwcmd} add nat 2 all from any to any
# Deny all
${fwcmd} add deny all from any to any
Где 195.111.111.111 это шлюз IPS1, 195.111.111.112 IP внешний выданный IPS1. 62.117.222.222 это шлюз IPS2, 62.117.222.223 IP внешний выданный IPS2.
Собственно все работает, по SSH я соединяюсь и по первому и по второму адресу, все натируется, но... я и сам понимаю что после строки ${fwcmd} add nat 1 all from any to any далее уже ничего не происходит, то есть когда я подключаюсь по второму адресу, ответ приходит от первого. Наверное так? Я пробовал ставить в sysctrl net.ip.fw.one_pass=0, но тогда ничего вообще не работает. Подскажите что не так?
Задача собственно что бы с обоих провайдеров были доступны сервисы которые передаются через redirect_port. То есть при соединении по обоим внешним адресам, мы попадали на один и тот же внутренний.
P.s. Я специально убрал все другие правила что бы не было много воды... Не понимаю что ещё нужно докрутить. Понимаю что после равила первого ната на второй уже пакеты не идут, а как их туда развернуть, не понимаю... (