IPFW и два маршрута в Интернет

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

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

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

IPFW и два маршрута в Интернет

Непрочитанное сообщение admin_sv » 2014-02-03 16:10:56

Есть два канала в Интернет. Стоит роутер с Freebsd 8.4 на котором вкомпилин ipfw. Нужна помощь в реализации одновременного доступа к роутеру из вне.
Последний раз редактировалось f_andrey 2014-02-07 5:02:28, всего редактировалось 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/

reinover
проходил мимо
Сообщения: 4
Зарегистрирован: 2012-02-08 15:46:51

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение reinover » 2014-02-07 4:33:01

Если хочешь запускать разные приложения\сервисы слушающие разные каналы, то копай в сторону setfib

harmless
лейтенант
Сообщения: 719
Зарегистрирован: 2007-08-23 10:56:51
Откуда: Украина, г. Киев, г. Белая Церковь
Контактная информация:

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение harmless » 2014-02-09 2:30:18

http://forum.lissyara.su/viewtopic.php? ... 4&start=75
Эту тему почитай, там есть мои ответы по данной теме

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение admin_sv » 2014-02-17 17:15:39

Я немного переделаю вопрос, как через pf пустить трафик в 2 канала с сохранением сеанса?
с первым вопросом я почти разобрался, подглядел такой вариант:

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

lan_ip="10.10.10.0/28"
net_1="re0" # 192.168.2.2
net_2="em0" # 10.10.0.2
lan="em1" # 10.10.10.1
out_1="192.168.2.2"
out_2="10.10.0.3"
in_1="10.10.10.1"
gw_1="192.168.2.1"
gw_2="10.10.0.1"

nat on $net_1 from $lan_ip to any -> $net_1
nat on $net_2 from $lan_ip to any -> $net_2

pass in quick from ($net_1:network) tagged EXT_IF_A keep state
pass in quick reply-to ($net_1 $gw_1) tagged EXT_IF_A keep state

pass in quick from ($net_2:network) tagged EXT_IF_B keep state
pass in quick reply-to ($net_2 $gw_2) tagged EXT_IF_B keep state

но правда не пойму как он работает, пакеты где метку получают не пойму.

Предполагаю что можно отслеживать пакеты с флагом S/SA и направлять их в определенный интерфейс и запоминать состояние, после чего все ответы слать в соответствии с состоянием. Распределение организовать за счет probability. Как вы думаете получится? Буду рад помощи.

Аватара пользователя
skeletor
майор
Сообщения: 2508
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение skeletor » 2014-02-19 17:19:51

Получают они метки на входе (pass in ...tagged EXT_IF_*) и на основе этой метки должны уходить через reply-to
Ещё желательно добавить такие правила:

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

pass out route-to ($ext_if_1 $gw_1) inet from ($ext_if_1) keep state
pass out route-to ($ext_if_2 $gw_2) inet from ($ext_if_2) keep state
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение admin_sv » 2014-02-21 11:42:24

я так написал:

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

pass in on $lan route-to ($net_1 $gw_1 ) from $lan_ip to { any, !$in_1 } keep state
tagged EXT_IF_A

в мане написано что этот ключ проверяет ключ, а пишет tag так вот его нет.
и есть вопрос в продолжение темы что даст замена keep state на synproxy state. преследую цель охранения маршрута за сеансом но долгий срок.

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение admin_sv » 2014-02-21 12:17:11

Промежуточный решение найдено. Выглядит так:

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

lan_ip="10.10.10.0/28"
net_1="re0" # 192.168.2.2
net_2="em0" # 10.10.0.3
lan="em1" # 10.10.10.1
out_1="192.168.2.2"
out_2="10.10.0.3"
in_1="10.10.10.1"
gw_1="192.168.2.1"
gw_2="10.10.0.1"

nat on $net_1 from $lan_ip to any -> $net_1
nat on $net_2 from $lan_ip to any -> $net_2

pass in quick from ($net_1:network) tagged EXT_IF_A keep state
pass in quick reply-to ($net_1 $gw_1) tagged EXT_IF_A keep state

pass in quick from ($net_2:network) tagged EXT_IF_B keep state
pass in quick reply-to ($net_2 $gw_2) tagged EXT_IF_B keep state

