MAD Posted April 12, 2011 Posted April 12, 2011 Хелп, зашел в тупик. Нужно поднять 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 В чем грабли? Что не так? Вставить ник Quote
st_re Posted April 12, 2011 Posted April 12, 2011 А где указано что сеть 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+) Вставить ник Quote
MAD Posted April 13, 2011 Author Posted April 13, 2011 я это указывал с помощью макросов в строках: 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 отправлять не хочет. Вставить ник Quote
Zohan Posted April 13, 2011 Posted April 13, 2011 (edited) pass in on $int_if2 route-to ($ext_if2 айпишнег_ext_if2) from <nat_user2> to any Edited April 13, 2011 by Zohan Вставить ник Quote
st_re Posted April 13, 2011 Posted April 13, 2011 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 входящего трафика. Что больше нравится. Вставить ник Quote
Ivan_83 Posted April 14, 2011 Posted April 14, 2011 В нете были примеры с объяснением на рукосском языке, аж чуть ли не с 2009 года или раньше. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.