2 votes

pas d'internet pendant le téléchargement de torrents - semble lié au DNS

J'ai un problème très particulier concernant la connexion internet lors du téléchargement de torrents. Avant que vous ne concluiez que je devrais "réduire le nombre de connexions semi-ouvertes et d'utilisateurs", laissez-moi vous dire que c'est ce que j'ai fait (10 connexions semi-ouvertes, 20 utilisateurs, ça ne marche toujours pas, et je n'ai plus aucun téléchargement en cours).

Je dois aussi dire que la qualité de service ne devrait pas être nécessaire. D'habitude, dans mon expérience de téléchargement de torrents (sous linux/Windows et mac), la connexion internet était partagée entre tous les processus. Ici, il semble que les torrents consomment toute la bande passante disponible. (Le noyau ne devrait-il pas diviser le temps entre les processus qui demandent à envoyer/recevoir des paquets ?)

Enfin, je dois dire que ce problème a commencé à apparaître après la mise à jour vers slack 64bit v14 (à partir de v13.37).

Le problème semble donc être lié au fait que le serveur DNS ne répond pas une fois que j'ai commencé le téléchargement avec ktorrent ou rtorrent. Les torrents se téléchargent à une vitesse raisonnable, mais aucun site web ne se charge. Donc "nslookup" et "dig" me diront que le serveur dns (qui est situé sur le même pc) n'a pas été trouvé :

nslookup facebook.com
;; connection timed out; no servers could be reached

y

nass@stargaze:~$ dig !$
dig facebook.com
; <<>> DiG 9.9.1-P3 <<>> facebook.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 26154
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

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

;; Query time: 1125 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Aug  2 01:14:46 2013
;; MSG SIZE  rcvd: 41

redémarrer le serveur DNS (bind) pendant que le torrent est en cours d'exécution n'arrangera généralement PAS les choses, même si j'ai parfois vu cela se produire. L'arrêt du DNS, la suppression des fichiers *.jnl générés et le redémarrage semblent fonctionner, mais là encore, ce n'est pas toujours le cas. (Je n'ai pas de modèle répété pour ce cas). Je ne peux pas dire que j'ai trouvé "un moyen" de rétablir l'internet.

  • En général, le fait de fermer ktorrent et d'attendre quelques secondes peut même réparer l'internet tout seul.
  • D'autres fois, la fermeture du client ktorrent et le redémarrage du serveur DNS fonctionnent plus rapidement que dans le cas précédent.
  • Parfois, des redémarrages répétés ne permettent PAS de rétablir le DNS (mais une attente de quelques minutes résout le problème).
  • J'ai récemment commencé à arrêter named, à supprimer les fichiers *.jnl et à le redémarrer. Cette méthode a été couronnée de succès à 100% lors de mes (seulement 2) essais.

le journal du pare-feu, le journal /var/log/messages/ et le journal de named n'enregistrent rien d'étrange.

Je n'ai pas utilisé tcpdump, wireshark, netstat donc je ne sais pas si je peux utiliser ces outils pour identifier ...quelque chose ! Quelqu'un pourrait-il m'aider ?

Puisque ce problème semble être lié -principalement- au serveur dns, je joins mon fichier dns et explique un peu la configuration de mon pc :

donc l'internet ADSL arrive dans le modem (fourni par le FAI, toujours allumé, même quand je n'ai pas d'internet). Le modem est connecté à ce pc sur eth1 où je télécharge des torrents. Ce pc est mon réseau domestique et mon serveur de fichiers (et mon bureau quand je suis absent - je me connecte en utilisant nx). Il fait tourner des serveurs iptables, dns et squid (entre autres). Ensuite, à partir de eth0 de ce pc, le wifi et le commutateur intranet sont alimentés. Le squid fonctionne sur une configuration transparente mais il ne devrait pas interférer avec le trafic torrent puisqu'il se fait sur des ports différents (plutôt que sur le port 80).

Je joins donc mon fichier named.conf, pour essayer d'obtenir un retour d'information (peut-être une configuration logiquement erronée qui n'est pas détectée par le vérificateur de fichier de configuration nommé de webmin - avec lequel j'ai vérifié à plusieurs reprises que le fichier named.conf est syntaxiquement correct).

named.conf est aquí

