encurta o pedido para o localhost IPv6 fica preso

5

Um contêiner docker meu expõe uma interface HTTP na porta 8500, que é  mapeado para a porta do host 8500. Ele não está IPv6 ativado.  Isso ainda significa, eu deveria ser capaz de acessá-lo em  localhost: 8500. IPv6 é o preferido, então acabo com um pedido para [:: 1]: 8500. Este  fica preso, nunca mais volta.

Reproduzindo isso com o curl, esse comando fica preso:

curl -g -6 "http://[::1]:8500"

A opção --verbose do curl não revela nada, nem o --ascii-trace. Ao mesmo tempo, uma solicitação para o localhost do IPv4 é bem-sucedida:

curl http://127.0.0.1:8500

me dando o HTML esperado. Se eu executar um servidor HTTP IPv4 no loopback, usando

python -m SimpleHTTPServer 4001

então eu recebo muito HTML para o localhost do IPv4

curl http://127.1:4001

e uma falha de conexão adequada para o IPv6:

curl -g -6 "http://[::1]:4001"
curl: (7) Failed to connect to ::1 port 4001: Connection refused

Coisas a observar: Docker 1.7.1. O IPv6 não está ativado para o contêiner, portanto não há regras de iptables IPv6. (ip6tables -v -L não dá nada)

Minha pergunta é: por que a solicitação fica paralisada e fazendo o que?

    
por mknecht 01.12.2015 / 10:00

0 respostas