Страница 1 из 1

pbr средствами pf

Добавлено: 2010-06-01 14:44:30
EARL
Есть два аплинка
1) ng0 - 1.1.1.1
2) ng1 - 2.2.2.2
Есть внутреняя сеть
vlan3 - 192.168.1.0/24

Нужно несколько хостов во внутренней сети пускать через разные аплинки. Например хост 192.168.1.100 через 2-ой аплинк (ng1 2.2.2.2), хост 192.168.1.150 через 1-ый аплинк (ng0 1.1.1.1). Дефолт роут прописан через 1-ый аплинк (ng0 1.1.1.1). Делаю так

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

ext1_if="ng0"
ext1_gw="1.0.0.1"

ext2_if="ng1"
ext2_gw="2.0.0.1"

int_if="vlan3"

int_net="192.168.1.0/24"

nat on $ext1_if inet from $int_net to any -> ($ext1_if)
nat on $ext2_if inet from $int_net to any -> ($ext2_if)

pass in on $int_if from 192.168.1.0/24 to $int_if
pass in on $int_if route-to ($ext2_if $ext2_gw) from 192.168.1.100 to !($int_if)
В результате трасировка с хоста 192.168.1.150 выглядит так

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

  1    <1 мс    <1 мс    <1 мс  192.168.1.1
  2    14 ms    14 ms    14 ms  1.0.0.1
  ...
А трасировка с хоста 192.168.1.100 выглядит вот так

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

  1    14 ms    14 ms    14 ms  2.0.0.1
  ...
Т.е. в трассе отсутствует наш роутер.
Теперь самое интересное, если с хоста 192.168.1.100 сделать трасировку до 1.1.1.1, то она уходит через 2-ой аплинк (всё по правилам фаервола), а потом делая кольцо через n-ое кол-во хопов доходит до 1.1.1.1 (это правда можно вылечить, добавив пару строк в правила фаервола).

Вообщем route-to работает с одной стороны и правильно, но можно ли избежать пропуска роутера в трассировке?
Хочется, чтобы маршруты были всё таки правильными :smile:

PS С pf только начал разбираться. Всегда пользовался только ipfw.

Re: pbr средствами pf

Добавлено: 2010-06-04 20:58:32
EARL
Кто подскажет как работает такая конструкция

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

pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from 192.168.1.100 to any
$ext_if1 - интерфейс на который указан дефолтный роут
$ext_if2 - интерфейс через который мы должны отправить пакет пришедший с хоста 192.168.1.100

У меня такая конструкция не работает.

Re: pbr средствами pf

Добавлено: 2010-06-04 23:38:22
iZEN
EARL писал(а):Кто подскажет как работает такая конструкция

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

pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from 192.168.1.100 to any
— исходящие пакеты с адресом 192.168.1.100 на интерфейсе $ext_if1 переназначаются на интерффейс $ext_if2 с указанием шлюза $ext_gw2.

Re: pbr средствами pf

Добавлено: 2010-06-04 23:42:35
EARL
Ну по логике так, но у меня это не работает почему-то. Возможно из-за того, что на обоих интерфейсах ext1_if и ext2_if включен nat