latência de rede grande em localhohst

0

Eu tenho um laptop, que eu quero otimizar para aplicativos voip. Eu tenho o problema de que os aplicativos que se conectam ao host local sofrem de grandes atrasos. Basicamente nada acontece por cerca de 2-3 segundos quando um aplicativo está se conectando a outro no mesmo computador. Parece um tempo "inativo". Eu fiz a pergunta no fórum voip, e uma das respostas foi sugerir que "não há nenhum DNS reverso válido para um dos endereços sendo usados, e nem está obtendo resposta definitiva" não conhecida "do servidor DNS"

ping localhost retorna 0.03ms - não é ruim

Agora, quando eu cavo e330 (localhost) quando o computador está conectado à rede eu recebo:

dig e330

; <<>> DiG 9.8.1-P1 <<>> e330
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 46557
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;e330.              IN  A

;; AUTHORITY SECTION:
.           600 IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2015012700 1800 900 604800 86400

;; Query time: 38 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jan 27 12:35:08 2015
;; MSG SIZE  rcvd: 97

38 ms parece ruim.

Em seguida, eu desconecto o computador da rede e faço "dig e330" novamente. Desta vez Tempo de consulta: 0 ms No entanto, não importa se o meu laptop está conectado à rede ou não. O tempo "inativo" é praticamente o mesmo.

Pelo que li, vejo que consigo configurar DNS e DHCP no meu laptop. Mas eu não quero que ele seja executado como um servidor. É um laptop e tem que se conectar a outras redes em qualquer lugar sem reconfigurar nada.

O que pode ser feito sobre "DNS reverso"? (Eu entendo o que é, mas eu não sabia que há algo que pode ser feito sobre isso) Existe mais alguma coisa que possa ser feita do ponto de vista do Linux para acelerar as interfaces de rede em aplicativos VOIP?

Linux E330 3.13.11-03131111-genéricos # 201411111336 SMP Ter Nov 11 18:55:51 UTC 2014 i686 i686 i386 GNU / Linux

    
por Dictador 27.01.2015 / 13:19

2 respostas

1

Eu resolvi o problema. Parece que é o mesmo em todas as máquinas Ubuntu. Pelo menos em 12.04.

Foi assim que depurei o problema:

  • Eu já tinha o Asterisk, o Linphone e o Wireshark já instalados. Eu corro todos eles.
  • Eu faço o Wireshark para ouvir "lo". Normalmente não havia nada aparecendo no Wireshark.
  • Então eu chamo um hello world em localhost . Eu vejo que a primeira comunicação do Linphone para asterisco acontece a 0seg, então algo acontece a 0.5seg, depois uma longa pausa e o próximo pacote é quase 3 segundos depois. Esse foi o meu problema.

Abaixo está como eu consertei. Ele se livra daquele longo atraso de 3 segundos, embora ainda haja 0.5sec, que eu não consigo me livrar.

Como se verifica dnsmasq que vem com network-manager estava resolvendo localhost perguntando um servidor DNS remoto, abre no meu caso.

Em /etc/NetworkManager/NetworkManager.conf , comentei #dns=dnsmasq

então

sudo service network-manager stop
sudo netstat -anlp | grep -w LISTEN

elimine todos os processos dnsmasq em execução

sudo apt-get install dnsmasq

Em seguida, configure o dnsmasq, certifique-se de que em /etc/dnsmasq.conf você tem

# Listen only on localhost
listen-address=127.0.0.1
bind-interfaces

E isso é tudo. Você terá que reiniciar, acho que logout e login também devem ser feitos.

Para ver se seu sistema está atualmente usando o Dnsmasq, execute

netstat -ulnp | grep ":53 "

Você pode executar

sudo /etc/init.d/dnsmasq restart

para ver se você não está recebendo erros. Agora "dig localhost" leva 0s.

Alguns links que me ajudaram: link

    
por Dictador 17.02.2015 / 19:28
0

O que você está vendo é realmente um fracasso. Ele não está obtendo uma resposta localmente, está pesquisando on-line e, finalmente, desistindo de um erro NXDOMAIN . Está demorando tanto porque ele está consultando os principais servidores-raiz que estão fora da sua rede local.

Veja como deve ser. Isto é o que eu vejo quando eu consultar meu host:

oli@bert:~$ dig bert

; <<>> DiG 9.9.5-3ubuntu0.1-Ubuntu <<>> bert
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25238
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;bert.              IN  A

;; Query time: 2 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Tue Jan 27 12:37:37 GMT 2015
;; MSG SIZE  rcvd: 33

Você notará que não há root-servers.net atividade.

Parece que você provavelmente não tem uma linha no seu /etc/hosts que especifica seu nome de host. Fácil de corrigir, basta adicionar algo assim:

127.0.1.1    e330

Em seguida, tente dig e330 novamente.

    
por Oli 27.01.2015 / 13:40