[FUG-BR] Dúvida no restart com 2 natd rodando

Wanderson Tinti wanderson em bsd.com.br
Sábado Abril 4 23:28:20 BRT 2009


2009/4/4 Anderson Michel <ams em srnet.com.br>:
> Bom dia Pessoal,
>
> Quando configuro o 1 natd, faço pelo rc.conf, como por ex.:
> natd_enable="YES"
> natd_interface="xl0"
> natd_flags="-f /etc/natd.rules"
>
> E quando faço alguma alteração nele, uso o /etc/rc.d/natd restart, até
> aqui sem problemas ... a dúvida é quando uso 2 natds, para iniciá-los
> desativei as linhas acima e coloquei no rc.local:
> /sbin/natd -f /etc/natd-xl0.rules -n xl0
> /sbin/natd -f /etc/natd-xl1.rules -n xl1
>
> Agora não tenho mais o função /etc/rc.d/natd restart para reinicia-los,
> como posso fazer? Copio esse script e modifico ele, ou tem alguma
> maneira de resolver isso pelas config. do rc.conf?
>
> Agradeço a ajuda,
>
> Anderson Michel
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>

Boa noite a todos.
É possível de fazer das seguintes formas:

1º

Voce pode ter varias instancias do natd configura em um arquivo:

/etc/natd.conf

instance default
interface rl0
port 8668
dynamic yes
use_sockets yes
same_ports yes
.......

instance natd2
interface vr0
port 8669
dynamic yes
use_sockets yes
same_ports yes

Agora voce configura seu arquivo rc.conf.

/etc/rc.conf

natd_enable="YES"
natd_flags="-f /etc/natd.conf"

#/etc/rc.d/natd stop
#sockstat -4l
#/etc/rc.d/natd start
#sockstat -4l

Voce verá 2 natd rodando, um em cada porta.

2º Modo

/etc/rc.conf
natd_enable="YES"
natd_flags="-f /etc/natd.conf"


/etc/natd.conf
interface rl0
port 8668
dynamic yes
use_sockets yes
same_ports yes

/etc/natd2.conf
interface vr0
port 8669
dynamic yes
use_sockets yes
same_ports yes

/usr/local/etc/rc.d/xnat2.sh

#!/bin/sh
name="natd"
command="/sbin/${name} -f /etc/natd2.conf -pid_file /var/run/natd2.conf"
case "$1" in
start)
$command
;;
stop)
kill `sockstat -4l |grep 8669 | cut -c21-24`
;;
*)
echo "Use da seguinte forma: $0 {start|stop}"
;;
esac
exit 0

chmod +x /usr/local/etc/rc.d/xnat2.sh

PS: Tive que colocar o nome script comecando com 'x', acredito que
seja pelo ordem de execurcao que o freebsd usa para estartar.

Depois é só testar.


Mais detalhes sobre a lista de discussão freebsd