Подробное руководство по ipfw nat

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение kpp » 2009-09-17 23:20:47

Первый пример заработал.
Хотя есть не очень приятная(привычная) особенность(по сравнению с natd ) на счет того, что если на компе-роутере поднят веб-сервер, фтп и прочее, приходится в нате редиректить порты или уводить пакеты на эти порты до ната (чтобы из мира достучаться до вебсервера\фтп и т.д.).
Так и должно быть?
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Snake
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-06-17 14:02:58

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Snake » 2009-09-18 0:51:21

Ну как-бы если использовать natd и политику deny all from any to any, порты нужно открывать в любом случае

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение kpp » 2009-09-18 9:55:30

Открывать порты в фаере - само-собой.
Речь идет именно о натовом редиректе портов для внешних служб роутера.
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-09-18 10:10:16

kpp писал(а):Открывать порты в фаере - само-собой.
Речь идет именно о натовом редиректе портов для внешних служб роутера.
там все крутится вокруг директивы deny_in - уберете ее и все входяшие соединения будут проходить через нат.
моя параноя не позволяет мне так настраевать наты - имхо спокойнее сначала все зарезать, а потом только то что надо разрешать...

как это все было при natd я особо не в курсах - я его почти не пользовал за ненадобностью.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение kpp » 2009-09-18 10:19:18

Кто разъяснит где описана такая нотация - вызова скрипта setfib

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

add 1040 setfib 0 ip from any to any in recv fxp1
В мане не нахожу.
И пока непонятно откуда берется вообзе скрипт /usr/local/etc/rc.d/setfib1
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение kpp » 2009-09-18 10:21:26

На счет директивы deny_in вопрос изучил - убирал, one_pass enable, однако все равно пока явно порты не перебросишь - извне портов не видно.
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение kpp » 2009-09-18 10:26:14

Если делаю так:

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

${fw} nat 1 config log if ${if_net1} reset same_ports redirect_port tcp ${ip_net1}:80 80
${fw} add nat 1 ip from any to any via ${if_net1}

порт 80 виден из мира.
Если делаю

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

${fw} nat 1 config log if ${if_net1} reset same_ports deny_in
${fw} add nat 1 ip from any to any via ${if_net1}

или

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

${fw} nat 1 config log if ${if_net1} reset same_ports
${fw} add nat 1 ip from any to any via ${if_net1}

не видно 80-го.
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение kpp » 2009-09-18 10:33:22

Ага, setfib - это команда управления таблицами маршрутизации, курю ман :bn:
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-09-18 10:56:00

kpp писал(а): И пока непонятно откуда берется вообзе скрипт /usr/local/etc/rc.d/setfib1
из моей заметки он берется.
в системе пока нет стандартных способов установки маршрутов в дополнительных таблицах маршрутизации.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-09-18 10:59:17

kpp писал(а): или

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

${fw} nat 1 config log if ${if_net1} reset same_ports
${fw} add nat 1 ip from any to any via ${if_net1}

не видно 80-го.
а какие правила прописаны после вызова ната? не deny all from any to any случайно?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение kpp » 2009-09-18 11:34:42

Для теста сделал так:

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

${fw} nat 1 config log if ${if_net1} reset same_ports
${fw} add nat 1 ip from any to any via ${if_net1}

${fw} add allow tcp from any to me 80 in via ${if_net1}
нет 80-го
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

Snake
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-06-17 14:02:58

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Snake » 2009-09-18 11:36:28

Я так понимаю, при использовании setfib для разных групп пользователей, висящих на одном интерфейсе мы получим следующее:

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

add 1040 setfib 0 ip from table(1) to any in recv fxp0 keep-state
add 1060 setfib 1 ip from table(2) to any in recv fxp0 keep-state
add 1070 allow ip from any to any via fxp0

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение kpp » 2009-09-18 11:38:18

если написать так:

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

${fw} add allow tcp from any to me 80 in via ${if_net1}

${fw} nat 1 config log if ${if_net1} reset same_ports
${fw} add nat 1 ip from any to any via ${if_net1}
или так:

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

${fw} nat 1 config log if ${if_net1} reset same_ports redirect_port tcp ${ip_net1}:80 80
${fw} add nat 1 ip from any to any via ${if_net1}

${fw} add allow tcp from any to me 80 in via ${if_net1}
Все замечательно, не пойму где собака порылась... :st:
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-09-18 11:54:39

kpp писал(а):Для теста сделал так:

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

${fw} nat 1 config log if ${if_net1} reset same_ports
${fw} add nat 1 ip from any to any via ${if_net1}

${fw} add allow tcp from any to me 80 in via ${if_net1}
нет 80-го

