Others

NURO光のZTE社製ルーター「F660T」「F660A」でDNSによる名前解決が遅い時に試したいこと

投稿日:

NURO光といえば、下り最大10Gbps(ベストエフォート型)を提供するSo-netが提供するプロバイダサービスです。フレッツ光回線の輻輳による夜間の回線速度の著しい低下に嫌気がさして、乗り換えを検討された方もいらっしゃるのではないでしょうか。しかし、NURO光に乗り換えたあと、しばらく経つと、(フレッツ光ほどではないにしても)速度低下が見られる、または画面表示が遅い、という経験をされたことないでしょうか。それは、So-netが提供するONU兼無線LANルーターであるZTE社製の「F660T」「F660A」のDNSサービスが原因かもしれません。

そもそも、「DNS」とは「Domain Name Systems」の略称で、名前解決サービスとも呼ばれます。TCP/IPプロトコルでは、IPアドレス(v4もしくはv6)と呼ばれる、数値もしくは英数字で表現された、世界で一意の住所をもとに、相手のコンピュータと通信を行います。しかし、一般的にIPアドレスは「XXX.XXX.XXX.XXX」(IPv4の場合)のような形式をしており、人間が覚えられるようなものではありません。

そこで、IPアドレスの代わりに、例えば弊サイトのドメイン名である「ottan.xyz」といった意味のある(?)文字列と、上記のIPアドレスを紐づけて、「ottan.xyz」にアクセスしたらIPアドレス「YYY.YYY.YYY.YYY」に変換してアクセスするということを一般的に行なっています。この「ottan.xyz」を「YYY.YYY.YYY.YYY」に変換するサービスがDNSサービスです。(名前をIPアドレスに解決するのです)

「F660T」「F660A」のボトルネックを解消する

では、冒頭のZTE社製ルーター「F660T」「F660A」と、このDNSサービスの関係性を見ていきましょう。これらのルーターの役割は、あくまでダークファイバー(使用されていない光ファイバー!)を通してプロバイダであるSo-net回線に接続するものです。また、ルーター(無線LAN機能も内蔵)としての一般的な機能(ルーティングはもとより、ファイアウォール機能、IPアドレス割り当て「DHCPサービス」、などなど)を兼ね備えています。また、この役割の中に冒頭のDNSサービス機能が含まれます。

インターネット黎明期の頃、初期に登場したルーターにはDNSサービス機能は付与されていませんでした。そのため、インターネットに接続する(接続して名前解決する)為には、プロバイダが提供するDNSサーバーのIPアドレスを、インターネットに接続するクライアントに直接指定する必要があったのですが、プロバイダのDNSサーバーのIPアドレスが変更になると全てのクライアントのDNSサーバーのIPアドレスを書き換える必要があります。また、名前解決の都度、クライアントはインターネット上のDNSサーバーに名前解決を要求する必要があり、そのレスポンスが悪くなると、Webページの表示に時間がかかるなどの弊害が生じます。

そこで、ルーターにDNSサーバーとしての役割を持たせ、クライアントにはルーターのIPアドレスをDNSサーバーのIPアドレスとして指定します。まず、クライアント側はプロバイダのDNSサーバーを意識する必要がなくなります。ルーターは、クライアントから名前解決の要求を受け付けると、上位(プロバイダ)のDNSサーバーに対して名前解決の要求を行います。実際には、そこからさらに上位のDNSサーバーに対して名前解決を行いと繰り返し行いますが、その結果としてのIPアドレスをクライアントに返します。その際に、ルーターは結果をキャッシュとして保持します。そうすることで、次回のクライアントからのリクエストの際は、キャッシュを参照して、余計な手間暇をかけることなく、クライアント側からのリクエストに即座に応えることができて、名前解決も高速に!…というわけですが。

