Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » FreeBSD+ipfw+проброс портов+ядерный nat

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

65536

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имеем:
em0 - внутренняя сеть 192.168.0.0/23
em1 - внешний интерфейс 1.2.3.4
сервер - 192.168.0.200, на который есть проброс 80 порта с em1 в локалку.
 
Необходимо, чтобы пользователи локалки могли по внешнему адресу попадать на 192.168.0.200:80. Т.е. пользователь внутри сети пишет в браузере адрес корпоративного сайта, который резолвится в 1.2.3.4, и отправив из локалки на шлюз FreeBSD запрос на адрес 1.2.3.4:80 должен попадать на втуреннюю машинку 192.168.0.200:80.
 
Правила ipfw:
# разрешаем все через интерфейс локальной сети
add allow tcp from 192.168.0.0/23 to 1.2.3.4 keep-state
add allow ip from any to any via em0
 
# проброс порта на лоакльный веб сервер
nat 1 config log if em1 reset same_ports deny_in redirect_port tcp 192.168.0.200:80 80
 
# нат
add nat 1 ip from any to any via em1

Всего записей: 136 | Зарегистр. 09-12-2005 | Отправлено: 13:46 27-03-2013
bga83



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
для того чтобы такая схема заработала запросы пользователей должны пройти 2 раза через правила ната.  
 
Тонкость вот в чем: если использовать только проброс(изменить адрес назначения), то на внутренний сервер пакет поступит с серым адресом отправителя и ответ соответственно пойдет сразу на серый адрес. При этом выйдет ситуация, что запрос отправлялся на один адрес, а ответ пришел с другого. Поэтому такие пакеты надо дополнительно прогонять еще через одно правило ната для того чтобы на внутренний сервер они поступали с измененным адресом источника.
 
Это если разруливать через нат. Однако можно еще все решить с помощью Split-DNS и отдавать локальным пользователям внутренний адрес сервера.

Всего записей: 2008 | Зарегистр. 30-11-2007 | Отправлено: 23:27 27-03-2013
65536

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bga83
Спасибо за ответ. Это понятно, но вот написать такое правило, которое бы позволяло решить задачу с наскоку не получилось. Сейчас ситуация разруливается bind'ом, но хотелось бы делать это через ipfw, тем более что в дешёвых железках, типа китайских роутеров эта ситуация автоматом разруливается и весьма беспроблемно.

Всего записей: 136 | Зарегистр. 09-12-2005 | Отправлено: 10:18 29-03-2013
L_S_V



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
давно не пользуюсь, но правила делал такие...  
 
nat on $ext_if from $int?net to any -> $extip_1
 
там где внутренняя сеть можно указать и отдельный адрес

Всего записей: 627 | Зарегистр. 31-03-2005 | Отправлено: 14:20 29-03-2013
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Операционные системы » UNIX » FreeBSD+ipfw+проброс портов+ядерный nat


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru