URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 47512
[ Назад ]

Исходное сообщение
"rc.conf и ipnat в FreeBSD"

Отправлено SnakeLair , 24-Авг-04 11:04 
Постите за наверно дурацкий вопрос, но я чё-то по этому поводу ничего не нашел...

У меня в rc.conf прописано:
ipnat_enable="YES"
ipnat_program="/sbin/ipnat -CF -f"
ipnat_rules="/etc/ipnat.rules"
ipnat_flags=""

Значит-ли это что ipnat должен работать сразу после загрузки?
Ато у меня начинает работать только после того как я после входа выполню ipnat -CF -f /etc/ipnat.rules.
Подскажите плиз как это дело поставить в автозагрузку.


Содержание

Сообщения в этом обсуждении
"rc.conf и ipnat в FreeBSD"
Отправлено A Clockwork Orange , 24-Авг-04 11:06 
Попробуй
ipnat_program="/sbin/ipnat"
А так все верно

"rc.conf и ipnat в FreeBSD"
Отправлено jr , 24-Авг-04 11:10 
>Постите за наверно дурацкий вопрос, но я чё-то по этому поводу ничего
>не нашел...
>
>У меня в rc.conf прописано:
>ipnat_enable="YES"
>ipnat_program="/sbin/ipnat -CF -f"
>ipnat_rules="/etc/ipnat.rules"
>ipnat_flags=""
>
>Значит-ли это что ipnat должен работать сразу после загрузки?
>Ато у меня начинает работать только после того как я после входа
>выполню ipnat -CF -f /etc/ipnat.rules.
>Подскажите плиз как это дело поставить в автозагрузку.

ну ведь сам даже написал параметр для флагов :)

ipnat_enable="YES"
ipnat_program="/sbin/ipnat"
ipnat_rules="/etc/ipnat.rules"
ipnat_flags="-CF -f"


"rc.conf и ipnat в FreeBSD"
Отправлено SnakeLair , 24-Авг-04 11:22 
>
>ну ведь сам даже написал параметр для флагов :)
>
>ipnat_enable="YES"
>ipnat_program="/sbin/ipnat"
>ipnat_rules="/etc/ipnat.rules"
>ipnat_flags="-CF -f"

Делал по факам...
А разве он не берет флаги из ipnat_program? Просто сейчас нет возможности попробовать...


"rc.conf и ipnat в FreeBSD"
Отправлено jr , 24-Авг-04 11:34 
>>
>>ну ведь сам даже написал параметр для флагов :)
>>
>>ipnat_enable="YES"
>>ipnat_program="/sbin/ipnat"
>>ipnat_rules="/etc/ipnat.rules"
>>ipnat_flags="-CF -f"
>
>Делал по факам...
>А разве он не берет флаги из ipnat_program? Просто сейчас нет возможности
>попробовать...

нужно скрипт rc.network смотреть, но если есть параметры ipnat_flags и ipnat_rules, то логично предположить, что они также используются при старте :)

я думаю, что при твоем конфиге получается команда, что-то типа:
/sbin/ipnat -CF -f -f /etc/ipnat.rules
или
/sbin/ipnat -f /etc/ipnat.rules -CF -f
что не есть правильно, т.е. наличие параметра ipnat_rules уже предполагает использование флага -f

да, кстати ошибочка и у меня вышла... нужно писать
ipnat_flags="-CF"


"rc.conf и ipnat в FreeBSD"
Отправлено SnakeLair , 24-Авг-04 17:48 
Ситуация кароче такая! После загрузки как ты в rc.conf не напиши, нифига не работает...
Причем по команде ipnat -l выдает все правила идеально, NAT нифига не работает.
Прописываю ручками ipnat -CF -f /etc/ipnat.rules, смотрю пинги пошли... NAT заработал, ipnat -l выдает тоже самое + лист активных сессий.

На всякий случай приведу вот что:
/etc/ipnat.rules
map ng0 195.65.12.0/24 -> 0/32 proxy port ftp ftp/tcp
map ng0 195.65.12.0/24 -> 0/32 portmap tcp/udp 40000:60000
map ng0 195.65.12.0/24 -> 0/32

/etc/rc.conf
ipnat_enable="YES"
ipnat_program="/sbin/ipnat"
ipnat_rules="/etc/ipnat.rules"
ipnat_flags="-CF"

ng0 это PPTP интерфейс который поднимается во время загрузки посредством MPD в инет, аддрес выделяется динамический.

Если всетаки дело в написании...
Вот ещё, вырезка rc.network
case "${ipnat_enable}" in
        [Yy][Ee][Ss])
            if [ -r "${ipnat_rules}" ]; then
                echo -n ' ipnat'
                eval ${ipnat_program:-/sbin/ipnat} -CF -f \
                    "${ipnat_rules}" ${ipnat_flags}
            else
                ipnat_enable="NO"
                echo -n ' NO IPNAT RULES'
            fi
            ;;
        esac

Судя по всему надо сделать так:
/etc/rc.conf
ipnat_enable="YES"
ipnat_program="/sbin/ipnat"
ipnat_rules="/etc/ipnat.rules"
ipnat_flags=""

Сделал, эффект тотже самый... FreeBSD 4.10

Вот ещё, во время загрузки пишет мол
ipnat 0 entries flushed from NAT table
0 entries flushed from NAT list


"rc.conf и ipnat в FreeBSD"
Отправлено jr , 24-Авг-04 18:01 
>ng0 это PPTP интерфейс который поднимается во время загрузки посредством MPD в
>инет, аддрес выделяется динамический.

а, ну тогда скорей всего все дело в том, что отработка ipnat идет перед поднятием ng0 интерфейса, сначала отрабатываются /etc/rc* а уж потом все остальное из /usr/local/etc/rc.d (там скрипт mpd?)

попробуй команду запуска ipnat прописать в конце скрипта поднятия интерфейса ng0, а в rc.conf ipnat убрать вообще


"rc.conf и ipnat в FreeBSD"
Отправлено SnakeLair , 24-Авг-04 18:19 
>а, ну тогда скорей всего все дело в том, что отработка ipnat
>идет перед поднятием ng0 интерфейса, сначала отрабатываются /etc/rc* а уж потом
>все остальное из /usr/local/etc/rc.d (там скрипт mpd?)
Да
>попробуй команду запуска ipnat прописать в конце скрипта поднятия интерфейса ng0, а
>в rc.conf ipnat убрать вообще

Действительно, всё верно, дело даже думаю в том что внешний IP-шник ipnat берет с интерфейса один тока раз при старте.
Я вот подумал и протестил что при реконнекте и новом айпишнике NAT перестает работать, это получается что мне надо лазить в скриптах MPD-шника и вставлять туда после поднятия интерфейса ipnat -CF -f...

Мне интересно natd так-же действует, или он чисто к интерфейсу привязывается?


"rc.conf и ipnat в FreeBSD"
Отправлено SnakeLair , 24-Авг-04 18:49 
Сделалось всё очень просто! Так мож кому пригодится...

В mpd.conf при поднятии интерФейса прописывается:
set iface up-script /usr/local/etc/mpd/upiface.sh

Создается /usr/local/etc/mpd/upiface.sh:
#!/bin/sh
ipnat -CF -f /etc/ipnat.rules


"rc.conf и ipnat в FreeBSD"
Отправлено jr , 24-Авг-04 19:03 
>Мне интересно natd так-же действует, или он чисто к интерфейсу привязывается?

в natd есть ключ -dynamic он как раз решает эту проблему