で、前置きが長くなりましたが、言わんとしたいことは、NURO光で提供されるZTE社製ルーター(特に「F660T」)には、(おそらく)このDNSサーバーとしての機能としてがイマイチのようです。「イマイチ」とは曖昧ですが、前述のキャッシュが機能していないのか、複数のクライアントからの多数のリクエストに応えるのが遅いのか、とにかく「DNSサーバー」としての役割が「イマイチ」なのです。回線速度は申し分ないのに、名前解決がイマイチではストレスを感じるかもしれません。しかも、必ずしも「イマイチ」というわけでもないので、そこがまたストレスになるのです。

DNSパススルー機能を使用しよう!

というわけで、もうZTE社製ルーターのDNSサーバー機能には頼って要られません。昔のように、クライアント側に直接プロバイダが提供するDNSサーバーのIPアドレスを指定した方がまだマシです。しかし、ありとあらゆる末端の機器までもがインターネットに無線で接続させるこの御時世ですから、全ての機器(クライアント)に対してDNSサーバーのIPアドレスを設定するのを想像すると真っ暗になります。そこで、使用したい機能が「DNSパススルー」機能です。

「DNSパススルー」は、「F660T」もしくは「F660A」にログイン後、「ネットワーク」→「LAN」→「ダイナミックアドレス管理(IPv4)」、IPv6を使用している場合は「ダイナミックアドレス管理(IPv6)」で設定できます。「DNSサービスの設定を優先にする」をチェックし、保存すれば設定完了です。「DNSパススルー」とは、「パススルー」という文字列が示す通り、ルーターに接続したクライアントのDNSサーバーのIPアドレスは、ルーターのIPアドレスを通り越して、自動的にプロバイダのDNSサーバーのIPアドレスが設定されます。ルーターは、プロバイダのDNSサーバーのIPアドレスをクライアント側に教えるだけです。

そうすることで、クライアント側は名前解決をルーターのDNSサーバーに対して行うのではなく、直接プロバイダが提供するDNSサーバーに対して名前解決を試みる為、なんだか「イマイチ」なルーターのDNSサーバーを介することがなくなり、名前解決の速度向上が期待できます。しかし、名前解決を行うのに、プロバイダの、つまり外側のDNSサーバーを経由する必要があることから、その分応答が遅くなる可能性はあります。(もちろん、プロバイダのDNSサーバーもキャッシュを保持しています)

プロバイダのDNSサーバーがあてにならなければGoogle Public DNSを使用する

ざっくりと述べると、誰でも使用可能なGoogleが提供するオープンなDNSサーバーがあります。Googleという、もはやインターネットと切っても切り離せなくなった同社の膨大なノウハウとキャッシュが蓄積されたDNSサーバーですから、その応答速度は速いです。上記のDNSパススルーでも改善されない場合は、こちらをお試しください。(So-netユーザーが増えてきたのか、どうもSo-netのDNSサーバーの応答もイマイチな時があるように感じます)

「アプリケーション」→「DNSサービス」→「DNS」と開いて、以下のアドレスを指定してください。下2つはIPv6用です。

8.8.8.8
8.8.4.4
2001::4860::4860::8888
2001::4860::4860::8888

DNSサーバーのIPアドレスを指定しただけでは、クライアント側に認識させることができません。「DNSサービスの設定を優先にする」を指定した際にプルダウンから「DNSパススルー」ではなく「DNSアドレス指定」に変更します。IPv4、IPv6ともに行いましょう。

こうすることで、クライアントは名前解決の際にはGoogle Public DNSに対して名前解決を行うことになり、安定した名前解決の速度が期待できます。

まとめ

今回ご紹介したポイントをまとめておきましょう。

  • DNSサービスとは、人間の理解のできる文字列をIPアドレスに変換するサービス
  • ルーターは、DNSサービスを兼ね備えている(上位のDNSサーバーの応答結果をキャッシュしておく機能がある)
  • NURO光のZTE社製ルーター「F660T」「F660A」はDNSサービスが「イマイチ」
  • 「DNSパススルー」を使用すればクライアントの設定を変更することなく、プロバイダのDNSサーバーを指定できる
  • プロバイダのDNSサーバーすら遅ければGoogle Public DNSを使う

-Others
-

執筆者: