Шлюз между тремя сетями. Нужна помощь.

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
slb51
мл. сержант
Сообщения: 126
Зарегистрирован: 2009-10-27 12:04:47
Откуда: Нижний Новгород

Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение slb51 » 2011-10-28 8:05:29

Ситуация такая. Имеется локальная сеть 192.168.0.0/24 и два шлюза провайдеров : 10.20.30.1 и 80.90.100.1. Задача в том, чтобы в случае падения одного из провайдеров локалка автоматически переключалась на другого. Подключение осуществляется через IPFW на FreeBSD 8.2. Сейчас всё работает с провайдером 10.20.30.1. Как подвязать туда 80.90.100.1? Думаю, что прописать два шлюза на фряхе нельзя, а как надо сделать - не знаю. Прошу помощи.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

mak_v_
проходил мимо

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение mak_v_ » 2011-10-28 9:39:16

Ну что ж Вам так тяжело по форуму поискать? Тема обмывалась стопицот раз. И гугл кишит руководствами

Аватара пользователя
slb51
мл. сержант
Сообщения: 126
Зарегистрирован: 2009-10-27 12:04:47
Откуда: Нижний Новгород

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение slb51 » 2011-10-28 13:10:43

Это не совсем так. Полно информации о том, как сделать выход в Инет с двух локалок через один шлюз. Это не проблема. А надо наоборот - с одной локалки на двух провайдеров. Да чтобы автоматом выбиралось - через какого именно, если один из них отвалится.

Аватара пользователя
sadchok
сержант
Сообщения: 271
Зарегистрирован: 2011-10-13 10:40:54
Откуда: Алтайский край

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение sadchok » 2011-10-28 13:24:11

slb51 писал(а):Думаю, что прописать два шлюза на фряхе нельзя, а как надо сделать - не знаю. Прошу помощи.
если использовать 2 таблицы маршрутизации то вроде можно
The brain can not be found. Runs the software emulation

Аватара пользователя
slb51
мл. сержант
Сообщения: 126
Зарегистрирован: 2009-10-27 12:04:47
Откуда: Нижний Новгород

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение slb51 » 2011-10-28 13:27:55

Мне бы поподробнее, если можно.

Аватара пользователя
sadchok
сержант
Сообщения: 271
Зарегистрирован: 2011-10-13 10:40:54
Откуда: Алтайский край

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение sadchok » 2011-10-28 13:30:08

The brain can not be found. Runs the software emulation

mak_v_
проходил мимо

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение mak_v_ » 2011-10-28 13:31:43

Все же попробуйте воспользоваться кнопкой поиск - там и решение
http://forum.lissyara.su/search.php?key ... B0+freebsd
ну ещё наводка load ballancing для вашего фаервола

Аватара пользователя
slb51
мл. сержант
Сообщения: 126
Зарегистрирован: 2009-10-27 12:04:47
Откуда: Нижний Новгород

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение slb51 » 2011-10-28 16:11:57

Ну не нахожу я того, что хочется. Там везде фрагментарные советы, а мне бы статью какую почитать. Типа "Открываем крышку системного блока и вставляем туда третий сетевой адаптер .... Ну и т.д." Может я не в том разделе форума вопрос задал. Надо было в "FreeBSD для начинющих".

mak_v_
проходил мимо

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение mak_v_ » 2011-10-28 16:22:08

читать умные книги, фрагментарно и полностью, ставить опыты, просить более опытных коллег за вознаграждение растолковывать и т.д.

Аватара пользователя
slb51
мл. сержант
Сообщения: 126
Зарегистрирован: 2009-10-27 12:04:47
Откуда: Нижний Новгород

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение slb51 » 2011-10-28 18:11:20

Вот я и спрашиваю, что и где по этому поводу порекомендуете почитать.

snorlov
подполковник
Сообщения: 3713
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение snorlov » 2011-10-28 19:41:15

