O prompt de login do Telnet é muito lento apenas no IP estático, possível problema no rDNS?

1

Eu mudei a minha máquina CentOS do DHCP para o roteamento estático, usando telnet para conectar-se a ele passou de praticamente instantâneo, para levar cerca de 30 segundos para o prompt de login inicial para exibir.

Aparentemente, isso tem algo a ver com o servidor fazendo uma pesquisa reversa de DNS para descobrir quem está se conectando à caixa, que depende do arquivo hosts.

Devo adicionar algo ao / etc / hosts para acelerar o processo? Meu arquivo é extremamente limitado agora, isso é praticamente uma nova instalação.

[root@Azaz07]# cat /etc/hosts
127.0.0.1       localhost.localdomain localhost
::1     localhost6.localdomain6 localhost6

Telnet0 concluído localmente responde imediatamente.

    
por some1 15.11.2013 / 23:11

2 respostas

2

Meu discurso de telnet

Em geral, aconselho que você não use telnet , mas use ssh . O Telnet é um passivo de segurança que ninguém deveria estar usando neste dia e idade. Veja este artigo para uma demonstração de como alguém pode facilmente farejar pacotes telnet ao atravessar a rede usando wireshark e obter acesso às suas credenciais. O artigo é intitulado: Farejando o Telnet usando o Wireshark . Aqui está uma captura de tela de uma tentativa de login usando o telnet:

Corrigindoseuproblema

Noentanto,sevocêtiverqueusarabsolutamentetelnet,eucomeçareidiagnosticandoocomandotelnetquevocêestáusandocomaferramenta,strace.

Exemplo

Parademonstraroproblemaquevocêestáenfrentando,modifiqueimeuarquivo/etc/resolv.confparaquehouvesseumservidorDNSfalsonamistura.IssocausariaalentidãoqueoOPestavaexperimentandonofinaldascontas.

#/etc/resolv.conf#GeneratedbyNetworkManagerdomainmydom.net.searchmydom.net.nameserver1.2.3.4nameserver192.168.1.101

Euentãoexecuteitelnetdaseguinteforma:

$strace-Ttelnetskinner

Estaseçãodasaídamostraoqueestádemorandotanto:

