Freebsd 8 + 2 провайдера + ipfw + сервисы

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
suspender
сержант
Сообщения: 160
Зарегистрирован: 2007-11-19 10:47:09

Freebsd 8 + 2 провайдера + ipfw + сервисы

Непрочитанное сообщение suspender » 2011-03-16 11:16:41

Есть тача с 3 сетевухами, 2 из них смотрят в разные интернеты, одна в локалку.
Нужно сделать, чтобы nginx и openvpn отвечали через тот инет, через который пришёл запрос.

Как кошернее всего это сделать ?
1. Забить на ipfw, заботать pf и использовать конструкции reply-to (Кстати, действительно ли это поможет ?)
2. Запускать по ещё одному экземпляру nginx и openvpn с setfib 1 и немного другими конфигами ? (Кстати, как это сделать грамотнее ? через rc.conf + rc-скрипт, мб статья есть или обсуждение ? )
3. Всё таки средствами ipfw как то можно хитро отлавливать и форвардить эти вещи, пускай даже только конкретно openvpn и nginx ? (_Как_ это делается ?)
Конструкциями вида

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

$ipfwCmd add 200 setfib 1 ip from any to me in recv $ifext1
$ipfwCmd add 202 setfib 0 ip from any to me in recv $ifext2
я добился только того, что машина стала отвечать на пинги по обоим своим айпишникам. nginx и openvpn упорно продолжают отвечать через default route

4. Какой то другой вариант ?

ps. openvpn использует udp и стандартный порт.
Последний раз редактировалось f_andrey 2011-03-16 11:24:39, всего редактировалось 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/

терминус_
проходил мимо

Re: Freebsd 8 + 2 провайдера + ipfw + сервисы

Непрочитанное сообщение терминус_ » 2011-03-16 12:16:26

ариведенная вами конструкция вряд ли делает то о чем вы говорите.

сейчас на связке ipfw + fwd + keep-state такого не сделать из-за бага в ipfw (есть pr, но на него нет реакции разрабов).

Я тут недавно подсел на ng_nat - там в нем есть функционал proxy с которым я хочу поиграться :smile: Если вам не горит, то подождите пару дней - я проверю работу связки keep-state + ng_nat proxy.

AzureZ
мл. сержант
Сообщения: 124
Зарегистрирован: 2007-11-06 17:07:27
Откуда: Москва

Re: Freebsd 8 + 2 провайдера + ipfw + сервисы

Непрочитанное сообщение AzureZ » 2011-03-16 13:02:40

suspender писал(а): 1. Забить на ipfw, заботать pf и использовать конструкции reply-to (Кстати, действительно ли это поможет ?)
reply-to поможет

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

Re: Freebsd 8 + 2 провайдера + ipfw + сервисы

Непрочитанное сообщение suspender » 2011-03-20 1:33:51

reply-to действительно помог.
Кстате, что можно почитать про FreeBSD pf кроме мана ? (Чтобы немного поподробнее разжёвано было). Я почти прочел pf-faq.pdf с сайта openbsd - но там для pf из 4.7, и в примерах даже синтаксис совершенно другой, практически ничего общего с синтаксисом из примеров в имеющихся на этом сайте (lissyara.su) статьях.

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

Re: Freebsd 8 + 2 провайдера + ipfw + сервисы

Непрочитанное сообщение suspender » 2011-03-21 1:37:30

Сам вопрос задал - сам и отвечу. Нужно брать pf-faq41.pdf из папки /pub/OpenBSD/doc/ любого ихнего зеркала. (Сам я до этого дошёл не сразу, а только после того как изучил pf-faq на сайте OpenBSD (для 4.7) и стал изучать местные статьи на тему. Поразило кардинальное отличие синтаксиса. Оно реально имеет место быть. Также механизмы различаются)

Аватара пользователя
DarkAGeS
мл. сержант
Сообщения: 75
Зарегистрирован: 2009-05-30 14:07:28

Re: Freebsd 8 + 2 провайдера + ipfw + сервисы

Непрочитанное сообщение DarkAGeS » 2011-04-20 4:11:44

up
терминус_
наковырял что-нить?)

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

Re: Freebsd 8 + 2 провайдера + ipfw + сервисы

Непрочитанное сообщение kfil » 2011-09-04 13:04:13

следующая конструкция будет работать если обновить систему на текущий момент до 8-stable
http://www.freebsd.org/cgi/query-pr.cgi ... 0&cat=kern

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

$ipfwCmd add 200 setfib 1 ip from any to me in recv $ifext1 keep-state
$ipfwCmd add 202 setfib 0 ip from any to me in recv $ifext2 keep-state

Аватара пользователя
DarkAGeS
мл. сержант
Сообщения: 75
Зарегистрирован: 2009-05-30 14:07:28

Re: Freebsd 8 + 2 провайдера + ipfw + сервисы

Непрочитанное сообщение DarkAGeS » 2011-09-04 17:13:43

о, спасибо, надо будет попробовать. а в 9beta1 это тоже работает или таки нужен 8 stable, не в курсе?

Аватара пользователя
kfil
проходил мимо
Сообщения: 1
Зарегистрирован: 2011-09-04 13:05:47

Re: Freebsd 8 + 2 провайдера + ipfw + сервисы

Непрочитанное сообщение kfil » 2011-09-11 17:59:26

предыдущий мой пост неверен, сказалась чистота эксперимента..
рабочий пример следующий (аналогичен http://nuclight.livejournal.com/124348.html)

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

$ipfwCmd add 200 skipto 400 tag 1 ip from any to me in recv $ifext1 keep-state
$ipfwCmd add 300 skipto 400 tag 2 ip from any to me in recv $ifext2 keep-state
$ipfwCmd add 400 allow in { tagged 1 or tagged 2 }
$ipfwCmd add 500 fwd $gw_ifext1 tagged 1
$ipfwCmd add 600 fwd $gw_ifext2 tagged 2
работает при наложенном патче примененном в 8 Stable
c setfib аналогичная схема не работает так как он не меняет xmit адрес шлюза назначения пакетов, который они получили выйдя из сервисов запущенных обычно в setfib 0
nuclight писал(а):Перед запуском файрвола на out-проходе выполняется просмотр таблицы
маршрутизации, интерфейс сообщается файрволу в oif, который проверяет xmit.
В текущей реализации fwd его не меняет, более того, fwd тут же делает allow
(немедленный возврат из файрвола), чтобы обойти проблему изменения xmit для
остальных правил. Причем, fwd на in-проходе его также НЕ изменит
PS
подобная тема уже обсуждалась
DarkAGeS писал(а):о, спасибо, надо будет попробовать. а в 9beta1 это тоже работает или таки нужен 8 stable, не в курсе?
не знаю, в 100й раз убеждаюсь что всё надо пробовать .. )