Вы знаете, я даже не могу вам что-то посоветовать, поскольку из ваших сообщений мне понятно, что вы не понимаете разницу между сегментированием локальной сети и резервированием канала в инет,а именно последнее вам и нужно...

Аватара пользователя
slb51
мл. сержант
Сообщения: 126
Зарегистрирован: 2009-10-27 12:04:47
Откуда: Нижний Новгород

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение slb51 » 2011-10-29 18:55:36

Ну в общих чертах мне это представляется так. В первом случае просто ставится ещё один сетевой адаптер и настраивается практически так же, как и первый. С другим IP, конечно. На IPFW для него пишутся дополнительные правила. В настройках же адаптера, который смотри в Инет, ничего не меняется. И шлюз и NAT остаются всё там же. Это если между собой сегменты связывать не надо. Если надо, то об этом есть море информации. А в случае, когда локалка одна, а Инет-канала два, я не знаю, что надо делать и как. Хотя где-то в общих чертах и понимаю, что задача стоит противоположная первой.

telo
рядовой
Сообщения: 21
Зарегистрирован: 2011-07-28 19:18:25

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение telo » 2011-10-29 19:55:35

сделать скрипт, который будет пинговать шлюз провайдера и гугл (например) и при отсутствии того и другого переключать на резервный канал. (route del, route add, ipfw ...)
а при появлении пинга с первого адаптера будет возвращать всё в исходное состояние

Аватара пользователя
slb51
мл. сержант
Сообщения: 126
Зарегистрирован: 2009-10-27 12:04:47
Откуда: Нижний Новгород

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение slb51 » 2011-10-30 14:29:46

сделать скрипт, который будет пинговать шлюз провайдера
Это уже интересно. Т.е. скрипт должен переписать переменные в ipfw.rules? Ну и перезапустить ipfw. Правильно я Вас понял?

Аватара пользователя
sadchok
сержант
Сообщения: 271
Зарегистрирован: 2011-10-13 10:40:54
Откуда: Алтайский край

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение sadchok » 2011-10-31 5:20:02

telo писал(а):сделать скрипт, который будет пинговать шлюз провайдера и гугл (например) и при отсутствии того и другого переключать на резервный канал. (route del, route add, ipfw ...)
а при появлении пинга с первого адаптера будет возвращать всё в исходное состояние
Именно так.
Пишется скрипт который пингует шлюзы провайдеров.
И в зависимоти от результата меняет значение prob от 1 до 0
The brain can not be found. Runs the software emulation

Аватара пользователя
slb51
мл. сержант
Сообщения: 126
Зарегистрирован: 2009-10-27 12:04:47
Откуда: Нижний Новгород

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение slb51 » 2011-10-31 8:22:48

И в зависимоти от результата меняет значение prob от 1 до 0
Поясните, пожалуйста, эту фразу. Скрипт меняет значение prob?

Blacking
мл. сержант
Сообщения: 131
Зарегистрирован: 2007-03-01 10:20:10
Откуда: Томская обл. ЗАТО Северск
Контактная информация:

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение Blacking » 2011-10-31 8:36:32

prob (пров - провайдер) :)
Нет дома на воле,
А значит и адреса нет...

Аватара пользователя
slb51
мл. сержант
Сообщения: 126
Зарегистрирован: 2009-10-27 12:04:47
Откуда: Нижний Новгород

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение slb51 » 2011-10-31 9:15:55

Я понял. Но тут возникли некоторые сомнения насчёт самой идеи. А как провайдер отнесётся к постоянным пингам? Можно, конечно, пинговать с заданной периодичностью. Скрипт начинает разрастаться. А если канал падает, его всё равно надо продолжать пинговать, теперь уже постоянно, в ожидании когда он поднимется. Ещё усложняем скрипт. К тому же скрипт этот должен висеть резидентно для постоянного контроля. А при поднятии канала опять переключаться на него. Всё усложняется чрезмерно. Наверное проще ограничиться скриптом, изменяющим настройки IPFW, а запускать его вручную в случае необходимости. Ведь канал у прова падает не каждый день. А индикатором его падения вместо пинга могут служить возмущённые крики начальства (что, конечно, не очень приятно, зато надёжно).

