
Уже довольно давно я сталкиваюсь с раздражающей проблемой, связанной с приложением 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: С момента изменениявпередвариант в привязке от
forward first;
к
forward only;
Приложение YouTube снова работает уже несколько дней, пока без каких-либо заметных сбоев. Поэтому я бы посчитал проблему решенной на данный момент.
решение1
Примечание: Согласно комментариям автора, использование , forward only
а не , forward first
похоже, решило эту проблему.
Что касается приложения YouTube, то, судя по неподтвержденным данным, оно может быть капризным в отношении тайм-аутов соединения, особенно с BIND. Полагаю, разрешения иногда занимают больше времени, чем (довольно плохое) кодирование приложения YouTube, и оно просто решает, что соединение недоступно.
Лично я бы посоветовал сначала попробовать переадресаторы, отличные от Google -- мне не повезло с ними в BIND. Когда я использовал переадресаторы, я всегда возвращался либо к серверам своего интернет-провайдера, либодругие публичные DNS-опции.
Если смена серверов пересылки не помогает, можно рассмотреть другой вариант — самостоятельно решить проблему, добавив зону корневых ссылок, например:
zone "." {
type hint;
file "named.root";
};
Вы бы добавили этопослеваш options
блок. С помощью такой настройки вы можете закомментировать пересылку и обойти любые задержки или проблемы с разрешением, которые они могут вызывать.
Возможно, в некоторых отношениях это более медленная настройка, чем переадресация сервера имен, но я обнаружил, что она хорошо подходит для моей собственной настройки (у меня редко возникают проблемы с приложением YouTube).
Что касается конкретных деталей настройки второго варианта, то в сети должно быть много руководств, но вот основные моменты:
Вам нужно будет взять копиюименованный.кореньфайл подсказок (или какая-то его вариация) черезftp.internic.net.
Вам нужно будет установить
allow-recursion
запись, например, такlocalnets
:Возможно, вам придется провести небольшое исследование, чтобы найти правильное местоположение для
named.root
, поскольку его размещение может различаться в зависимости от дистрибутива.