Перейти к содержимому
Калькуляторы

Прошу помочь PF Freebsd

Хелп, зашел в тупик. Нужно поднять 2 ната с помощью pf на freebdsd 8.0. Нужно направить одну подсеть в один канал, другую подсеть в другой канал, и что б первая подсеть видела ресурсы второго канала. Для начала просто пытаюсь пустить одну сеть и один канал, другую в другой. PF подключал как модуль.

 

rc.conf:

ifconfig_em0="172.16.1.230/24"
ifconfig_em1="192.168.1.10/24"
ifconfig_em2="10.10.10.2/24"
defaultrouter="172.16.1.1"
hostname="gateway"
sshd_enable="YES"
named_enable="YES"
gateway_enable="YES"
pf_enable="YES"
pflog_enable="YES"

 

 

pf.conf:

int_if="em1"
ext_if="em0"
ext_if2="em2"
ext_gw="172.16.1.1"
ext_gw2="10.10.10.1"
table <nat_user1> persist {192.168.1.0/24}
table <nat_user2> persist {192.168.2.0/24}
nat on $ext_if inet from <nat_user1> to any -> ($ext_if)
nat on $ext_if2 inet from <nat_user2> to any -> ($ext_if2)
pass out route-to ($ext_if 172.16.1.1) inet from ($ext_if) to any
pass out route-to ($ext_if2 10.10.10.1) inet from ($ext_if2) to any

 

В чем грабли? Что не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А где указано что сеть 192.168.1.0/24 должна пойти в em0 а 192.168.2.0/24 в em2 ? Судя по тому, что defaultrouter="172.16.1.1", то все пакеты поедут в em0 и правило

 

nat on $ext_if2 inet from <nat_user2> to any -> ($ext_if2)

 

не отработает никогда (кроме как, если трафик поедет в 172.16.1.0/24). сответсвтенно до pass out тоже не доедет....

 

Я бы, наверное, попробовал сделать 2 таблицы маршрутизации, с разными дефолтами и на входе пакеты распихал по ним, в зависимости от срц.. (для freebsd 8+)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я это указывал с помощью макросов в строках:

nat on $ext_if inet from <nat_user1> to any -> ($ext_if)

nat on $ext_if2 inet from <nat_user2> to any -> ($ext_if2)

А почему оно его не отправит? Сколько манов перечитал то написано что должно работать. Сейчас оправляет сеть <nat_user1> через 172.16.1.1, а сеть <nat_user2> через 10.10.10.1 отправлять не хочет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

pass in on $int_if2 route-to ($ext_if2 айпишнег_ext_if2) from <nat_user2> to any

Изменено пользователем Zohan

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

MAD

 

Еще раз, кто трафик от сети nat_user2 заставит быть на "on $ext_if2" чтобы второе Ваше нат правило сработало. почему этот трафик должен попасть на em2, если в таблице маршрутизации она вываливает через em0?

 

Если же поменять на

 

nat on $ext_if inet from <nat_user2> to any -> ($ext_if2) тогда матчиться оно будет и запрос натиться будет.. ответ не будет, потому что он приедет через em2. нужно засатавить трафик от nat_user2 вылитать в мир через em2 ДО pf. Или как написал Zohan или через setfib входящего трафика. Что больше нравится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В нете были примеры с объяснением на рукосском языке, аж чуть ли не с 2009 года или раньше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.