люди добрые подскажите как мне на freebsd имея ДВА маршрута на провайдеров А и Бэ
для одних процессов сделать дефолтным маршрут на провайдера А
а для других - Бэ...в частности для natd и вообще чтоб дефолтом был маршрут А
а для squid, sendmail - маршрут Бэ
>люди добрые подскажите как мне на freebsd имея ДВА маршрута на провайдеров
>А и Бэ
>для одних процессов сделать дефолтным маршрут на провайдера А
>а для других - Бэ...
>
>в частности для natd и вообще чтоб дефолтом был маршрут А
>а для squid, sendmail - маршрут БэНикак. _Процессы_ не видны пакетным фильтрам.
Видны UID'ы и GID'ы, но сейчас этот код NON-MPSAFE.
Лучше всего сделать так, чтобы source address у исходящих от natd пакетов был от провайдера A, а у исходящих от squid и sendmail пакетов -- от провайдера B.
Ну, а как разрулить в разные дырки траффик с разными source address'ами, писалось три тыщщи раз -- это FBR. Firewall-based Routing.
>Ну, а как разрулить в разные дырки траффик с разными source address'ами,
>писалось три тыщщи раз -- это FBR. Firewall-based Routing.А чем это отличается от PBR (policy-based routing)?
Интересуюсь потому, что аббревиатуру FBR встречаю первый раз.
>>Ну, а как разрулить в разные дырки траффик с разными source address'ами,
>>писалось три тыщщи раз -- это FBR. Firewall-based Routing.
>
>А чем это отличается от PBR (policy-based routing)?
>Интересуюсь потому, что аббревиатуру FBR встречаю первый раз.Видимо тем, что реализуется средствами фаервола ;)
>>>Ну, а как разрулить в разные дырки траффик с разными source address'ами,
>>>писалось три тыщщи раз -- это FBR. Firewall-based Routing.
>>
>>А чем это отличается от PBR (policy-based routing)?
>>Интересуюсь потому, что аббревиатуру FBR встречаю первый раз.
>
>Видимо тем, что реализуется средствами фаервола ;)Хм.
PBR он и есть PBR, какая разница какими средствами реализуется.
>Лучше всего сделать так, чтобы source address у исходящих от natd пакетов
>был от провайдера A, а у исходящих от squid и sendmail
>пакетов -- от провайдера B.ох чтото я запутался...
Правильно ли я понял? Вы предлагаете:
1. в squid прописать tcp_outgoing_address <ip смотрящий на второстепенного прова>
2. поднять еще одного natd на другом порту
3. в ipfw дополнительно дивертить пакеты с отого ip на интерфейс второго прова?правильно?
или я совсем сильно запутался? :-)
>ох чтото я запутался...
>Правильно ли я понял? Вы предлагаете:
>1. в squid прописать tcp_outgoing_address <ip смотрящий на второстепенного прова>
>2. поднять еще одного natd на другом порту
>3. в ipfw дополнительно дивертить пакеты с отого ip на интерфейс второго
>прова?
>
>правильно?
>или я совсем сильно запутался? :-)На мой взгляд первый пункт лишний.
Я делал так примерно так:/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}возможны ошибки, проверить теперь неначем :)