o memcached suporta o IPv6. Você pode especificá-lo na inicialização usando o parâmetro -l
. Como o IPv4 e o IPv6 se comportam em comparação com uma instalação padrão? Vamos dar uma olhada em uma sessão Debian onde instalamos o memcached, ouvindo a (s) porta (s) padrão, e iniciamos dois daemons memcached, um ligado a um IP da v6 e um ligado a um IP da v4.
Linux hostname 3.0.4-linode38 #1 SMP Thu Sep 22 14:59:08 EDT 2011 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. root@hostname:~# apt-get install memcached Setting up memcached (1.4.5-1) ... Starting memcached: memcached. root@hostname:~# apt-get install libmemcached-tools libmemcached-dev Setting up libmemcached-tools (0.40-1) ... root@hostname:~# memccapable ascii quit [pass] ascii version [pass] ascii verbosity [FAIL] 1 of 54 tests failed
Podemos usar memccapable
para verificar se memcached
está sendo executado.
root@hostname:~# memcached -d -P /tmp/mcd.pid -v -l 2600:3c03::dead:beef:feeb:daed -u nobody -p 10001 -U 10001 root@hostname:~# memcached -d -P /tmp/mcd2.pid -v -l 10.0.1.2 -u nobody -p 10002 -U 10002
Acabamos de iniciar nosso memcached IPv6 na porta 10001
e nosso memcached IPv4 na porta 10002
root@hostname:~# memcstat --servers=127.0.0.1:11211,127.0.0.1:10001,127.0.0.1:10002 Server: 127.0.0.1 (11211) pid: 2131 uptime: 689 time: 1325757557 version: 1.4.5 Server: 127.0.0.1 (10001) pid: 0 uptime: 0 time: 0 version: Server: 127.0.0.1 (10002) pid: 0 uptime: 0 time: 0 version:
memcstat
nos permite verificar o status de vários hosts de uma só vez. Vemos que o memcached não está vinculado às portas localhost 10001
ou 10002
, o que faz sentido, já que especificamos nosso IP (s) explicitamente. Agora vamos verificar nosso endereço IPv4 para os servidores do memcached em cada uma das portas.
root@hostname:~# memcstat --servers=10.0.1.2:11211,10.0.1.2:10001,10.0.1.2:10002 Server: 10.0.1.2 (11211) pid: 0 uptime: 0 time: 0 version: Server: 10.0.1.2 (10001) pid: 0 uptime: 0 time: 0 version: Server: 10.0.1.2 (10002) pid: 2699 uptime: 89 time: 1325757596 version: 1.4.5
Vemos que nosso memcached IPv6 não está acessível em nosso endereço IPv4. memcstat não é (como no Debian 6.0.3) ccapable de pegar endereços IPv6 na linha de comando, então nós faremos três memccapable's separados.
root@hostname:~# memccapable -h 2600:3c03::dead:beef:feeb:daed -p 11211 ascii quit [pass] ascii version [pass] ascii verbosity [FAIL] 1 of 54 tests failed root@hostname:~# memccapable -h 2600:3c03::dead:beef:feeb:daed -p 10001 ascii quit [pass] ascii version [pass] ascii verbosity [FAIL] 1 of 54 tests failed root@hostname:~# memccapable -h 2600:3c03::dead:beef:feeb:daed -p 10002 Failed to connect socket: Connection refused Failed to connect to : Connection refused root@hostname:~#
Isso é interessante. A instalação padrão do memcached está vinculada ao localhost e ao endereço IPv6, mas não ao nosso endereço IPv4. Isso pode ser específico do servidor / ambiente de hospedagem. É importante observar que nossa porta explicitamente definida 10002 no endereço IPv4 não está disponível, especificando nosso endereço IPv6 e nossa instância da porta 10001.
Então, sim, o memcached suporta o IPv6. Você também pode especificar essas opções no arquivo /etc/memcached.conf. Por favor, tome nota do aviso nesse arquivo que sugere apenas ouvir em uma interface que é protegida por firewall. Se sua interface IPv6 for pública / acessível, você corre o risco de expor itens de cache confidenciais.