vr0 - внутренний
vr1 - 1ый пров
vr2 - 2ой пров
Также есть некоторое количество сервисов в локалке с серыми айпишниками, на которые необходимо необходимо редиректить соединения из вне... к примеру: 3389 и 80. Необходимо, чтобы эти сервисы БЫЛИ ДОСТУПНЫ С ОБОИХ ВНЕШНИХ IP. Баллансировка пока не нужна.
маршрутом по умолчанию назначен гейт первого прова.
Итак, правило:
Код: Выделить всё
rdr pass on $ext_if_1 inet proto tcp from any to $ext_if_1 port 3389 -> $internal_ip
Код: Выделить всё
rdr pass on $ext_if_2 inet proto tcp from any to $ext_if_2 port 3389 -> $internal_ip
Гугл говорит, что данная проблема более, чем решаема при помощи route-to и reply-to.
Немного покопавшись набросал тестовый конфиг (который, как вы поняли не работает... =( ):
Код: Выделить всё
#Переменные
ext_if1="fxp0"
ext_if1_gw="xxx.yyy.zzz.115"
ext_if2="fxp1"
ext_if2_gw="aaa.bbb.ccc."222"
int_if="fxp2"
int_serv="192.168.0.2"
#Settings
set skip on lo0
#Нормализация
scrub in all
#NAT
nat on $ext_if1 from $int_if:network to any -> $ext_if1
nat on $ext_if2 from $int_if:network to any -> $ext_if2
#Редиректы
rdr on $ext_if1 inet proto tcp from any to $ext_if1 port 25 -> $int_serv
rdr on $ext_if2 inet proto tcp from any to $ext_if2 port 25 -> $int_serv
#Запрещаем ВСЕ по дефолту
block all
#ТРАФИК НА ВНУТРЕННЕМ ИНТЕРФЕЙСЕ
#Разрешаем пакеты из локалки, адресованные шлюзу
pass in quick on $int_if inet from $int_if:network to $int_if
pass out quick on $int_if inet from $int_if to $int_if:network
#Разрешаем пакеты из локалки адресованные в интернет
pass in quick on $int_if inet from $int_if:network to any keep state
#Разрешаем все, что отредиректили (и даже больше) для локалки
pass out quick on $int_if inet from any to $int_if:network keep state
#ТРАФИК НА ВНЕШНИХ ИНТЕРФЕЙСАХ
#Разрешаем исходящий внешний трафик
pass out quick on $ext_if1 route to ( $ext_if1 $ext_if1_gw ) inet from $ext_if1 to any keep state
pass out quick on $ext_if2 route to ( $ext_if2 $ext_if2_gw ) inet from $ext_if2 to any keep state
#Разрешаем на 25 порт, который собственно и пытаемся отредиректить
pass in on $ext_if1 reply-to ( $ext_if1 $ext_if1_gw ) inet proto tcp from any to $ext_if1 port 25 flags S/SA keep state
pass in on $ext_if2 reply-to ( $ext_if2 $ext_if2_gw ) inet proto tcp from any to $ext_if2 port 25 flags S/SA keep state
больше всего я запутался в том, НА КАКИХ ЭТАПАХ НУЖНО ПРИМЕНЯТЬ route-to и reply-to..??
Что мне нужно изменить, чтобы независимо от значения default gateway 25ый порт внутри сети был виден на обоих внешних IP ?