Certos programas baseados em rede recentemente (problema não existia há algumas semanas atrás) começaram a aparecer para mim. Alguns que eu experimentei com o problema são mysql, ssh, rsync e git. Meu primeiro pensamento foi um problema de conectividade de rede, mas o ping dos hosts em questão (servidor web e servidor mysql hospedado por godaddy.com) mostrou que eles estavam vivos. (Eu usei o nome de domínio com ping em ambos os casos.) Em algum momento tentei usar o endereço IP dos hosts diretamente e os dois programas funcionaram conforme o esperado.
Eu não tentei conectar esses programas a outros hosts.
Eu fiz um strace no mysql para ver onde estava pendurado e aqui está o final dessa saída:
stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=192, ...}) = 0
socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
poll([{fd=3, events=POLLOUT}], 1, 0) = 1 ([{fd=3, revents=POLLOUT}])
sendto(3, "16Linux Popwease 3.2.0-60-generic #91-Ubuntu SMP Wed Feb 19 03:54:44 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
ccc@Popwease:~$ getent hosts amazon.com
::ffff:67.215.65.145 amazon.com.nycap.rr.com
ccc@Popwease:~$ getent hosts amazon.com.
176.32.98.166 amazon.com
205.251.242.54 amazon.com
72.21.194.212 amazon.com
72.21.215.232 amazon.com
ccc@Popwease:~$ getent hosts gutenberg.org
::ffff:67.215.65.145 gutenberg.org.nycap.rr.com
ccc@Popwease:~$ getent hosts gutenberg.org.
152.19.134.47 gutenberg.org
ccc@Popwease:~$ getent hosts www.gutenberg.org
152.19.134.47 gutenberg.org www.gutenberg.org
ccc@Popwease:~$ getent hosts www.amazon.com
::ffff:67.215.65.145 www.amazon.com.nycap.rr.com
stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=192, ...}) = 0
socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
poll([{fd=3, events=POLLOUT}], 1, 0) = 1 ([{fd=3, revents=POLLOUT}])
sendto(3, "16Linux Popwease 3.2.0-60-generic #91-Ubuntu SMP Wed Feb 19 03:54:44 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
ccc@Popwease:~$ getent hosts amazon.com
::ffff:67.215.65.145 amazon.com.nycap.rr.com
ccc@Popwease:~$ getent hosts amazon.com.
176.32.98.166 amazon.com
205.251.242.54 amazon.com
72.21.194.212 amazon.com
72.21.215.232 amazon.com
ccc@Popwease:~$ getent hosts gutenberg.org
::ffff:67.215.65.145 gutenberg.org.nycap.rr.com
ccc@Popwease:~$ getent hosts gutenberg.org.
152.19.134.47 gutenberg.org
ccc@Popwease:~$ getent hosts www.gutenberg.org
152.19.134.47 gutenberg.org www.gutenberg.org
ccc@Popwease:~$ getent hosts www.amazon.com
::ffff:67.215.65.145 www.amazon.com.nycap.rr.com
%pre%%pre%%pre%%pre%%pre%%pre%mendelssohnalbdb%pre%73"..., 62, MSG_NOSIGNAL, NULL, 0) = 62
poll([{fd=3, events=POLLIN}], 1, 5000) = 1 ([{fd=3, revents=POLLIN}])
ioctl(3, FIONREAD, [78]) = 0
recvfrom(3, "1610%pre%%pre%%pre%%pre%%pre%%pre%mendelssohnalbdb%pre%73"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, [16]) = 78
close(3) = 0
open("/etc/gai.conf", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=3343, ...}) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=3343, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe8a686a000
read(3, "# Configuration for getaddrinfo("..., 4096) = 3343
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7fe8a686a000, 4096) = 0
futex(0x7fe8a5ad14a0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
socket(PF_NETLINK, SOCK_RAW, 0) = 3
bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(3, {sa_family=AF_NETLINK, pid=2640, groups=00000000}, [12]) = 0
sendto(3, "%pre%%pre%%pre%%pre%51WS%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"0%pre%%pre%%pre%%pre%%pre%51WSP\n%pre%%pre%06%pre%%pre%%pre%%pre%%pre%7%pre%%pre%"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 108
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"@%pre%%pre%%pre%%pre%%pre%51WSP\n%pre%%pre%\n006%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 128
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"%pre%%pre%%pre%%pre%%pre%51WSP\n%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(3) = 0
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET6, sin6_port=htons(3306), inet_pton(AF_INET6, "::ffff:67.215.65.145", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
getsockname(3, {sa_family=AF_INET6, sin6_port=htons(38834), inet_pton(AF_INET6, "::ffff:192.168.0.104", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
connect(3, {sa_family=AF_UNSPEC, sa_data="%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"}, 16) = 0
connect(3, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("97.74.31.26")}, 16) = 0
getsockname(3, {sa_family=AF_INET6, sin6_port=htons(56707), inet_pton(AF_INET6, "::ffff:192.168.0.104", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
close(3) = 0
socket(PF_INET6, SOCK_STREAM, IPPROTO_TCP) = 3
connect(3, {sa_family=AF_INET6, sin6_port=htons(3306), inet_pton(AF_INET6, "::ffff:67.215.65.145", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = ? ERESTARTSYS (To be restarted)
--- SIGINT (Interrupt) @ 0 (0) ---
+++ killed by SIGINT +++
%pre%%pre%%pre%%pre%%pre%mendelssohnalbdb%pre%73"..., 62, MSG_NOSIGNAL, NULL, 0) = 62
poll([{fd=3, events=POLLIN}], 1, 5000) = 1 ([{fd=3, revents=POLLIN}])
ioctl(3, FIONREAD, [78]) = 0
recvfrom(3, "1610%pre%%pre%%pre%%pre%%pre%%pre%mendelssohnalbdb%pre%73"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, [16]) = 78
close(3) = 0
open("/etc/gai.conf", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=3343, ...}) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=3343, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe8a686a000
read(3, "# Configuration for getaddrinfo("..., 4096) = 3343
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7fe8a686a000, 4096) = 0
futex(0x7fe8a5ad14a0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
socket(PF_NETLINK, SOCK_RAW, 0) = 3
bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(3, {sa_family=AF_NETLINK, pid=2640, groups=00000000}, [12]) = 0
sendto(3, "%pre%%pre%%pre%%pre%51WS%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"0%pre%%pre%%pre%%pre%%pre%51WSP\n%pre%%pre%06%pre%%pre%%pre%%pre%%pre%7%pre%%pre%"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 108
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"@%pre%%pre%%pre%%pre%%pre%51WSP\n%pre%%pre%\n006%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 128
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"%pre%%pre%%pre%%pre%%pre%51WSP\n%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(3) = 0
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET6, sin6_port=htons(3306), inet_pton(AF_INET6, "::ffff:67.215.65.145", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
getsockname(3, {sa_family=AF_INET6, sin6_port=htons(38834), inet_pton(AF_INET6, "::ffff:192.168.0.104", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
connect(3, {sa_family=AF_UNSPEC, sa_data="%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"}, 16) = 0
connect(3, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("97.74.31.26")}, 16) = 0
getsockname(3, {sa_family=AF_INET6, sin6_port=htons(56707), inet_pton(AF_INET6, "::ffff:192.168.0.104", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
close(3) = 0
socket(PF_INET6, SOCK_STREAM, IPPROTO_TCP) = 3
connect(3, {sa_family=AF_INET6, sin6_port=htons(3306), inet_pton(AF_INET6, "::ffff:67.215.65.145", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = ? ERESTARTSYS (To be restarted)
--- SIGINT (Interrupt) @ 0 (0) ---
+++ killed by SIGINT +++
A partir disso, parece um problema getaddrinfo (3). Parece que está tentando se conectar usando o IPv6, mas eu não fiz nada para configurar para o IPv6 e tenho certeza que teria que configurar algo no final do godaddy para usar o IPv6 para conectar a esses hosts. / p>
Meu sistema é um sistema Xubuntu 12.04 LTS, no qual eu aceito as atualizações normais. Meu /var/logs/apt/history.log mostra as atualizações nas últimas 2 semanas para o openssh-client, o openssl e o libssl1. Existem outros, mas esses são os únicos que parecem relevantes para mim.
Relatórios de nomes:
%pre%
Estou no Google e pesquisei desde a noite passada com muito pouca iluminação sobre o que está acontecendo.
24 de abril de 2014
Algumas informações adicionais. Mais evidência de um problema getaddrinfo. Eu aprendi que host e cavar usam o gethostbyname mais antigo, mas que "getent hosts ---" usa getaddrinfo. Isso explica porque eu poderia obter o endereço IP do nome usando o host.
Veja o que recebo quando uso o getent:
%pre%
Note que ".nycap.rr.com" é o domínio do meu provedor de internet. Então, a menos que eu coloque um final '.
no nome de domínio, getent retorna um endereço IPv6 falso. Mas o www.gutenberg.org parece ser uma exceção. OK, amazon.com é um domínio e você está confiando em um padrão DNS para obter um host. Mas o último exemplo parece ofuscar essa teoria.
O serviço de hospedagem que eu estava tentando acessar originalmente usa um host padrão para o domínio, mas tem um 'www'. Quando eu coloco um ponto final no nome ou nomeio o nome completo, não fico mais com o controle dos programas em questão. Parecia-me que o servidor do DB godaddy era um nome completo, mas requer um 'final'. também para trabalhar.