URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 75694
[ Назад ]

Исходное сообщение
"freebsd и ДВА 'дефолтных' маршрута"

Отправлено blackcat , 15-Авг-07 16:59 
люди добрые подскажите как мне на freebsd имея ДВА маршрута на провайдеров А и Бэ
для одних процессов сделать дефолтным маршрут на провайдера А
а для других - Бэ...

в частности для natd и вообще чтоб дефолтом был маршрут А
а для squid, sendmail - маршрут Бэ


Содержание

Сообщения в этом обсуждении
"freebsd и ДВА 'дефолтных' маршрута"
Отправлено Andrew Kolchoogin , 15-Авг-07 22:17 
>люди добрые подскажите как мне на freebsd имея ДВА маршрута на провайдеров
>А и Бэ
>для одних процессов сделать дефолтным маршрут на провайдера А
>а для других - Бэ...
>
>в частности для natd и вообще чтоб дефолтом был маршрут А
>а для squid, sendmail - маршрут Бэ

Никак. _Процессы_ не видны пакетным фильтрам.
Видны UID'ы и GID'ы, но сейчас этот код NON-MPSAFE.
Лучше всего сделать так, чтобы source address у исходящих от natd пакетов был от провайдера A, а у исходящих от squid и sendmail пакетов -- от провайдера B.
Ну, а как разрулить в разные дырки траффик с разными source address'ами, писалось три тыщщи раз -- это FBR. Firewall-based Routing.


"freebsd и ДВА 'дефолтных' маршрута"
Отправлено Ilia Kuliev , 16-Авг-07 12:11 
>Ну, а как разрулить в разные дырки траффик с разными source address'ами,
>писалось три тыщщи раз -- это FBR. Firewall-based Routing.

А чем это отличается от PBR (policy-based routing)?
Интересуюсь потому, что аббревиатуру FBR встречаю первый раз.


"freebsd и ДВА 'дефолтных' маршрута"
Отправлено MoHaX , 16-Авг-07 13:15 
>>Ну, а как разрулить в разные дырки траффик с разными source address'ами,
>>писалось три тыщщи раз -- это FBR. Firewall-based Routing.
>
>А чем это отличается от PBR (policy-based routing)?
>Интересуюсь потому, что аббревиатуру FBR встречаю первый раз.

Видимо тем, что реализуется средствами фаервола ;)


"freebsd и ДВА 'дефолтных' маршрута"
Отправлено Ilia Kuliev , 16-Авг-07 13:32 
>>>Ну, а как разрулить в разные дырки траффик с разными source address'ами,
>>>писалось три тыщщи раз -- это FBR. Firewall-based Routing.
>>
>>А чем это отличается от PBR (policy-based routing)?
>>Интересуюсь потому, что аббревиатуру FBR встречаю первый раз.
>
>Видимо тем, что реализуется средствами фаервола ;)

Хм.
PBR он и есть PBR, какая разница какими средствами реализуется.


"freebsd и ДВА 'дефолтных' маршрута"
Отправлено blackcat , 16-Авг-07 22:34 
>Лучше всего сделать так, чтобы source address у исходящих от natd пакетов
>был от провайдера A, а у исходящих от squid и sendmail
>пакетов -- от провайдера B.

ох чтото я запутался...
Правильно ли я понял? Вы предлагаете:
1. в squid прописать tcp_outgoing_address <ip смотрящий на второстепенного прова>
2. поднять еще одного natd на другом порту
3. в ipfw дополнительно дивертить пакеты с отого ip на интерфейс второго прова?

правильно?
или я совсем сильно запутался? :-)



"freebsd и ДВА 'дефолтных' маршрута"
Отправлено Serjant , 17-Авг-07 09:53 
>ох чтото я запутался...
>Правильно ли я понял? Вы предлагаете:
>1. в squid прописать tcp_outgoing_address <ip смотрящий на второстепенного прова>
>2. поднять еще одного natd на другом порту
>3. в ipfw дополнительно дивертить пакеты с отого ip на интерфейс второго
>прова?
>
>правильно?
>или я совсем сильно запутался? :-)

На мой взгляд первый пункт лишний.


"freebsd и ДВА 'дефолтных' маршрута"
Отправлено Serjant , 17-Авг-07 10:17 
Я делал так примерно так:

/usr/local/etc/rc.firewall.sh:

#internet interface 1
if_inet1='tl0'
inet1='xxx.xxx.xxx.xxx'
gate1='xxx.xxx.xxx.xxx'

#internet interface 2
if_inet2='ed0'
inet2='xxx.xxx.xxx.xxx'
gate2='xxx.xxx.xxx.xxx'

#Port divert
port_divert1='8672'
port_divert2='8674'


natd -a ${inet2} -p ${port_divert2} -f /etc/natd.conf
natd -a ${inet1} -p ${port_divert1} -f /etc/natd.conf

#Divert1
    ${ipfw} add 3000 divert ${port_divert1} all from ${mail,icq} to any
    ${ipfw} add 3100 fwd ${gate1} all from ${inet1} to any
    ${ipfw} add 3200 divert ${port_divert1} all from any to ${mail,icq} in via ${if_inet1}

#Divert2
    ${ipfw} add 3000 divert ${port_divert2} all from ${proxy} to any
    ${ipfw} add 3100 fwd ${gate2} all from ${inet2} to any
    ${ipfw} add 3200 divert ${port_divert2} all from any to ${proxy} in via ${if_inet2}

возможны ошибки, проверить теперь неначем :)