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

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
EARL
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-05-24 9:05:18
Откуда: Тамбов

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

Непрочитанное сообщение EARL » 2010-06-01 14:44:30

Есть два аплинка
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.

Хостинговая компания 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/

Аватара пользователя
EARL
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-05-24 9:05:18
Откуда: Тамбов

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

Непрочитанное сообщение EARL » 2010-06-04 20:58:32

Кто подскажет как работает такая конструкция

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

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

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

Аватара пользователя
iZEN
ст. лейтенант
Сообщения: 1089
Зарегистрирован: 2007-09-15 16:45:26
Контактная информация:

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

Непрочитанное сообщение iZEN » 2010-06-04 23:38:22

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.
GNU/Linux — это не Unix и даже никогда им не был, и, что самое смешное, никогда им не станет — GNU's Not Unix

Аватара пользователя
EARL
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-05-24 9:05:18
Откуда: Тамбов

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

Непрочитанное сообщение EARL » 2010-06-04 23:42:35

Ну по логике так, но у меня это не работает почему-то. Возможно из-за того, что на обоих интерфейсах ext1_if и ext2_if включен nat