Аватара пользователя
slb51
мл. сержант
Сообщения: 126
Зарегистрирован: 2009-10-27 12:04:47
Откуда: Нижний Новгород

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение slb51 » 2011-10-31 9:28:37

И ещё вопросик. Как я понимаю, в данной конфигурации надо будет на двух внешних интерфейсах прописать два разных defaultrouter. Windows на такие вещи реагирует отрицательно. А Фряха? Или скриптом надо и rc.conf править и перезапускать?

Аватара пользователя
sadchok
сержант
Сообщения: 271
Зарегистрирован: 2011-10-13 10:40:54
Откуда: Алтайский край

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение sadchok » 2011-10-31 13:42:19

slb51 писал(а):
И в зависимоти от результата меняет значение prob от 1 до 0
Поясните, пожалуйста, эту фразу. Скрипт меняет значение prob?

cmd="/sbin/ipfw"
$cmd add 10 check-state
$cmd add 20 prob 0.5 setfib 0 tcp from 192.168.0.0/16 to not 192.168.0.0/16 setup keep-state
$cmd add 30 setfib 1 tcp from 192.168.0.0/16 to not 192.168.0.0/16 setup keep-state
$cmd add 40 allow all from any to any

Таким образом мы задаем распределение трафика 50/50. Если каналы не равноценные
то нужно выставить процентную весомость этих каналов.

http://solaris.opennet.ru/tips/info/2142.shtml?skip=115
slb51 писал(а):И ещё вопросик. Как я понимаю, в данной конфигурации надо будет на двух внешних интерфейсах прописать два разных defaultrouter. Windows на такие вещи реагирует отрицательно. А Фряха? Или скриптом надо и rc.conf править и перезапускать?

Задаем маршруты по умолчанию:

setfib 0 route add default 1.0.1.1 # таблица по умолчанию
setfib 1 route add default 1.1.1.1 # новая таблица
The brain can not be found. Runs the software emulation

Blacking
мл. сержант
Сообщения: 131
Зарегистрирован: 2007-03-01 10:20:10
Откуда: Томская обл. ЗАТО Северск
Контактная информация:

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение Blacking » 2011-11-01 8:08:20

Нет дома на воле,
А значит и адреса нет...

suspender
сержант
Сообщения: 160
Зарегистрирован: 2007-11-19 10:47:09

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение suspender » 2011-11-02 15:51:02

Идея, как уже было сказано, такова:
2 таблицы маршрутизации + скрипт мониторящий провов + правило назначающее setfib перед заворачиванием в нат, как только наступает ситуация что нада сменить провайдера - меняется номер таблицы маршрутизации в вышеупомянутом правиле (осуществить можно кучей способов)

При использовании ipfw в такой мультиинтернетной конфигурации есть один подводный камень. Все сервисы самого шлюза (ssh, apache - ну короче все) извне будут доступны только на том айпишнеге - который соответствует нулевой таблице маршрутизациию ( т.е. принимать запросы оно будет на всех интерфейсах - а отвечать полюбому будет пытаться через дефолт гэвэ нулевой таблицы маршрутизации). По крайней мере так обстояло ещё с полгода назад - ща мб ситуация изменилась.
В pf для разруливания таких проблем есть конструкция reply-to

Аватара пользователя
slb51
мл. сержант
Сообщения: 126
Зарегистрирован: 2009-10-27 12:04:47
Откуда: Нижний Новгород

Re: Шлюз между тремя сетями. Нужна помощь.

Непрочитанное сообщение slb51 » 2012-03-03 3:43:20

Все варианты не понравились. Сбои бывают редко, а сервак будет постоянно заниматься проверкой связи. Думаю, будет удачнее вручную отреагировать на вопли юзеров. Но спасибо всем ответившим, узнал много интересного.