pass in on $lan route-to ($net_1 $gw_1 ) from $lan_ip to { any, !$in_1 } probability 95% synproxy state
pass in on $lan route-to ($net_2 $gw_2 ) from $lan_ip to { any, !$in_1 } probability 5% synproxy state
keep state приводит к тому что со временем рвется сессия на https и предирчевых к ip клиента сайтах и приложениях. В случае реализации 2 шлюзов правила можно переполовинить относительно default router, пакеты туда идут сами. По результатам тестов выложу точный конфиг.

Аватара пользователя
skeletor
майор
Сообщения: 2508
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение skeletor » 2014-02-21 18:27:14

Действительно.
У вас несколько урезанный вариант этого http://argo-uln.blogspot.com/2008/02/pf ... -62-3.html , поэтому не хватает меток tag для icmp.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение admin_sv » 2014-02-23 16:02:58

Меня icmp не очень волнует, а точнее не нужен он мне пока. Проблема в том чтобы организовать доступ к серверу по любому из внешних каналов, при этом исходящий трафик распределять между каналами (балансировать его).

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение admin_sv » 2014-02-23 17:12:54

У вас несколько урезанный вариант этого http://argo-uln.blogspot.com/2008/02/pf ... -62-3.html , поэтому не хватает меток tag для icmp
В этом примере не то что мне надо, я хочу все сервесы развернуть на обе сетевки. У меня это получилось вот так

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

pass in on $net_1 from any to 10.10.0.2 tag EXT_IF_B keep state
pass in quick reply-to ($net_1 $gw_1) tagged EXT_IF_B keep state
, второй набор правил не указываю так-ка для default rote смысла не вижу, само туда пойдет.

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение admin_sv » 2014-02-23 22:26:24

пакеты разрулил, но есть вопрос: как заставить жить долго динамическое правило. Возникает проблема с авторизацией при смене ip клиента.

Аватара пользователя
skeletor
майор
Сообщения: 2508
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение skeletor » 2014-02-25 15:33:55

Использовать set timeout. Очень неплохо описано здесь http://www.opennet.ru/base/net/pf_optimization.txt.html
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение admin_sv » 2014-03-04 20:09:41

Спасибо, но немного не то. Решение найдено, сейчас тестирую. По результатам тестов отпишу.

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение admin_sv » 2014-03-17 11:49:05

И так тест прошел успешно. Задача была объединить 2+ канала в одну полосу пропускания, при этом пользователь пройдя через конкретный шлюз весел на нем стабильно целый день. Также потом выявили потребность в распределении пользователей по каналам в процентном соотношении и в случае выявления потери соединения на канале новые пользователи туда не попадали, а старые были распределены по рабочим.
lan_ip="10.10.10.0/28"
net_1="re0"
net_2="em0"
lan="em1"
out_1="192.168.2.2"
out_2="10.10.0.3"
in_1="10.10.10.1"
gw_1="192.168.2.1"
gw_2="10.10.0.1"

table <stream_A> persist
table <stream_B> persist
PA="50%"
PB="50%"

nat on $net_1 from $lan_ip to any -> $net_1
nat on $net_2 from $lan_ip to any -> $net_2

pass in on $lan from {$lan_ip !<stream_A> !<stream_B>} to any flags S/SA probability $PA keep state (max-src-conn-rate 1/60, overload <stream_A> flush global)
pass in on $lan from {$lan_ip !<stream_A> !<stream_B>} to any flags S/SA probability $PB keep state (max-src-conn-rate 1/60, overload <stream_B> flush global)

pass in on $lan route-to ($net_2 $gw_2) from <stream_B> to any
pass in on $lan route-to ($net_1 $gw_1) from <stream_A> to any
Указаны только правила реализующие ТЗ. Дальше должно быть два скрипта.
  • 1 - скрипт проверяет наличие канала.
    2 - скрипт по результатам проверки корректирует вес канала(PA= ;PB=;)

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: IPFW и два маршрута в Интернет

Непрочитанное сообщение admin_sv » 2014-03-17 11:57:28

Да еще забыл указать очистки таблиц производятся в 24:00, еще одним скриптом и cron.