DynDNSupdate on Iomega Storcenter IX2-200


Primeiramente gostaria de salientar que não sou o autor principal do conteúdo deste artigo. A minha intenção é de mostrar o que outros autores tem realizado (referenciando links para o conteúdo original) neste blog até como um guia pessoal para uso próprio e ainda compartilhar minhas anotações e pequenas modificações que realizo no conteúdo, desejando que possa ajudar mais alguém em algum lugar.
First and foremost, I take no credit for any of this post’s content. I am really just taking what others have done (which I have links to bellow) and am putting it on my blog for a personal reference and hopefully the small changes that I made to their guides will help someone somewhere.

Link: http://www.nslu2-linux.org/wiki/HowTo/DynDNSupdate

Primeiramente acesse o equipamento com uma sessão SSH.

Ative esta opção no site do seu equipamento na página abaixo:

Utilizando o putty ou terminal do linux: 
ssh root@192.168.1.13

Usuário: root
Senha: soho + a senha do admin

Instale os aplicativos optware com o comando ipkg, configurando do seguinte forma ((já vem pré instalado):
cat <<EOF > /etc/ipkg.conf 
src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable 
src native http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable 
EOF

Atualize com o comando:
ipkg update

Liste as opções com o comando:
ipkg list

Ou acesse os sites:

E instale o que quiser com o comando abaixo:
ipkg install <nome do app>


O pacote optware a ser instalado é o pacote abaixo:
Package: ddclient Version: 3.8.1-1 Depends: perl Section: util Architecture: arm Maintainer: NSLU2 Linux <nslu2-linux@yahoogroups.com> MD5Sum: e244e31859e47a94021e5521e218dc3a Size: 32038 Filename: ddclient_3.8.1-1_arm.ipk Source: http://downloads.sourceforge.net/sourceforge/ddclient/ddclient-3.8.1.tar.gz Description: A client for updating dynamic DNS entries for accounts on a number of dynamic DNS providers.
Ou então com scripts que utilizam o pacote abaixo:
Package: wget Version: 1.12-2 Conflicts: wget-ssl Section: net Architecture: arm Maintainer: NSLU2 Linux <nslu2-linux@yahoogroups.com> MD5Sum: 637cecd28d8a5a313c925a475b3b52e1 Size: 165416 Filename: wget_1.12-2_arm.ipk Source: http://ftp.gnu.org/pub/gnu/wget/wget-1.12.tar.gz Description: A network utility to retrieve files from the Web


Vamos tentar configurar o ddclient
ipkg install ddclient


Resultado:
Installing ddclient (3.8.1-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ddclient_3.8.1-1_arm.ipk
Installing perl (5.10.0-6) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/perl_5.10.0-6_arm.ipk
Installing gdbm (1.8.3-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/gdbm_1.8.3-2_arm.ipk
Configuring ddclient
Configuring gdbm
Configuring perl
Successfully terminated.


Configure o arquivo abaixo:
cp /opt/etc/ddclient/ddclient.conf-dist /opt/etc/ddclient/ddclient.conf
nano /opt/etc/ddclient/ddclient.conf

Acrescente ao final:
# /opt/etc/ddclient/ddclient.conf
#
protocol=dyndns2
use=web
login=mylogin
password=mypassword
myhost.dyndns.org

Por exemplo:
use=web, web=checkip.dyndns.org/, web-skip='IP Address'
use=web
#protocol=dyndns2, server=no-ip.org, login=xxx@xxx, password='xxx' xxx.no-ip.org
protocol=dyndns2, server=members.dyndns.org, login=xxx, password='xxx' xxx.domain.com

Crie um script de inicialização do ddclient:

nano /opt/etc/init.d/S08ddclient 

#!/bin/sh
#
# Start the ddclient daemon
#

start() {
    echo -n "Starting ddclient: "
    if [ -n "`/opt/bin/pidof ddclient`" ]; then
        echo "already running..."
        false;
        return
    fi
    cd /opt/etc/ddclient
    /opt/sbin/ddclient
    echo "started"
    return
}
stop() {
    echo -n "Shutting down ddclient: "
    killall ddclient > /dev/null 2>&1
    sleep 5
    if [ -n "`/opt/bin/pidof ddclient`" ]; then
        echo "fail"
    else
        echo "done"
    fi
    return
}
restart() {
    stop
    start
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        restart
        ;;
  *)
        echo "Usage: $0 {start|stop|restart|usage}"
        exit 1
esac
exit $?

chmod +x /opt/etc/init.d/S08ddclient
chmod 755 /opt/etc/init.d/S08ddclient


Vamos tentar agora uma nova abordagem:

Instale o pacote abaixo:
ipkg install wget

Resultado:
Installing wget (1.12-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/wget_1.12-2_arm.ipk
Configuring wget
Successfully terminated.

Crie o script abaixo:
nano /opt/bin/dnsupd
#!/bin/sh
function change_ip {
      echo " "
      declare password="xxx"
      declare login="xxx"
      declare domain="xxx.dyndns-office.com"
      wget -q "http://${login}:${password}@members.dyndns.org/nic/update?hostname=${domain}" --output-document=/opt/tmp/upd.ip
      echo "New IP - ${domain}"
      cat /opt/tmp/upd.ip
      echo " "

      echo " "
      declare password="xxx"
      declare login="xxx"
      declare domain="xxx.homelinux.com"
      wget -q "http://${login}:${password}@members.dyndns.org/nic/update?hostname=${domain}" --output-document=/opt/tmp/upd.ip
      echo "New IP - ${domain}"
      cat /opt/tmp/upd.ip
      echo " "

      #rm /opt/tmp/upd.ip;
}

 wget -q http://checkip.dyndns.com/index.html --output-document=/opt/tmp/new.ip
 if [ -s "/opt/tmp/new.ip" ]; then
   if [ -s "/opt/tmp/old.ip" ]; then
     if `diff "/opt/tmp/new.ip" "/opt/tmp/old.ip" >/dev/null` ; then
        echo "No new IP"
        rm -f /opt/tmp/new.ip
     else
        change_ip
       rm -f /opt/tmp/old.ip
       mv /opt/tmp/new.ip /opt/tmp/old.ip
     fi
   else
     change_ip
     mv /opt/tmp/new.ip /opt/tmp/old.ip
   fi
 else
   echo "No access to http://checkip.dyndns.com/index.html"
 fi


chmod 755 /opt/bin/dnsupd 

Crie o script de inicialização:

vi /opt/etc/init.d/S60dnsupd 
 
 #!/bin/sh
 if [ -n "`pidof dnsupd`" ]; then
    killall dnsupd 2>/dev/null
 fi
 #umask 077
 /opt/bin/dnsupd

chmod 755 /opt/etc/init.d/S60dnsupd

Configure o cron para atualizar todos os dias:
cd /etc/cron.daily
ln -s opt/bin/dnsupd

Retire a inicialização do ddclient
mv /opt/etc/init.d/S08ddclient  /opt/etc/init.d/K08ddclient 


Para tornar o optware um serviço que se inicia automaticamente quando o NAS for reiniciado, precisa alterar a imagem original da seguinte forma:

mknod -m0660 /dev/loop3 b 7 3
chown root.disk /dev/loop3 
mkdir /tmp/apps 
mount -o loop /boot/images/apps /tmp/apps
cp /tmp/apps/usr/local/cfg/sohoProcs.xml /tmp/apps/usr/local/cfg/sohoProcs.xml.original
nano /tmp/apps/usr/local/cfg/sohoProcs.xml 

Inclua um novo <Program> dentro de <Group Level=”1″>:
<Program Name="init-opt.sh" Path="/opt/etc/init-opt.sh"> 
       <SysOption Restart="-1"/> 
</Program>
 
umount /tmp/apps 
rm /dev/loop3

Crie o script abaixo:

tee /opt/etc/init-opt.sh <<EOF
#!/bin/sh
rm /opt/var/log/boot
if [ -d /opt/etc/init.d ]; then
for f in /opt/etc/init.d/S* ; do
#[ -x $f ] && $f start
$f start | tee -a /opt/var/log/boot
done
fi
EOF
chmod +x /opt/etc/init-opt.sh
mkdir /opt/var/log


O URL específico do gadget não foi encontrado



Comments