Уже довольно давно я сталкиваюсь с досадной проблемой, связанной с приложением YouTube, когда я нахожусь в моей домашней сети. Приложение часто показывает сообщение "проверьте подключение к сети", когда я его открываю, а остальная часть интернета работает нормально. Странно то, что это происходит ТОЛЬКО с приложением YouTube на моем телефоне Android и iPhone моей жены. В то же время доступ через веб-сайт YouTube работает безупречно (с обоих телефонов), то же самое относится и к доступу к нему с моего компьютера или ноутбука и ко всему остальному Интернету. Это действительно просто YouTube через приложение.

Я опубликовал свою проблему здесь на serverfault, так как я твердо уверен, что это как-то связано с DNS-сервером bind9, который я установил несколько месяцев назад на Banana Pi. Я просто настроил его для удобного разрешения имен хостов внутри моей локальной сети. Таким образом, DNS просто настроен как пересылающий DNS, который пересылает все имена хостов, которые он не может разрешить, на серверы Google 8.8.8.8 и 8.8.4.4.

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

Я попытался установить несколько параметров в конфигурации DNS туда и обратно, но безрезультатно. Когда я настраиваю маршрутизатор для отправки 8.8.8.8 в качестве DNS-сервера через DHCP, приложение работает на моем телефоне, и все в порядке. Когда я переключаю его обратно на отправку моего локального DNS, приложение перестает работать. Помните: ВСЕ другие веб-сайты и даже сервисы Google продолжают работать.

Это мой конфиг bind9, если это поможет

options {
  directory "/var/cache/bind";

  // If there is a firewall between you and nameservers you want
  // to talk to, you may need to fix the firewall to allow multiple
  // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

  // If your ISP provided one or more IP addresses for stable
  // nameservers, you probably want to use them as forwarders.
  // Uncomment the following block, and insert the addresses replacing
  // the all-0's placeholder.

  forwarders {
    8.8.8.8;
    8.8.4.4;
  };
  forward first;

  //========================================================================
  // If BIND logs error messages about the root key being expired,
  // you will need to update your keys.  See https://www.isc.org/bind-keys
  //========================================================================
  dnssec-validation auto;

  auth-nxdomain no;    # conform to RFC1035
  listen-on-v6 { any; };
  query-source address * port 53;
  query-source-v6 address * port 53;

  allow-query { any; };
  allow-query-cache { any; };
  allow-recursion { any; };

  response-policy { zone "overrides"; };
  cleaning-interval 60;
};

Может ли кто-нибудь помочь мне с этим и дать мне подсказку, где продолжить расследование? Могут ли быть задействованы другие порты только при использовании приложения YouTube или некоторых служб, которые Google блокирует? Или это просто мой DNS настроен правильно для 99,999% Интернета, а YouTube требуется дополнительная обработка?

Пожалуйста помоги. Любой совет высоко ценится!

РЕДАКТИРОВАТЬ: забыл упомянуть, что я недавно заметил, что я не могу получить доступ к www.googleapis.com со своего смартфона. Имя хоста просто не будет разрешено в браузере (Chrome), простой ping или nslookup также не будут работать. Все снова хорошо на моем ПК или ноутбуке. Я понял это, потому что я использую плагин YouTube в моем медиацентре (Kodi), который также сломался и жалуется на host or service unknown при попытке доступа к www.googleapis.com.

Может ли быть какая-то корреляция? Надеюсь, это поможет сузить проблему.

РЕДАКТИРОВАТЬ 2: С изменением опции пересылки в bind с

forward first;

в

forward only;

приложение YouTube снова работает в течение нескольких дней без каких-либо заметных перерывов. Поэтому я бы посчитал проблему решенной на данный момент.

1 ответ1

1

Примечание. Согласно комментариям OP, использование forward only а не forward first видимому, решило эту проблему.


Что касается приложения YouTube, то, как показывают отдельные примеры, оно может быть привередливым в отношении времени ожидания соединения, особенно с BIND. Можно предположить, что разрешение иногда занимает больше времени, чем (довольно плохое) кодирование в приложении YouTube, и оно просто решает, что соединение недоступно.

Лично я бы сначала предложил попробовать другие экспедиторы, кроме Google - мне не повезло с ними в BIND. Когда я использовал серверы пересылки, я всегда обращался к своим интернет-серверам или к другим общедоступным опциям DNS.

Если смена серверов пересылки не помогает, другой вариант, который необходимо рассмотреть, - это сделать собственное разрешение, добавив корневую зону подсказок, например:

zone "." {
     type hint;
     file "named.root";
};

Вы бы добавили это после блока options . При такой настройке вы можете закомментировать серверы пересылки и обойти любые задержки или проблемы, которые они могут вызывать.

Возможно, это в некоторых отношениях более медленная настройка, чем переадресация имен, но я обнаружил, что она хорошо работает для моей собственной настройки (у меня редко возникают проблемы с приложением YouTube).

Что касается конкретных деталей по настройке второго варианта, то здесь должно быть множество сетевых руководств, но в качестве основных моментов:

  • Вам нужно будет получить копию файла с указанием named.root (или его разновидности) через ftp.internic.net.

  • Вы захотите установить для своей записи allow-recursion что-то вроде, например, localnets .

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .