Страница 1 из 1

NAT и PF

Добавлено: 2011-10-26 21:29:00
VVereVVolf
Есть у меня два сервера один смотрит в инет второй подключен локально к первому серверу, чтобы инет был на второй машине я ставил на первую natd и в ipfw писал правила dicert natd для маршрутизации адресов. Щас написал правила для PF и решил все переводить на PF, но после этого пропал инет на второй машинке, погуглив понял что можно сделать NAT и через PF, вот пример правил для NAT который я набросал, но что то не работает

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

ext_if = " bce0 " ## внешка 
int_if = " bce1 " ## локалка

set block-policy drop ##сбрасываем соединение грубо
set skip on lo0 ## полностью пропускаем проверку на петле 
set skip on $int_if ## полностью пропускаем проверку на интерфейсе,
set loginterface $ext_if ## включаем логирование на интерфейсе
set optimization normal ## оптимизация

scrub in all ## нормализуем все входящие пакеты на всех интерфейсах
scrub on $ext_if all reassemble tcp

block in log all ## блокируем нахрен

nat on $ext_if from $int_if  to any -> $ext_if ## проброс NAT
pass in on $int_if from $ext_if to any #разрешаем всё из локальной сети 
pass out on $ext_if from $int_if to any keep state  #разрешаем серверу доступ в интернет
но как то не хочет работать....

Re: NAT и PF

Добавлено: 2011-10-26 23:35:59
mak_v_

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

nat on $ext_if from $int_if  to any -> $ext_if ## проброс NAT
чуток не туды, чуть поменяйте, например

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

nat on $ext_if from $int_if:network  to any -> $ext_if

Re: NAT и PF

Добавлено: 2011-10-27 0:44:08
VVereVVolf
Ошибку свою нашел

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

nat on $ext_if from $lan to any -> $ext_if ## проброс NAT
где from не интерфейс нужно указыать, а ip ну или подсеть, с этим разобрался все работает

есть еще вопрос по пробросу портов

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

rdr on $ext_if proto { tcp, udp } from any to $ext_if port 3306 -> 192.168.0.2 ## редирект 3306 на внутрисетевой сервер с БД
Обьясню что оно делает, на второй машине (та что локальна подключена к шлюзу) стоит MYSQL сервер, вот нужно чтоб к нему подключилась через ip первой машины! Это я сделал

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

rdr on $ext_if proto { tcp, udp } from any to $ext_if port 3306 -> 192.168.0.2 ## редирект 3306 на внутрисетевой сервер с БД
nat on $ext_if from $lan to any -> $ext_if ## проброс NAT
Тоесть когда я удаленно подключаюсь к mysql по ip первого сервера pf сам редиректит в локальную машину на нужный сервер! Но есть проблема! я создал доме db1.sitename.com и указал внешний ip первого сервера! Если я через инет лежу к mysql по этому домену то все нормально редиректит, но если я по этому домену буду заходит с первого сервера (шлюза, где стоит сам pf) то почему то редирект не происходит...

Re: NAT и PF

Добавлено: 2011-10-27 8:40:18
mak_v_
ээ батенька, вам бы книжку умную почитать.....вам правило готовое подсовывают, а вы "нашёл".
по поводу "я создал доме", так у вас правило редиректа работает на внешнем интерфейсе а к своей (или своему наверное) доме вы лезите с какого интерфейса.
Тут уже не пройдет "нашёл" - либо на NS настраивать view internal\external , либо правила pf накручивать .

Re: NAT и PF

Добавлено: 2011-10-27 11:22:22
VVereVVolf
Не дописал одну букву! Я говорил за домен

Re: NAT и PF

Добавлено: 2011-10-27 19:04:27
mak_v_
я вам "за домен" и ответил, но даже спасибы не пачул

Re: NAT и PF

Добавлено: 2011-10-27 19:18:12
VVereVVolf
mak_v_ писал(а):я вам "за домен" и ответил, но даже спасибы не пачул
Я вам благодарен! Спасибо! Но целый день провозился но не так и не решил проблему...
должно что то подобное быть, но что то не как не дойдет до меня.
rdr on $ext_if proto { tcp, udp } from any to $ext_if port 3306 -> 192.168.0.2
rdr on $int_if proto { tcp, udp } from 91.204.122.8 to 192.168.0.1 port 3306 -> 192.168.0.2

Re: NAT и PF

Добавлено: 2011-10-27 19:40:27
mak_v_
а у вас с локальной машины с какого интерфейса идет запрос и через какой интерфейс проходит?
from ??? on??? to????
Настройте bind и не стройте граблей...ИМХО, редирект локального трафика кажется каким-то извращением. Чем вас по IP не устраивает? Почему домен и хостнеймі нельзя нормально настроить?

Re: NAT и PF

Добавлено: 2011-10-27 19:43:57
VVereVVolf
mak_v_ писал(а):а у вас с локальной машины с какого интерфейса идет запрос и через какой интерфейс проходит?
from ??? on??? to????
Настройте bind и не стройте граблей...ИМХО, редирект локального трафика кажется каким-то извращением. Чем вас по IP не устраивает? Почему домен и хостнеймі нельзя нормально настроить?
ext_inf уходит в инет, а int_if локальный интерфейс, да мне тоже кажется что локальный редирект это лишняя нагрузка, подскажите на счет bind в какую сторону копать, я так понимаю должно быть две записи типа A, но оно же должно выбирать по какому то правилу что локал, что инет... Заранее спасибо

Re: NAT и PF

Добавлено: 2011-10-27 20:20:19
mak_v_

Re: NAT и PF

Добавлено: 2011-10-27 20:25:00
VVereVVolf
Благодарю! уже читаю я так понял это split DNS

Re: NAT и PF

Добавлено: 2011-10-29 22:36:41
VVereVVolf
Да с помощью split DNS все получилось только в resolv.conf пришлось указать DNS этой же машинки, так как он брал инфу с DNS провайдера... тоесть получало ip инетовский...

Re: NAT и PF

Добавлено: 2011-10-29 23:46:21
VVereVVolf
А вообще с доменом можно было сделать на много проще.... только что дошло) можно было на DNS указать внешний ip а в файле hosts сего сервера ip сервера БД и делов то... А я извратом занимался...