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

FreeBSD и 2 ISP

Добавлено: 2013-10-10 9:54:29
feo85
Здравствуйте!

Имеется Web сервер с FreeBSD 8.2 и PF, он подключен к 2-м разным провайдерам и имеет 2 разных внешних ip (и соответственно 2 разных шлюза для этих ip).

Как сделать так, чтоб сервер был ОДНОВРЕМЕННО доступен по обоим ip. Т.е. если пакет приходит на ext_if_0, то и ответ идет с ext_if_0, а если приходит на ext_if_1 - то ответ идет с ext_if_1. На данный момент получается так, что он доступен только по интерфейсу для которого прописан default gateway.

Пробовал сделать средствами PF как советуют, что то а-ля:

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

pass out quick route-to ($ext_if_0 $ext_gw_0) from $ext_if_0 to any keep state
pass out quick route-to ($ext_if_1 $ext_gw_1) from $ext_if_1 to any keep state
но это результатов никаких не дало.

Заранее спасибо за ответы.

Re: FreeBSD и 2 ISP

Добавлено: 2013-10-10 10:43:39
rayder
пример из гугла.

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

ext_if_a="rl0"
ext_if_b="vr0"
ext_gw_a="x.x.x.161"
ext_gw_b="x.x.x.253"

#Normalization: scrub incoming packets
scrub in all

# pass traffic on the loopback interface in either direction
pass quick on lo0 all
# spoofing
antispoof quick for $ext_if_a inet

#Симметричная маршрутизация: (если пакет пришел из канала A, ответ пойдет
#через канал A независимо от default route).
pass in quick on $ext_if_a reply-to ($ext_if_a $ext_gw_a) keep state
pass in quick on $ext_if_b reply-to ($ext_if_b $ext_gw_b) keep state

pass in all
pass out all
PF в ядре или модулем?

Re: FreeBSD и 2 ISP

Добавлено: 2013-10-10 11:07:50
feo85
Да. Действительно правильный вариант оказался такой:

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

pass in quick on $ext_if_0 reply-to ($ext_if_0 $ext_gw_0) from any to $ext_server_ip_0
pass in quick on $ext_if_1 reply-to ($ext_if_1 $ext_gw_1) from any to $ext_server_ip_1
Огромное спасибо!