Страница 1 из 1

pf + rdr + 2а провайдера

Добавлено: 2008-06-27 14:32:34
lodErunnEr
Есть гейт под управлением FreeBSD 6.3. C 3мя интерфейсами:

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
естественно не хочет т.к. обратный пакет долбится в default gateway через $ext_if_1, а не в gateway второго провайдера.
Гугл говорит, что данная проблема более, чем решаема при помощи 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
В итоге я совсем запутался. от логов tcpdump-a и pflog уже крыша едет.. постоянно кажется, что вот чуть-чуть и въеду ... а нифига.....
больше всего я запутался в том, НА КАКИХ ЭТАПАХ НУЖНО ПРИМЕНЯТЬ route-to и reply-to..??

Что мне нужно изменить, чтобы независимо от значения default gateway 25ый порт внутри сети был виден на обоих внешних IP ?

Re: pf + rdr + 2а провайдера

Добавлено: 2008-06-27 14:40:11
paradox
внутрення сеть небось еще серая
а два прова с белыми айпи
нат поидеи тоже нужен


я бы эту проблему решил гараздо проще
bounce на оба интерфейса и все
и никакой pf rdr ненужен

Re: pf + rdr + 2а провайдера

Добавлено: 2008-06-27 14:46:17
lodErunnEr
paradox писал(а):внутрення сеть небось еще серая
а два прова с белыми айпи
нат поидеи тоже нужен


я бы эту проблему решил гараздо проще
bounce на оба интерфейса и все
и никакой pf rdr ненужен
а по-подробнее про bounce?

Re: pf + rdr + 2а провайдера

Добавлено: 2008-06-27 14:54:12
paradox

Код: Выделить всё

cd /usr/ports/net/bounce
помоему там
если что сделаете поиск в индекс

Re: pf + rdr + 2а провайдера

Добавлено: 2008-06-27 15:11:26
lodErunnEr
paradox писал(а):

Код: Выделить всё

cd /usr/ports/net/bounce
помоему там
если что сделаете поиск в индекс
хм.. а чо.. нормально.. только мана я не нашел у порта... =( а ты его используешь вообще? нормально работает? может слушать на 2ух инетрфейсах?

Re: pf + rdr + 2а провайдера

Добавлено: 2008-06-27 15:19:55
lodErunnEr
во.. еще нашел такую штуку rinetd называется.. у нее даже man есть. кто-нибудь пробывал ?? как ведет себя?

Re: pf + rdr + 2а провайдера

Добавлено: 2008-06-27 15:30:37
paradox
когда был админом юзал
rdp прокидывал
потому как роутов было дофига
аплинков тоже
такая каша была
что проще было bounce повесить и все

а какой там ман?

Код: Выделить всё

bounce -a айпи_на_котором_слушает -p порт_который_слушает айпи_на_кторый_прокидывать порт_на_который_прокидывать

Re: pf + rdr + 2а провайдера

Добавлено: 2008-06-27 15:38:46
lodErunnEr
хотя ответ от внутреннего сервака будет долбиться ведь в default gateway шлюза.. так что скорее всего не прокатит

Re: pf + rdr + 2а провайдера

Добавлено: 2008-06-27 15:46:38
paradox
нет
все будет работать
вообще учите мат часть =)

Re: pf + rdr + 2а провайдера

Добавлено: 2008-06-27 16:21:35
lodErunnEr
paradox писал(а):нет
все будет работать
вообще учите мат часть =)
спасибо.. попробую.