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

NAT, несколько интерфейсов и конфиг-файлы

Добавлено: 2007-03-09 10:03:42
alex3
Вот задумал разобраться у себя на рутере и сделать все правильно и логически. Исходные данные - есть 3 сетевых интерфейса, на которые поднят НАТ. Для каждого ната куча опций, редиректы портов, адресов и пр.... Только сейчас в rc.conf natd отключен, создан файлик rc.local, где и указываются все эти прибабахи

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

/sbin/natd -n fxp2 -p 8668 -redirect_port tcp xxx.xxx.xxx.xxx:25 25 ... 
и далее еще две таких строки только интерфейсы, порты и флаги разные.
Хочется - создать в rc.conf natd_enable, natd2_enable, natd3_enable и все эти редиректы разложить по 3 конфигам НАТа. Надыбал статью http://www.opennet.ru/base/net/freebsd_2x_natd.txt.html. Возникли вопросы.
1. /etc/rc.d/natd у меня отличается от написанного в статье. соответственно непонятно как флаги передавать...
2. а как конфиг-файл к нату подцепить?

Добавлено: 2007-03-09 11:44:22
dikens3

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

rc.conf
natd_enable="YES"
natd_flags="-f /etc/natd.cf"
natd2_enable="YES"
natd2_flags="-f /etc/natd2.cf"
natd3_enable="YES"
natd3_flags="-f /etc/natd3.cf"

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

natd.cf
unregistered_only       yes
use_sockets             yes
deny_incoming           yes
same_ports              yes
interface              rl0
verbose                 no
log                     no
port                    8668
И т.д.

Лучше оставь как есть, только конф. файлы подтяни. Иначе после обновления исходников в системе все natd2 и т.п. файлы можно случайно удалить. :-) Если не ты будешь за рулём.

Добавлено: 2007-03-09 13:44:05
alex3
Спасибо. Но если я оставлю как есть - останется и то, от чего хотел уйти. При добавлении редиректа порта, например, приходится перезагружать, а если сделаю nat2 etc, то достаточно будет команды restart.

Добавлено: 2007-03-09 13:49:31
dikens3
alex3 писал(а):Спасибо. Но если я оставлю как есть - останется и то, от чего хотел уйти. При добавлении редиректа порта, например, приходится перезагружать, а если сделаю nat2 etc, то достаточно будет команды restart.
В выделенном проблема? Часто перезапускаешь?
kill ... не помогает? Написать killnat1.sh, killnat2.sh и вписать в него команды. :-)

Или вообще написать скрипт, который будет проверять ежеминутно конфиги nat.cf и т.п.
Если в каком либо изменения - перезапускать нужный nat. Самое оно. Я бы так сделал, если бы мне приходилось часто этим заниматься.

Добавлено: 2007-03-09 16:13:34
alex3
все дело в том, что хрен поймешь где какой нат

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

# ps -ax | grep nat
...  [natd]
...  [natd]
...  /sbin/natd -n fxp3 .....
...  grep nat
ну с последним то понятно .... а остальные?
можно killall natd и chmod +x rc.local , но это неправильно и некрасиво...
в принципе я уже сделал как хотел и балдю

Добавлено: 2007-03-09 16:21:39
dikens3
Сделал, значит молодец.

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

# ps -aux | grep nat | grep -v grep
root      13290  0,0  0,1  1480   372  ??  Ss    1мар07   7:23,81 /sbin/natd -f /etc/natd.cf -P /var/run/natd.pid
Вполне опознаваемо, хоть по конфигу.