MAD Опубликовано 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 В чем грабли? Что не так? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 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+) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
MAD Опубликовано 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 отправлять не хочет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Zohan Опубликовано 13 апреля, 2011 (изменено) · Жалоба pass in on $int_if2 route-to ($ext_if2 айпишнег_ext_if2) from <nat_user2> to any Изменено 13 апреля, 2011 пользователем Zohan Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 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 входящего трафика. Что больше нравится. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 14 апреля, 2011 · Жалоба В нете были примеры с объяснением на рукосском языке, аж чуть ли не с 2009 года или раньше. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...