O objetivo é testar o funcionamento de serviços de transferência de arquivos do Globus 5.0, utilizando o cliente globus-url-copy e o gridftp-server, no entanto, com uma particularidade: o ipv6.
Após realizar algumas pesquisas em artigos científicos, e em sites de busca, identificamos a escassez de materiais demonstrando o uso destas ferramentas com o ipv6. Dessa forma, preparamos um cenário de simulação para realizar os testes e verificar esta funcionalidade.
Os testes foram realizados em máquinas virtuais Fedora Core 12, com 256MB de memória. Foram instalados os softwares globus-url-copy e globus-gridftp-server, respectivamente, na máquina virtual cliente e servidor.
== Desabilitamos os serviços: ==
su -c 'chkconfig --level 2345 sendmail off'
su -c 'chkconfig --level 2345 ip6tables off'
su -c 'chkconfig --level 2345 iptables off'
== Instalação apartir dos fontes ==
wget http://www.globus.org/ftppub/gt5/5.0/5.0.2/installers/src/gt5.0.2-all-source-installer.tar.bz2
bunzip2 gt5.0.2-all-source-installer.tar.bz2
tar xvf gt5.0.2-all-source-installer.tar
cd gt5.0.2-all-source-installer
./configure --prefix=/usr/share/globus
make gridftp install
make gridftp install
Com o processo de instalação bem sucedido, é necessário realizar as configurações recomendadas.
== Criar arquivo gridftp.conf em /etc ==port 5000
allow_anonymous 1
anonymous_user root
debug 1
log_single /var/log/gridftp_s.log
log_level ALL
banner "Saudacoes"
== Para rodar utilizando o xinetd, criar o arquivo gsiftp (/etc/xinet.d/) ==
service gsiftp
{
instances = 1000
socket_type = stream
protocol = tcp
wait = no
user = root
env += GLOBUS_LOCATION=/usr/share/globus
env += LD_LIBRARY_PATH=/usr/share/globus/lib
env += GLOBUS_TCP_PORT_RANGE=50000,51000
server = /usr/share/globus/sbin/globus-gridftp-server
server_args = -i
nice = 10
flags = KEEPALIVE
disable = no
}
Para utilizar as aplicações por meio do ipv6, é necessário configurar um endereço para os dispositivos de interface.
Utilizamos o endereço a:b:c:d:e:f:1:1/64 para o cliente, a:b:c:d:e:f:1:3/64 para o servidor.
ifconfig eth0 add a:b:c:d:e:f:1:2/64ifconfig eth0 add a:b:c:d:e:f:1:3/64
Para realizar o teste de conectividade, utilize:
ping6 a:b:c:d:e:f:1:3 (apartir da estação cliente) ouping6 a:b:c:d:e:f:1:2 (apartir da estação servidor)
O arquivo /etc/resolv.conf não deve ter conteúdo. A próxima etapa é dar início aos testes. O comando abaixo realiza a execução do serviço gridftp, no servidor. O parâmetro -hostname :: identifica que o serviço estará utilizando ipv6.
/usr/share/globus/sbin# ./globus-gridftp-server -c /etc/gridftp.conf -hostname ::Utilizando outro terminal, é possível verificar a execução do serviço gridftp-server, na porta 5000, por meio do comando:
netstat --inet6 -l -nPara realizar uma transferência, apartir da estação cliente, utilize o comando:
/usr/share/globus/bin# ./globus-url-copy -dbg -vb -ipv6 file:///home/sander/PC_Lab_2.pdf ftp://[a:b:c:d:e:f:1:6]:5000/tmp/PC_Lab_2.pdfRealizamos o monitoramento do servidor, e coletamos as seguintes informações:
root@Matrix:/home/sander# more /var/log/gridftp_s.log [22848] Tue Aug 3 18:03:47 2010 :: GFork functionality not enabled: globus_gfork_child_worker_start() failed:
globus_gfork: GFork error: Env not set
[22848] Tue Aug 3 18:03:47 2010 :: Configuration read from /etc/gridftp.conf.
[22848] Tue Aug 3 18:03:47 2010 :: Server started in daemon mode.
[22848] Tue Aug 3 18:03:50 2010 :: New connection from: maquina2:59794
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [CLIENT]: USER anonymous
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [SERVER]: 331 Password required for anonymous.
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [CLIENT]: PASS globus@
[22848] Tue Aug 3 18:03:50 2010 :: User anonymous successfully authorized.
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [CLIENT]: PASS globus@
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [SERVER]: 230 User anonymous logged in.
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [CLIENT]: SITE HELP
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [SERVER]: 214-The following commands are recognized:
ALLO APPE REST CWD CDUP DCAU EPSV FEAT
ERET MDTM STAT ESTO HELP LIST MODE NLST
MLSD PASV RNFR MLST NOOP OPTS STOR PASS
PBSZ PORT PROT SITE EPRT RETR SPOR SCKS
TREV PWD QUIT SBUF SIZE SPAS STRU SYST
RNTO TYPE USER LANG MKD RMD DELE CKSM
214 End
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [CLIENT]: FEAT
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [SERVER]: 211-Extensions supported
AUTHZ_ASSERT
UTF8
LANG EN
DCAU
PARALLEL
SIZE
MLST Type*;Size*;Modify*;Perm*;Charset;UNIX.mode*;UNIX.owner*;UNIX.group*;Unique*;UNIX.slink*;
ERET
ESTO
SPAS
SPOR
REST STREAM
MDTM
PASV AllowDelayed;
211 End.
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [CLIENT]: SITE CLIENTINFO scheme=ftp;appname="globus-url-copy";appver="5.7 (gcc32dbg, 1279048311-80) [Globus Toolkit 5.0.2]";
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [SERVER]: 250 OK.
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [CLIENT]: TYPE I
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [SERVER]: 200 Type set to I.
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [CLIENT]: EPSV
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [SERVER]: 229 Entering Passive Mode (|2|::|43935|)
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [CLIENT]: ALLO 106588
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [SERVER]: 200 ALLO command successful.
[22848] Tue Aug 3 18:03:50 2010 :: maquina2:59794: [CLIENT]: STOR /tmp/PC_Lab_2.pdf
[22848] Tue Aug 3 18:18:50 2010 :: Requesting abort...
[22848] Tue Aug 3 18:18:50 2010 :: Finished transferring "/tmp/PC_Lab_2.pdf".
[22848] Tue Aug 3 18:18:50 2010 :: Transfer stats: DATE=20100803211850.938161 HOST=:: PROG=globus-gridftp-server NL.EVNT=FTP_INFO START=20100803210350.848819 USER=anonymous FILE=
/tmp/PC_Lab_2.pdf BUFFER=0 BLOCK=262144 NBYTES=0 VOLUME=/ STREAMS=1 STRIPES=1 DEST=[0.0.0.0] TYPE=STOR CODE=226
[22848] Tue Aug 3 18:18:50 2010 :: Closed connection from maquina2:59794
Para demonstrar que as aplicações funcionam, utilizamos o ipv4, e apresentamos as informações coletadas no monitoramento logo abaixo. Para executar o servidor, utilizamos o comando:
/usr/share/globus/sbin# ./globus-gridftp-server -c /etc/gridftp.confUtilizando outro terminal, é possível verificar a execução do serviço gridftp-server, na porta 5000, por meio do comando:
netstat -l -nPara realizar uma transferência, apartir da estação cliente, utilize o comando:
/usr/share/globus/bin# ./globus-url-copy -dbg -vb file:///home/sander/PC_Lab_2.pdf ftp://192.168.1.67:5000/tmp/PC_Lab_2.pdfroot@Matrix:/home/sander# more /var/log/gridftp_s.log
[24646] Tue Aug 3 18:55:22 2010 :: GFork functionality not enabled: globus_gfork_child_worker_start() failed:
globus_gfork: GFork error: Env not set
[24646] Tue Aug 3 18:55:22 2010 :: Configuration read from /etc/gridftp.conf.
[24646] Tue Aug 3 18:55:22 2010 :: Server started in daemon mode.
[24646] Tue Aug 3 18:55:25 2010 :: New connection from: Matrix.local:37723
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [CLIENT]: USER anonymous
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [SERVER]: 331 Password required for anonymous.
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [CLIENT]: PASS globus@
[24646] Tue Aug 3 18:55:25 2010 :: User anonymous successfully authorized.
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [CLIENT]: PASS globus@
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [SERVER]: 230 User anonymous logged in.
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [CLIENT]: SITE HELP
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [SERVER]: 214-The following commands are recognized:
ALLO APPE REST CWD CDUP DCAU EPSV FEAT
ERET MDTM STAT ESTO HELP LIST MODE NLST
MLSD PASV RNFR MLST NOOP OPTS STOR PASS
PBSZ PORT PROT SITE EPRT RETR SPOR SCKS
TREV PWD QUIT SBUF SIZE SPAS STRU SYST
RNTO TYPE USER LANG MKD RMD DELE CKSM
214 End
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [CLIENT]: FEAT
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [SERVER]: 211-Extensions supported
AUTHZ_ASSERT
UTF8
LANG EN
DCAU
PARALLEL
SIZE
MLST Type*;Size*;Modify*;Perm*;Charset;UNIX.mode*;UNIX.owner*;UNIX.group*;Unique*;UNIX.slink*;
ERET
ESTO
SPAS
SPOR
REST STREAM
MDTM
PASV AllowDelayed;
211 End.
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [CLIENT]: SITE CLIENTINFO scheme=ftp;appname="globus-url-copy";appver="5.7 (gcc32dbg, 1279048311-80) [Globus Toolkit 5.0.2]
";
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [SERVER]: 250 OK.
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [CLIENT]: TYPE I
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [SERVER]: 200 Type set to I.
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [CLIENT]: PASV
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [SERVER]: 227 Entering Passive Mode (10,10,0,72,223,54)
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [CLIENT]: ALLO 106588
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [SERVER]: 200 ALLO command successful.
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [CLIENT]: STOR /tmp/PC_Lab_2.pdf
[24646] Tue Aug 3 18:55:25 2010 :: Starting to transfer "/tmp/PC_Lab_2.pdf".
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [SERVER]: 150 Begining transfer.
[24646] Tue Aug 3 18:55:25 2010 :: Finished transferring "/tmp/PC_Lab_2.pdf".
[24646] Tue Aug 3 18:55:25 2010 :: Transfer stats: DATE=20100803215525.193049 HOST=matrix PROG=globus-gridftp-server NL.EVNT=FTP_INFO START=20100803215525.164476 USER=anonymous F
ILE=/tmp/PC_Lab_2.pdf BUFFER=65536 BLOCK=262144 NBYTES=106588 VOLUME=/ STREAMS=1 STRIPES=1 DEST=[10.10.0.72] TYPE=STOR CODE=226
[24646] Tue Aug 3 18:55:25 2010 :: Matrix.local:37723: [SERVER]: 226 Transfer Complete.
[24646] Tue Aug 3 18:55:25 2010 :: Closed connection from Matrix.local:37723
Os testes para realizar transferências com o ipv6 (cliente globus-url-copy e o servidor GridFTP) não foram bem sucedidos, e esperamos encontrar a solução em breve.
== References ==
https://wiki.birncommunity.org:8443/display/BIRNDOC/GridFTP+Guides
http://www.globus.org/toolkit/docs/5.0/5.0.0/data/gridftp/
http://technical.bestgrid.org/index.php/Setup_GridFTP_on_IBM_p520