Si cela ne pose pas de problème, puis-je commencer à utiliser tcpdump (et tout autre outil) sous votre direction pour recueillir des informations sur ce qui pourrait causer ce problème ?

Merci beaucoup pour votre aide :)

EDIT : mon /etc/resolv.conf ressemble à ceci :

domain skails.home
nameserver 127.0.0.1

3voto

Andrew B Points 324

Votre indice est cette ligne :

;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 26154

En supposant que resolv.conf ne contient que 127.0.0.1 Cela vous indique que le serveur de mise en cache a décidé que les serveurs de noms en amont ne peuvent pas être atteints ou qu'ils sont mal configurés. À ce moment-là, le serveur va renoncer sur la communication avec ce domaine. Cela signifie que le serveur est ajouté à la liste des serveurs de noms boiteux. Ceci est différent de cache négatif qui ne s'applique qu'aux NXDOMAIN réponses.

Il va de soi qu'une fois que les facebook.com a été jugée morte, le serveur de noms de cache ne va pas se donner la peine d'essayer de la résoudre pendant un certain temps. Vous devez maintenant comprendre pourquoi cela se produit.

Supposons que vous soyez confronté à une congestion du réseau et que facebook.com n'est pas dans le cache.

  • named va essayer de parcourir votre liste de transitaires jusqu'à ce qu'il trouve un serveur de noms qui répondra avec autre chose que REFUSED pour cet enregistrement. NXDOMAIN y SERVFAIL les réponses qu'il acceptera. Même si les autres serveurs auraient répondu différemment, tout ce qui intéresse votre serveur est de savoir si un enregistrement se trouve ou non dans le cache, et la première réponse de valide qu'il reçoit.
  • Une fois qu'il a trouvé une réponse, celle-ci est mise en cache. Pour le meilleur ou pour le pire.
  • L'absence de réponse de l'un d'entre eux sera considérée comme une SERVFAIL également.

Pour votre test particulier, la requête et la réponse sont de petite taille. UDP n'a pas la surcharge de session associée à TCP. Pour obtenir une réponse de SERVFAIL ...

  • La première réponse valide que vous avez reçue était SERVFAIL pour ce domaine.
  • Tous les transitaires sont inaccessibles. Vous n'avez pas réussi à obtenir une réponse de chacun d'entre eux.

La seule façon de savoir avec certitude ce qui se passe serait de lancer une capture de paquets, puis de redémarrer votre serveur de noms et d'analyser les paquets. Il se peut que l'un de vos transitaires soit défectueux et renvoie des paquets de SERVFAIL fréquemment, ou bien votre congestion est telle que huit minuscules recherches DNS sur l'ensemble de votre liste de transitaires échouent.

2voto

LawrenceC Points 70381

(Le noyau ne devrait-il pas répartir le temps entre les processus qui demandent à envoyer/recevoir des paquets ?)

La situation typique d'une connexion Internet lente ou inexistante, saturée par quelque chose comme Bittorrent, est la suivante entrant le trafic en amont (qui est généralement inférieur au trafic en aval pour la plupart des connexions résidentielles) est évincé. Les ACK TCP entrants ne sont donc pas reçus à temps, et les connexions sont interrompues de leur côté, puis du vôtre.

Une chose que j'ai apprise en étudiant la qualité de service est qu'il n'existe pas de qualité de service pour le trafic entrant, parce que vous ne pouvez pas contrôler ce qui vous est envoyé. Vous ne pouvez vraiment faire de la QoS/diviser/partager que le trafic sortant. Vous pouvez voir la configuration actuelle de la QoS sous Linux avec tc - mais attention, tc est très complexe.

Il est possible qu'une seule connexion sature votre bande passante entrante et supprime les TCP ACK entrants, provoquant ainsi des ralentissements, des chutes, etc. Le nombre de connexions simultanées n'a pas vraiment d'importance.

Vous devez probablement définir la quantité totale de bande passante que votre programme Bittorrent télécharge juste en dessous de votre débit maximum en amont, comme 8Kbit/sec en dessous de ce que vous savez être la vitesse de votre débit en amont. Vous pouvez également consulter les sites suivants Le sculpteur des merveilles si vous avez envie de vous aventurer dans le trou du lapin qu'est la qualité de service sous Linux.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X