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

freebsd и 2 канала провайдера

Добавлено: 2014-12-23 7:27:10
Гость
доброе утро. Есть freebsd в роли роутера (pf) и 2 провайдера. В сети в основном освещается балансировка исходящего канала через 2-х провайдеров (route-to, reply-to) , мне же всего лишь необходимо при пропадании основного канала интернета зайти удаленно по ssh на сервер, поменять в rc.conf default gateway и дать 2 команды:

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

/etc/rc.d/netif restart && /etc/rc.d/routing restart
Кто-нибудь знает как это можно удобно сделать?
Знаю, что можно написать костыль пингующий шлюз/какой-нибудь внешний сервер и переключать канал, но хочется более элегантного решения.

Re: freebsd и 2 канала провайдера

Добавлено: 2014-12-23 10:50:50
Neus
в основе любого "элегантного" решения будет лежать алгоритм: если нет связи - переключаем канал.
т.о. "костыль пингующий шлюз/какой-нибудь внешний сервер и переключать канал" ничем не отличается от любого другого "элегантного костыля"

Re: freebsd и 2 канала провайдера

Добавлено: 2014-12-23 12:09:23
Гость
мне не требуется автоматом переключать канал, достаточно сделать это руками.
Мысль такая - пакет, пришедший по одному из каналов, который не является основным, отправить не через шлюз по умолчанию, как предполагает таблица маршрутизации, а через тот же интерфейс с указанием шлюза для этого интерфейса.
Как понимаю для этого надо PBR, но в сети нашел лишь примеры для исходящего трафике с локальной сети.

Re: freebsd и 2 канала провайдера

Добавлено: 2014-12-25 10:53:51
Гость
Чтобы работал второй канал при default route установленном на первый (это чтобы можно было "зайти удаленно"), надо минимум иметь в правилах ipfw:

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

fwd $gateway_isp2 src-ip $ip_isp2 out not via $if_isp2
Дальше

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

route delete default; route add default $gateway_isp2