The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Policy Based Routing на основе PF"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Policy Based Routing на основе PF"  
Сообщение от Sam email(??) on 28-Дек-05, 16:58 
Настроил PBR , используя статью :

http://www.opennet.ru/base/net/bsd_pbr_route.txt.html

Можно ли настроить PBR , используя вместо IPFW PF ?
Поделитесь опытом , пожалуйста .

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Policy Based Routing на основе PF"  
Сообщение от zedi email(??) on 28-Дек-05, 17:20 
>Настроил PBR , используя статью :
>
>http://www.opennet.ru/base/net/bsd_pbr_route.txt.html
>
>Можно ли настроить PBR , используя вместо IPFW PF ?
>Поделитесь опытом , пожалуйста .

В Pf так же как и в ip-filter есть возможность роутить ракеты на шлюз по принуждению за счёт route-to и при наличии net.inet.ip.forwarding=1
почитай на PF сайте документацию на тему "Load Balance Outgoing Traffic"
там возможностей по больше будет чем в IPFW

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Policy Based Routing на основе PF"  
Сообщение от Sam email(??) on 28-Дек-05, 17:41 
>>Настроил PBR , используя статью :

>
>В Pf так же как и в ip-filter есть возможность роутить ракеты
>на шлюз по принуждению за счёт route-to и при наличии net.inet.ip.forwarding=1
>
>почитай на PF сайте документацию на тему "Load Balance Outgoing Traffic"
>там возможностей по больше будет чем в IPFW


Прочитал .


pass in on $int_if route-to \
    { ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin \
    proto tcp from $lan_net to any flags S/SA modulate state
#  load balance outgoing udp and icmp traffic from internal network
pass in on $int_if route-to \
    { ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin \
    proto { udp, icmp } from $lan_net to any keep state

Эти правила , насколько понимаю , включают балансировку между двумя
провайдерами , а как быть , если нужно просто направить все пакеты из
$int_net1 на $gw1 , а из $int_net2 на $gw2 ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Policy Based Routing на основе PF"  
Сообщение от Запуниди Сергей email on 23-Авг-07, 20:59 
>Эти правила , насколько понимаю , включают балансировку между двумя
>провайдерами , а как быть , если нужно просто направить все пакеты
>из
>$int_net1 на $gw1 , а из $int_net2 на $gw2 ?

Я решал такую же проблему. Нужно было сделать NAT из внутренней сети к двум разным провайдерам. Сделать так чтобы всё шло правильным маршрутом автоматически не получилось. Ведь действительно как роутер должен угадывать какому из двух провайдеров сейчас отправлять пакет?
Поэтому работает такой подход:
Делаем NAT:
nat on $proc from $internal_net to any -> ($proc)
Теперь нужно сделать чтобы это шло через нужный шлюз, а не тот, что указан в таблице роутинга:
pass in quick on $internal from $internal_net to $internal
pass in on $internal route-to ($proc $proc_gw) from $internal_net to any
Первая строчка нужна чтобы связь с самим роутером не была потеряна. Вторая строчка говорит, что всё из внутренней сети должно идти через шлюз $proc_gw.
Вот объявления переменных:
corbina_tun = "tun0"
corbina_loc = "xl0"
proc = "fxp0"
internal = "vr0"
corbina_tun_gw = "Unknown"
corbina_loc_gw = "10.83.0.17"
proc_gw = "217.117.116.129"
internal_net = "vr0/29"

Если нужно теперь отправить что-то через второй шлюз, то надо дописать правила на те случаи когда нужно пользоваться вторым шлюзом. Эти правила должны быть и для NAT и для pass in .. route-to .....

Далее идут непрверенные мысли:
Возможно автоматически всё можно сделать строчками типа вот этих:
pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 \
   to any
pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 \
   to any
которые я взял из http://www.openbsd.org/faq/pf/pools.html. Но эти строчки ловят идущие не туда пакеты и направляют их куда надо (я так предполагаю), а надо напрямую написать правила pass out для одного и того же интерфейса типа:
pass out on $ext_if1 route-to ($ext_if1 $ext_gw1) from $ext_if1 \
   to any
pass out on $ext_if2 route-to ($ext_if2 $ext_gw2) from $ext_if2 \
   to any
Эти строчки отличаются от предыдущих!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру