uTorrent иногда перестает работать DNS

8

При использовании uTorrent DNS периодически перестает отвечать на запросы.

Эта проблема, по-видимому, не связана с чрезмерным использованием полосы пропускания (как видно от маршрутизатора к компьютеру), но может быть связана с некоторой формой защиты от затопления, предоставляемой маршрутизатором (большее количество входящих подключений к маршрутизатору, чем Windows примет).

Как заставить сеть работать должным образом (при этом, конечно, все еще можно использовать uTorrent)?

Андрей
источник
Что говорит вам, что вы не можете разрешить доменные имена? Работает ли nslookup google.com? Если нет, то как насчет nslookup google.com 8.8.8.8? Пожалуйста, добавьте вывод этих команд к вашему вопросу.
Боб
@Bob ping не может разрешить имя, я не знал о команде nslookup, я проверю, как только она перестанет работать (к счастью, теперь она работает). Спасибо!
Андрей
Пока вы это делаете, запишите IP-адрес любого сайта, с которым вы тестируете, и попробуйте пропинговать IP-адрес, когда он отключается (на самом деле это не имеет значения, но проверка не повредит).
Боб
@Bob я сделал это, я знал IP одного сайта, который я посещаю. Так что это полностью DNS вещь.
Андрей
@ Боб, не могли бы вы взглянуть на обновленный вопрос?
Андрей

Ответы:

13

клиенты bittorent агрессивно подключаются к одноранговым узлам ... и некоторые маршрутизаторы интерпретируют это как синхронный поток.


Открытые соединения

Когда uTorrent загружен и загрузка / выгрузка приостановлена ​​(не остановлена), он поддерживает открытые соединения с вашими коллегами. Тем временем легионы интернет-пиров будут пытаться связаться с вами, чтобы узнать, есть ли у вас биты, которые они хотят.

В конце концов вы достигнете предела открытых соединений, установленного вашей ОС (в Windows 7 это 10 подключений), и подключения от новых клиентов начнут ставиться в очередь на вашем маршрутизаторе.

Поставленные в очередь клиенты будут активно проверять, является ли соединение бесплатным. Этот агрессивный опрос может быть интерпретирован маршрутизатором как синодальная атака.

Решения

  • уменьшите свой полуоткрытый лимит соединения в программном обеспечении bittorent ниже предела соединения, установленного вашей ОС
  • отключите защиту от наводнений IP на вашем маршрутизаторе / модеме.

Насыщенность полосы пропускания

Кроме того, при неограниченном соединении uTorrent (или любого массового трафика) канал загрузки (и, возможно, загрузки) достигает полного использования, вынуждая некоторый «поддерживающий» трафик занять заднее место, что в итоге снижает полезность сети.

Вот пример:

  1. Высокая скорость загрузки (торрент или иным образом) насыщает нисходящий канал.
  2. Пользователь пытается перейти на сайт, который недавно не посещался. Компьютер генерирует запрос информации DNS для нужного сайта. «Загрузка» запроса на DNS-сервер выполнена успешно (не требуется для доступа к восходящему каналу).
  3. DNS-сервер отвечает (или пытается), но ответ зависает при попытке добраться до компьютера пользователя, потому что канал загрузки насыщен содержимым загрузки, и поскольку что-то должно быть отброшено, а загрузка агрессивно настроена на поддержание скорости, Ответ DNS сбрасывается (в некоторый момент, прежде чем он попадает на локальный маршрутизатор).

То же самое может случиться, если загрузка не ограничена. При насыщенной загрузке пакеты, известные как TCP-ACK (которые отправляются как ответы типа «Эй, я получил пакет xyz успешно»), зависают, что приводит к остановке загрузки, в результате чего просмотр веб-страниц становится очень неоднородным.

Решения

  • Выясните, какие максимальные возможности вашего соединения (вверх и вниз, по отдельности), и установите максимальную скорость ваших клиентов групповой передачи, чтобы они не использовали более 80% этой скорости. Это оставит «запас» для таких вещей, как пакеты DNS и TCP-ACK, чтобы обойти объем трафика и быстро с ним справиться.
  • Используйте маршрутизатор, который может обрабатывать формирование трафика таким образом, чтобы определенный трафик (DNS, PCP IMCP, TCP-ACK) мог быть расставлен по приоритетам перед другими формами трафика, а некоторые виды трафика (в частности, торрент) могут быть расставлены по приоритетам. Это мой предпочтительный метод. Это может дать дополнительное преимущество, позволяя использовать полный канал вверх и вниз для торрент-трафика, когда трафик с более высоким приоритетом не вызывает его.
  • Используйте некоторую комбинацию 1 и 2, чтобы ограничить "неправильное поведение" трафика.

Если вас интересует больше информации о формировании трафика дистрибутивов Linux / BSD, MonoWall и IPCop оба имеют некоторую полезную информацию.

killermist
источник
В целом это правильно, но в данном случае это не проблема. Все загрузки и загрузки были приостановлены. Таким образом, uTorrent генерировал только свой сервисный трафик. Проблема заключалась в том, что uTorrent как-то выдавал ложное срабатывание на брандмауэре маршрутизатора.
Андрей
Если uTorrent не насыщал восходящий или нисходящий канал (или оба), то это не должно было вызывать никаких проблем ... если только uTorrent и маршрутизатор с помощью UPNP (который я бы отключил лично) не выполняли неверную настройку маршрутизатора , У меня никогда не было UPNP мне ничего, кроме проблемы.
убийца
@JeremyW это, наконец, похоже на ответ. Но снижение полуоткрытого лимита соединения не помогло, я установил их на 10, но DNS все равно не работал должным образом.
Андрей
@ Андрей Или, может быть, решение состоит в том, чтобы пойти в другом направлении. Если окна могут обрабатывать соединения, увеличьте их, чтобы они не попадали в маршрутизатор, превращаясь в резервы.
убийца
@killermist, хотя я согласен с нашими изменениями, вопрос больше не в том, как получить uTorrent и DNS, потому что я дал ответ, вопрос в том, почему это так.
Андрей
5

Когда у меня что-то подобное, Wireshark - мой лучший друг.

Но сначала хорошо понять эти три вещи:

  • Тот факт, что ping работает, не означает, что DNS (или любой другой сервис) работает, и наоборот.

    Это связано с тем, что ping использует совершенно другой протокол (ICMP, в то время как DNS использует IP и комбинацию UDP и TCP) на совершенно другом уровне сетевой модели. Все на пути, от вашего персонального брандмауэра через количество маршрутизаторов до фактического хоста, на котором работает служба, потенциально может быть настроено на выброс одного из них, но не другого (будь то паранойя администратора или случай сбоя), хотя это обычно случается с ICMP, чем с другими

  • Как правило, также полезно уточнить, теряются ли ваши (DNS) запросы или ответы.

    Что ж, конкретная программа, которую вы используете, должна прояснить это для вас, но, как правило, проще увидеть ее в графическом интерфейсе Wireshark :)

  • Как я уже упоминал, DNS обычно использует UDP как способ доставки содержимого запроса и ответа.

    В отличие от своего TCP-протокола, UDP определен так, что нет никакой гарантии, что пакет будет доставлен вообще, и нет ничего, что маршрутизатор должен (или не может) сделать, чтобы сообщить вам о сбое. (Это жертва другой функции UDP: она невероятно быстра. Маршрутизаторы не должны хранить информацию об отправителе и порядке пакетов, они просто быстро передают ее и забывают. Они могут даже совершенно безопасно назначить им более высокий приоритет, чем TCP) .

Обычно первым делом я бы сделал:

  1. Запустить Wireshark
  2. Нажмите Параметры захвата
  3. Для фильтра Capture установите, host 1.2.3.4чтобы убедиться, что вы только захватываете трафик между вами и 1.2.3.4.
  4. Начать захват
  5. После того, как вы все загорелись, попробуйте свои команды

Тем не менее, основываясь на вашем последнем обновлении: я не знаю эту часть программного обеспечения, но я определенно подозреваю, что клиент uTorrent. Приложение может отправить слишком много UDP, что, например, на домашнем маршрутизаторе достигнуто некоторое ограничение, и оно начинает выбрасывать пакеты UDP.

