Перейти к содержимому
Калькуляторы

"Перезагрузка" ipfw

Следующая ситуация:

 

Правлю /etc/rc.firewall и, соответственно, надо его перечитать. Выполняю команду /etc/rc.d/ipwf reload, после этого файл перечитывается (с машины на которой это проделывается изменения "видит")

 

Проблема: на этой машине также запущен natd для преобразования частного диапазона адресов локальной сети. При перезагрузки ipfw сообщается об ошибке, что порты natd уже заняты (что-то в таком роде). И , после этого, пакеты из локалки в мир не уходят (или не возвращаются). Выхожу из этой ситуации перезагрузкой всей машины.

 

Вопрос: Что я делаю не так и как правильно это делать.

 

OS: FreeBSD 5.0 realese

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Следующая ситуация:

 

Правлю /etc/rc.firewall и, соответственно, надо его перечитать. Выполняю команду /etc/rc.d/ipwf reload, после этого файл перечитывается (с машины на которой это проделывается изменения "видит")

 

Проблема: на этой машине также запущен natd для преобразования частного диапазона адресов локальной сети. При перезагрузки ipfw сообщается об ошибке, что порты natd уже заняты (что-то в таком роде). И , после этого, пакеты из локалки в мир не уходят (или не возвращаются). Выхожу из этой ситуации перезагрузкой всей машины.

 

Вопрос: Что я делаю не так и как правильно это делать.

 

OS: FreeBSD 5.0 realese

может попробовать IPNAT ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

может попробовать IPNAT ?

 

Выполняю следующие деиствия:

/etc/rc.d/ipfw restart

>Firewall rules loaded, starting divert daemons: natdnatd: Unable to bind divert socket.: Address already in use

 

/etc/rc.d/ipnat restart

 

Пинга с внутрених хостов внешних нет :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

может попробовать IPNAT ?

 

Выполняю следующие деиствия:

/etc/rc.d/ipfw restart

>Firewall rules loaded, starting divert daemons: natdnatd: Unable to bind divert socket.: Address already in use

 

/etc/rc.d/ipnat restart

 

Пинга с внутрених хостов внешних нет :(

Ну тогда для начала /usr/share/examples/ipfilter стоит почитать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

shs, насколько я понимаю ipfilter это просто другой firewall. Т.е. я спрашиваю про одно, а ты мне говоришь совсем про другое. Или я чего-то не понимаю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

shs, насколько я понимаю ipfilter это просто другой firewall. Т.е. я спрашиваю про одно, а ты мне говоришь совсем про другое. Или я чего-то не понимаю?

 

Собственно - в чём преимущества при работе в связке ipfilter + ipfw ?

А в том, что они никаким образом не взаимосвязаны друг с другом.

Т.е. используя IPNAT ты имеешь гарантию что любые изменения в ipfw не затронут твой нат.

 

Я лично не любля использовать natd. На то есть много причин.

Вот и подумалось - может и тебе пригодится ???

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

shs, спасибо за заботу, может быть когдани-будь руки доидут до того чтобы посмотреть ipfilter and ipnat, но в данный момент для меня актуалны ipfw and natd :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да в чем проблема то?

Ну напиши скрипт чтобы он вначале килял нат потом релоадил фаервол потом поднимал нат,

Ну или сам напиши скрипт который реловадит фаервол как тебе надо , онже и так команды понимает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Следующая ситуация:

 

Правлю /etc/rc.firewall и, соответственно, надо его перечитать. Выполняю команду /etc/rc.d/ipwf reload, после этого файл перечитывается (с машины на которой это проделывается изменения "видит")

 

Проблема: на этой машине также запущен natd для преобразования частного диапазона адресов локальной сети. При перезагрузки ipfw сообщается об ошибке, что порты natd уже заняты (что-то в таком роде). И , после этого, пакеты из локалки в мир не уходят (или не возвращаются). Выхожу из этой ситуации перезагрузкой всей машины.

 

Вопрос: Что я делаю не так и как правильно это делать.

 

natd - это демон, который слушает некоторый TCP порт (обычно 8668, описан как порт natd в /etc/services) и когда у тебя стартует второй natd (из скрипта), он не может подключиться к этому порту.

Решение: выполнить команду

killall natd ; sleep 5 ; /etc/rc.d/ipwf reload

 

(т.е. "прибить" работающий natd, подождать чтобы он успел завершиться и затем перезапустить правила файрвола и natd)

Хотя я бы исправил /etc/rc.d/ipwf чтобы он посылал сигнал завершения в natd и проверял список процессов.

 

OS: FreeBSD 5.0 realese

 

Напрямую к вопросу не относится, но: эта версия слишком сырая. Или срочно накатывай 5.1 или (лучше) поставить 4.5 и пропатчить ее до RELEND_4_5

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Grumbler, проделал то что ты сказал - natd запустился (ошибок не пишет), но пакеты из "внутрених" хостов всеравно не уходят :( хотя до этой операции и после перезагрузки все "хорошо"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

"Накатил" до 5.1 и стало все нормально работать :)

Всем большое спасибо за помошь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.