mysql, ssh, rsync, git pendurar com o nome dns, mas não o endereço IP no Ubuntu 12.04

0

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, "16
Linux 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, "16
Linux 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.

    
por user3564458 23.04.2014 / 18:24

2 respostas

0

Estou respondendo isso cerca de uma hora depois de fazer a última edição da postagem original. Sem qualquer alteração no meu sistema, o getent começou a funcionar corretamente, assim como os programas que originalmente solicitaram este post.

Devo concluir que o problema foi um erro no servidor DNS no roadrunner que acaba de ser corrigido.

    
por 24.04.2014 / 19:09
0

Eu tive um problema semelhante. Meu servidor CentOS 5.5 OpenVZ (2.6.18-238.5.1.el5.028stab085.5) iria travar muitos programas, como ssh ou até mesmo sudo e todos eles pararam no que parece ser uma chamada de rede:

socket(PF_NETLINK, SOCK_RAW, 0)         = 5
bind(5, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(5, {sa_family=AF_NETLINK, pid=115051, groups=00000000}, [1443221608318631948]) = 0
sendto(5, "
socket(PF_NETLINK, SOCK_RAW, 0)         = 5
bind(5, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(5, {sa_family=AF_NETLINK, pid=115051, groups=00000000}, [1443221608318631948]) = 0
sendto(5, "%pre%%pre%%pre%%pre%45vS%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
%pre%%pre%%pre%45vS%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20

Eu não consegui nem reiniciar os serviços de rede. Demorou um reboot para voltar ao normal ... alguém entende o que é o fim remoto deste socket?

    
por 16.05.2014 / 18:24