...socket(PF_INET,SOCK_DGRAM|SOCK_NONBLOCK,IPPROTO_IP)=3<0.000021>connect(3,{sa_family=AF_INET,sin_port=htons(53),sin_addr=inet_addr("1.2.3.4")}, 16) = 0 <0.000023>
poll([{fd=3, events=POLLOUT}], 1, 0)    = 1 ([{fd=3, revents=POLLOUT}]) <0.000012>
sendto(3, "5N
$ time telnet skinner
Trying 192.168.1.3...
telnet: connect to address 192.168.1.3: Connection refused

real    0m10.030s
user    0m0.001s
sys 0m0.003s
$ strace -T telnet skinner
...
connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.1.101")}, 16) = 0 <0.000018>
poll([{fd=3, events=POLLOUT}], 1, 0)    = 1 ([{fd=3, revents=POLLOUT}]) <0.000010>
sendto(3, "D3
$ time telnet skinner
Trying 192.168.1.3...
telnet: connect to address 192.168.1.3: Connection refused

real    0m0.009s
user    0m0.000s
sys 0m0.002s
# /etc/resolv.conf
# Generated by NetworkManager
domain mydom.net.
search mydom.net.
nameserver 1.2.3.4
nameserver 192.168.1.101
$ strace -T telnet skinner
...
socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 3 <0.000021>
connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("1.2.3.4")}, 16) = 0 <0.000023>
poll([{fd=3, events=POLLOUT}], 1, 0)    = 1 ([{fd=3, revents=POLLOUT}]) <0.000012>
sendto(3, "5N
$ time telnet skinner
Trying 192.168.1.3...
telnet: connect to address 192.168.1.3: Connection refused

real    0m10.030s
user    0m0.001s
sys 0m0.003s
$ strace -T telnet skinner
...
connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.1.101")}, 16) = 0 <0.000018>
poll([{fd=3, events=POLLOUT}], 1, 0)    = 1 ([{fd=3, revents=POLLOUT}]) <0.000010>
sendto(3, "D3
$ time telnet skinner
Trying 192.168.1.3...
telnet: connect to address 192.168.1.3: Connection refused

real    0m0.009s
user    0m0.000s
sys 0m0.002s
%pre%%pre%%pre%%pre%%pre%%pre%%pre%grinchymydomnet%pre%%pre%"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000054> poll([{fd=3, events=POLLIN|POLLOUT}], 1, 5000) = 1 ([{fd=3, revents=POLLOUT}]) <0.000009> sendto(3, "s2%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%grinchymydomnet%pre%%pre%"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000021> poll([{fd=3, events=POLLIN}], 1, 4999) = 1 ([{fd=3, revents=POLLIN}]) <0.005300> ioctl(3, FIONREAD, [84]) = 0 <0.000024> recvfrom(3, "D350%pre%%pre%%pre%%pre%grinchymydomnet%pre%%pre%"..., 2048, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.1.101")}, [16]) = 84 <0.000016> poll([{fd=3, events=POLLIN}], 1, 4994) = 1 ([{fd=3, revents=POLLIN}]) <0.003688> ...
%pre%%pre%%pre%%pre%%pre%%pre%grinchybubbanet%pre%%pre%"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000073> poll([{fd=3, events=POLLIN|POLLOUT}], 1, 5000) = 1 ([{fd=3, revents=POLLOUT}]) <0.000012> sendto(3, "32%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%grinchybubbanet%pre%%pre%"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000027> poll([{fd=3, events=POLLIN}], 1, 4999) = 0 (Timeout) <5.004038> ...
%pre%%pre%%pre%%pre%grinchymydomnet%pre%%pre%"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000054> poll([{fd=3, events=POLLIN|POLLOUT}], 1, 5000) = 1 ([{fd=3, revents=POLLOUT}]) <0.000009> sendto(3, "s2%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%grinchymydomnet%pre%%pre%"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000021> poll([{fd=3, events=POLLIN}], 1, 4999) = 1 ([{fd=3, revents=POLLIN}]) <0.005300> ioctl(3, FIONREAD, [84]) = 0 <0.000024> recvfrom(3, "D350%pre%%pre%%pre%%pre%grinchymydomnet%pre%%pre%"..., 2048, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.1.101")}, [16]) = 84 <0.000016> poll([{fd=3, events=POLLIN}], 1, 4994) = 1 ([{fd=3, revents=POLLIN}]) <0.003688> ...
%pre%%pre%%pre%%pre%%pre%%pre%grinchybubbanet%pre%%pre%"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000073> poll([{fd=3, events=POLLIN|POLLOUT}], 1, 5000) = 1 ([{fd=3, revents=POLLOUT}]) <0.000012> sendto(3, "32%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%grinchybubbanet%pre%%pre%"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000027> poll([{fd=3, events=POLLIN}], 1, 4999) = 0 (Timeout) <5.004038> ...

O poll acima que experimentou o "Tempo Limite" foi nossa consulta DNS para o servidor 1.2.3.4 na porta 53. Podemos ver quando usamos a opção -T , que essa chamada de uma função levou ~ 5 segundos até esgotado.

Também podemos confirmar o período de tempo usando o comando time da seguinte forma:

%pre%

Usando um servidor DNS correto

Colocar um servidor DNS correto em /etc/resolv.conf e telnet agora tem muito mais desempenho.

%pre%

O sincronismo usando time também mostra o mesmo:

%pre%     
por 15.11.2013 / 23:16
0

Eu estava usando 4.2.2.1 e 4.2.2.2 para servidores DNS atribuídos estaticamente - eu os troquei para 192.168.0.1 pelo roteador e resolvi o problema.

    
por 15.11.2013 / 23:22

Tags