
かなり前から、自宅のネットワークで YouTube アプリを使用するときに、厄介な問題が発生しています。インターネットの他の部分は問題なく機能しているのに、アプリを開くと頻繁に「ネットワーク接続を確認してください」というメッセージが表示されます。不思議なことに、この問題は私の Android フォンと妻の iPhone の YouTube アプリでのみ発生します。同時に、YouTube の Web サイトからのアクセスは問題なく機能し (両方のフォンから)、PC やラップトップからのアクセスやインターネットの他の部分でも同様です。実際には、アプリ経由で YouTube にアクセスするだけです。
数か月前に Banana Pi にインストールした bind9 DNS サーバーと何らかの関係があるに違いないと確信したので、ここで serverfault に問題を投稿しました。基本的には、ローカル ネットワーク内のホスト名を快適に解決できるようにセットアップしただけです。そのため、DNS は転送 DNS としてセットアップされ、解決できないすべてのホスト名を Google のサーバー 8.8.8.8 および 8.8.4.4 に転送します。
ネットワークや DNS に関してはあまり経験がありませんが、基本は知っています。しかし、今はどの方向をさらに調査すればよいのか分からない状況になっています。
DNS 構成でいくつかのオプションを設定してみましたが、効果はありませんでした。ルーターを設定して、DHCP 経由で DNS サーバーとして 8.8.8.8 を送信するようにすると、アプリは携帯電話で動作し、すべて正常に動作します。ローカル DNS の送信に戻すと、アプリは失敗します。他のすべての Web サイトや 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 がブロックしているサービスを使用するときにのみ関係する他のポートがあるのでしょうか? それとも、Web の 99.999% に対して DNS が正しく設定されているだけで、YouTube には追加の処理が必要なのでしょうか?
助けてください。どんなアドバイスでも大歓迎です!
編集:
言い忘れていましたが、最近スマートフォンからもアクセスできないことに気付きました。ブラウザ (Chrome) ではホスト名が解決されず、単純な ping や nslookup も失敗します。PC やラップトップではすべてが正常です。メディア センター (Kodi) で YouTube プラグインを使用しているため、 www.googleapis.com にアクセスしようとすると、www.googleapis.com
これも壊れてエラーが発生することがわかりました。host or service unknown
何らかの相関関係があるのでしょうか? これが問題の絞り込みに役立つことを願っています。
編集2: 変更してからフォワードバインドのオプション
forward first;
に
forward only;
YouTube アプリは数日間再び動作しており、今のところ目立った中断はありません。したがって、当面は問題は解決したと見なします。
答え1
注: OP のコメントによると、forward only
ではなくを使用するとforward first
、この問題は解決したようです。
YouTube アプリに関しては、特に BIND の場合、接続タイムアウトに関して扱いにくい傾向があることを示唆する事例証拠があるようです。推測ですが、YouTube アプリの (かなり貧弱な) コーディングが考慮するよりも解決に時間がかかる場合があり、接続が利用できないと単純に判断します。
個人的には、まずGoogle以外のフォワーダーを試すことをお勧めします。BINDでは運が悪かったからです。フォワーダーを使ったときは、いつもISPサーバーかその他のパブリックDNSオプション。
フォワーダーを変更しても問題が解決しない場合は、ルートヒントゾーンを追加して独自の解決を行うという別のオプションを検討してください。例:
zone "." {
type hint;
file "named.root";
};
これを追加すると後ブロックoptions
。このような設定では、フォワーダーをコメント アウトして、フォワーダーが引き起こす可能性のある遅延や解決の問題を回避できます。
これは、転送ネーム サーバーよりもいくつかの点で設定が遅くなる可能性がありますが、私の設定ではうまく機能することがわかりました (YouTube アプリで問題が発生することはほとんどありません)。
2 番目のオプションを構成する具体的な詳細については、ネット上のチュートリアルが多数あるはずですが、ハイライトとして次のようになります。
のコピーを入手する必要があります名前付きルートヒントファイル(またはそのバリエーション)ftp.internic.net。
allow-recursion
エントリを次のように設定しますlocalnets
。named.root
の配置はディストリビューションによって異なる可能性があるため、適切な場所を見つけるには少し調査する必要があるかもしれません。