Алоис Махдал
источник
Когда у вас есть тайм-ауты на запросы, я не уверен, что Wireshark может помочь. Со стороны клиента это выглядит так, как будто DNS-сервер просто игнорирует запросы, но маршрутизатор отбрасывает либо запросы, либо ответы из-за некоторого ложного положительного предупреждения при флуде IP.
Андрей
@ Андрей Вы правы, что Wireshark не скажет вам, где пакет был утерян: по дороге туда или обратно. Тем не менее, это может помочь убедиться, что пакеты действительно покинули ваш ящик, на случай, если произойдет что-то действительно интересное. (Как будто ваш персональный брандмауэр параноидален или что-то еще таинственно сломано.) Мне всегда нравится ставить эти вещи как можно скорее;)
Алоис Махдал
3

Я бы попробовал инструмент DNS Benchmark от GRC . Он проверяет DNS-серверы, которые вы настроили для использования, а также множество других DNS-серверов. Он проверяет не только их скорость, но и надежность. Это бесплатно и не требует установки (это только для Windows). На этих страницах также есть много полезной информации о DNS.

Пауль Волкер
источник
Я попробовал это приложение, результаты странные, обычно большинство DNS-серверов не отвечают. Очевидно, что невозможно, чтобы все серверы внезапно перестали работать. Что-то не так между мной и серверами, и я не знаю, что это может быть.
Андрей
3

Я хотел бы знать, в какой части мира вы находитесь, и это помогло бы получить результат tracert / traceroute для google.com и для 8.8.8.8.

Возможно, проблема вызвана вашим маршрутизатором или вашим подключением к серверам Google. Непостоянная природа вашей проблемы имеет запах плохого подключения, но при анализе проблем подключения к Интернету слишком много факторов, чтобы дать вам прямой ответ.

Сеть Google может время от времени перегружаться. У меня есть ежедневные случаи, когда запрос на google.com истекает, и его необходимо перезапустить, и я использую его локальный сервер для своей страны. Отчасти это вопрос удачи, в какой сегмент сети Google направляется запрос, и даже могут быть недостатки в алгоритмах внутреннего распределения запросов Google.

Вероятно, то же самое происходит с именными серверами Google. Хотя у Google их несколько, запрос может быть перенаправлен на мгновенно перегруженный внутренний сервер или сегмент сети.

Вы не упомянули, в какой части мира вы находитесь. Если вы не находитесь в США, то каждый запрос может проходить по разному маршруту и ​​могут возникать случайные проблемы или задержки, если они зависят от слишком большого количества промежуточных серверов.

Не говоря уже о каких-либо «оптимизациях» или возможных недостатках вашего интернет-провайдера, или любых оптимизациях, которые Google, возможно, сделал, чтобы распределить бремя по всему миру на своих серверах.

Использование удаленного DNS-сервера может наказать вас другими способами. Видеть :

Почему использование Google DNS / OpenDNS является плохой идеей?
Должен ли я использовать DNS своего интернет-провайдера или Google 8.8.8.8?

harrymc
источник
2

Я нашел решение, хотя я не до конца понимаю, если кто-то может объяснить это должным образом, пожалуйста, опубликуйте его как ответ, и я дам ему награду, потому что другие ответы не помогли.

Как я упоминал в приложении к вопросу, uTorrent был связан с проблемой, потому что закрытие uTorrent решило проблему. Я решил выяснить, как это исправить без необходимости закрывать uTorrent. В этой теме и в этой (это было очень актуально, потому что люди там имеют одинаковый ISP и маршрутизатор), я нашел предложения, что я должен отключить защиту от наводнений IP на моем маршрутизаторе, и это сработало! Проблема и решение были экзотическими, возможно, специфичными для маршрутизатора Cisco EPC3925 или даже для конкретного интернет-провайдера (популярного в Европе, поэтому было сложно что-то гуглить на английском).

Андрей
источник
Если бы вы упомянули, что это происходит только тогда, когда активен uTorrent, наши ответы были бы более актуальными.
Harrymc
@harrymc Я не знал об этом в начале, когда мне задавали вопрос. Как только я обнаружил, что это uTorrent вызывает проблемы, я немедленно добавил его к тексту вопроса.
Андрей