хз, частности какие-то... по идее бы должо работать, если нету deny_in и one_pass=0
перезапустите комп если есть интерес дальше вылавливать почему не пропускает - у меня такое иногда случалось, что при больших изменениях в настройках ната помогал рестарт машины...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-09-18 12:02:05

Snake писал(а):Я так понимаю, при использовании setfib для разных групп пользователей, висящих на одном интерфейсе мы получим следующее:

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

add 1040 setfib 0 ip from table(1) to any in recv fxp0 keep-state
add 1060 setfib 1 ip from table(2) to any in recv fxp0 keep-state
add 1070 allow ip from any to any via fxp0
Вы полностью задачу поставитье, а нито получается какой-то монолог - вы мне про Фому, а я вам про Ерему...

Мне непонятно - вам необходимо динамическое распределение трафика локальной сети между двумя провайдерами, и только для некоторых пользователей из таблиц (1) и (2) надо жестко указать чтобы они ходили через своего?

Или вам просто надо жестко разделить - (1) через первого прова, а (2) через второго?

Если просто жесткое разделение то используйте пример 4 - его и модифицируете!!! :evil:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Snake
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-06-17 14:02:58

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Snake » 2009-09-18 13:14:31

Задача - заворачивать пользователей из table 1 на первого прова, из table 2 на другого. Жестко. За основу да, таки надо брать пример 4, но интерфейс у нас один. Я потому и спрашиваю

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-09-18 13:30:44

тогда keep-state уберите - оно там никчему. а так у вас идея правильная.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение kpp » 2009-09-18 14:00:26

Гм.. после ребута системы заработало.
Нужно будет провести ряд тестов...
Как вариант ipfw нужно перестартовывать /etc/rc.d/ipfw restart
Мда.. стОит внести какие-нить изменения в правила и перестартовать ipfw и все опять возвращается на круги своя...
Пока как вариант ребутать систему после любых изменений правил фаера.. :crazy:
Ладно, покопаю еще
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение kpp » 2009-09-18 14:17:36

По крайней мере если было deny_in его нужно убрать - полюбому перегруз нужен.
Я перегрузился - все работает - решил потестить - добавил deny_in - все, как и должно, было перестало работать, потом убрал deny_in - не работает...
Перегруз - работает...
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение kpp » 2009-09-18 15:21:03

Перехожу к 5-му примеру.

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

add 1010 prob 0.5 skipto 1060 ip from any to any in recv fxp0

add 1040 setfib 0 ip from any to any in recv fxp0 keep-state
add 1050 allow ip from any to any via fxp0

add 1060 setfib 1 ip from any to any in recv fxp0 keep-state
add 1070 allow ip from any to any via fxp0
В этих строках точно сетевой интерфейс локальной сети(fxp0), а не интерфейсы провайдеров?
По идее где-то должно быть определение жив ли провайдер или нет, чтобы переключаться автоматически на рабочего прова.
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-09-18 15:35:08

там все правильно.

лучше почитайте объяснение к примеру - я там по шагам расписал то, как пакетики будут ходить, и про выпадение одного из провайдеров тоже есть замечание.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение kpp » 2009-09-18 15:39:51

Дочитал замечания к примеру 5. Часть вопросов отпала.
Балансировка, конечно хорошая и нужная штука, но контроль и автоматичекое переключение между провайдерами в случае необходимости - все-таки
задача более первостепенная (инет должен быть всегда).
Моя задача сделать автоматическое переключение между провайдерами + по возможности максимальное использование всей суммарной пропускной способности каналов.
На мой взгляд, все описание с примерами можно было упростить вынеся Dummynet (статья все-таки называется "Подробное руководство по ipfw nat") в отдельную статью.
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-09-18 16:24:19

для меня примеры 4 и 5 неатуальны - я их выдумал с потолка. двух провайдеров у меня нет и обкатывать/экспериментировать с ними мне негде/незачем.

Придумайте и реализуйте схему мониторинга (пинг) и переключения на один рабочий канал, когда другой выпал (ipfw set swap) - сделаете, внесем в статью как пример.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Snake
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-06-17 14:02:58

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Snake » 2009-09-18 16:28:09

При использовании mpd кстати скрипт для setfib необязятелен - можно повесить назначение шлюза для setfib на сам mpd, чтобы при установке соединения он выставлял нужный

Snake
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-06-17 14:02:58

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Snake » 2009-09-21 6:35:50

Время от времени возникает такая проблема - закачки "затыкаются" на одном и том же месте. Тоже самое с видео с ютуба. Причем слабо зависит от загруженности канала. Что это может быть?