Jump to content

Recommended Posts

Posted

Хелп, зашел в тупик. Нужно поднять 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

 

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

Posted

А где указано что сеть 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+)

Posted

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

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 отправлять не хочет.

Posted

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 входящего трафика. Что больше нравится.

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...