「ドメイン名前解決」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(1版 をインポートしました)
1行目: 1行目:
  +
{{Lowercase title}}
 
[[Category:Domain Name System]]
 
[[Category:Domain Name System]]
 
[[de:Resolv.conf]]
 
[[de:Resolv.conf]]
6行目: 7行目:
 
[[it:Resolv.conf]]
 
[[it:Resolv.conf]]
 
[[zh-CN:Resolv.conf]]
 
[[zh-CN:Resolv.conf]]
  +
{{Related articles start}}
  +
{{Related|パフォーマンスの最大化#ネットワーク}}
  +
{{Related articles end}}
 
DNS リゾルバの設定ファイルが {{ic|/etc/resolv.conf}} です。[http://www.kernel.org/doc/man-pages/online/pages/man5/resolv.conf.5.html resolv.conf(5)] man ページより:
 
DNS リゾルバの設定ファイルが {{ic|/etc/resolv.conf}} です。[http://www.kernel.org/doc/man-pages/online/pages/man5/resolv.conf.5.html resolv.conf(5)] man ページより:
 
:''"resolver は、インターネットのドメインネームシステム (DNS) へのアクセスを提供する C ライブラリのルーチン群である。 レゾルバ設定ファイルには、レゾルバルーチンがプロセスによって最初に 起動されたときに読み込まれる情報が格納されている。 このファイルは人間に可読なように設計されている。 キーワードと値のリストが含まれ、いろいろなタイプのレゾルバ情報を提供する。''
 
:''"resolver は、インターネットのドメインネームシステム (DNS) へのアクセスを提供する C ライブラリのルーチン群である。 レゾルバ設定ファイルには、レゾルバルーチンがプロセスによって最初に 起動されたときに読み込まれる情報が格納されている。 このファイルは人間に可読なように設計されている。 キーワードと値のリストが含まれ、いろいろなタイプのレゾルバ情報を提供する。''
15行目: 19行目:
 
(通常は) あなたの使っている ISP が [[wikipedia:ja:Domain_Name_System|DNS]] サーバーを提供しており、キャッシュサーバーを持っている場合はルーターに DNS サーバーを追加することができます。DNS サーバーの切り替えは Windows のユーザーにとっては問題になりません、なぜなら DNS サーバーが遅かったり動作していなかったりする場合、すぐに他のサーバーに切り替えられるからです。しかしながら、通常 Linux はタイムアウトに多くの時間をかけるので、遅延が発生する原因となりえます。
 
(通常は) あなたの使っている ISP が [[wikipedia:ja:Domain_Name_System|DNS]] サーバーを提供しており、キャッシュサーバーを持っている場合はルーターに DNS サーバーを追加することができます。DNS サーバーの切り替えは Windows のユーザーにとっては問題になりません、なぜなら DNS サーバーが遅かったり動作していなかったりする場合、すぐに他のサーバーに切り替えられるからです。しかしながら、通常 Linux はタイムアウトに多くの時間をかけるので、遅延が発生する原因となりえます。
   
変更を加える前に ''dig'' ({{Pkg|dnsutils}} パッケージに入っています) を使ってください。下のセクションで調整を行ったらクエリ時間を比較するためにもう一度実行してください:
+
変更を加える前に ''drill'' ({{Pkg|ldns}} パッケージに入っています) を使ってください。下のセクションで調整を行ったらクエリ時間を比較するためにもう一度実行してください:
$ dig www5.yahoo.com
+
$ drill www5.yahoo.com
   
 
また、ネームサーバを指定することもできます:
 
また、ネームサーバを指定することもできます:
$ dig @ip.of.name.server www5.yahoo.com
+
$ drill @ip.of.name.server www5.yahoo.com
   
 
== 代替 DNS サーバー ==
 
== 代替 DNS サーバー ==
44行目: 48行目:
 
==== Google の問題を修正する ====
 
==== Google の問題を修正する ====
   
OpenDNS は全てのクエリを最初に自身のサーバーに通してルーティングすることで Google の検索をハイジャックします。これによって Google の検索が明らかに遅くなったり、Google の FeelingLucky 機能が使えなくなったりすることがあります。後者の場合、元の挙動に戻す [https://addons.mozilla.org/en-US/firefox/addon/7993 Firefox アドオン]が存在します。もっとも賢い解決方法は Google へのクエリを全て ISP の DNS サーバーにリダイレクトすることです。これは [[dnsmasq|dnsmasq]] を使うことで可能です。
+
OpenDNS は全てのクエリを最初に自身のサーバーに通してルーティングすることで Google の検索をハイジャックします。これによって Google の検索が明らかに遅くなったり、Google の FeelingLucky 機能が使えなくなったりすることがあります。後者の場合、元の挙動に戻す [https://addons.mozilla.org/en-US/firefox/addon/7993 Firefox アドオン]が存在します。もっとも賢い解決方法は Google へのクエリを全て ISP の DNS サーバーにリダイレクトすることです。これは [[dnsmasq]] を使うことで可能です。
   
 
=== Google ===
 
=== Google ===
60行目: 64行目:
   
 
=== Comodo ===
 
=== Comodo ===
[http://securedns.dns.com/ Comodo] も IPv4 のセットを提供しており、任意で(無料ではありませんが)ウェブフィルタリングもできます。つまりこの機能は OpenDNS がやっているようにクエリをハイジャックすることを意味しています。
+
[http://securedns.dnsbycomodo.com/ Comodo] も IPv4 のセットを提供しており、任意で(無料ではありませんが)ウェブフィルタリングもできます。つまりこの機能は OpenDNS がやっているようにクエリをハイジャックすることを意味しています。
   
 
# Comodo nameservers
 
# Comodo nameservers
67行目: 71行目:
   
 
==DNS 設定の保護==
 
==DNS 設定の保護==
[[dhcpcd|dhcpcd]], [[netctl|netctl]] ,[[NetworkManager|NetworkManager]] などの様々なプロセスによって {{ic|/etc/resolv.conf}} が上書きされることがあります。これは通常は望ましいことですが、場合によっては DNS 設定を手動で設定する時もあります (例: 固定 IP アドレスを使う場合)。DNS 設定を保護する方法は複数存在します。
+
[[dhcpcd]], [[netctl]] ,[[NetworkManager]] などの様々なプロセスによって {{ic|/etc/resolv.conf}} が上書きされることがあります。これは通常は望ましいことですが、場合によっては DNS 設定を手動で設定する時もあります (例: 固定 IP アドレスを使う場合)。DNS 設定を保護する方法は複数存在します。
 
*dhcdpcd を使っている場合、下の [[#dhcpcd 設定の修正]] を見て下さい。
 
*dhcdpcd を使っている場合、下の [[#dhcpcd 設定の修正]] を見て下さい。
*[[netctl|netctl]] を使って固定 IP アドレスを割り当てる場合、プロファイルで {{ic|DNS*}} オプションは使わないで下さい。このオプションを使うと ''resolvconf'' が呼び出されて {{ic|/etc/resolv.conf}} が上書きされます。
+
*[[netctl]] を使って固定 IP アドレスを割り当てる場合、プロファイルで {{ic|DNS*}} オプションは使わないで下さい。このオプションを使うと ''resolvconf'' が呼び出されて {{ic|/etc/resolv.conf}} が上書きされます。
  +
  +
=== NetworkManager を使う ===
  +
  +
NetworkManager が {{ic|/etc/resolv.conf}} を変更しないようにするには、{{ic|/etc/NetworkManager/NetworkManager.conf}} を編集して {{ic|[main]}} セクションに以下を追加します:
  +
  +
dns=none
  +
  +
上記の設定後 {{ic|/etc/resolv.conf}} が壊れたシンボリックリンクになる場合は削除して、それから新しい {{ic|/etc/resolv.conf}} ファイルを作成してください。
   
 
=== openresolv を使う ===
 
=== openresolv を使う ===
90行目: 102行目:
   
 
===timeout オプションを使ってホスト名の検索時間を減らす===
 
===timeout オプションを使ってホスト名の検索時間を減らす===
ホスト名の解決にとても長い時間がかかっている場合 ([[pacman|pacman]] やブラウザで)、短い timeout を設定するとよいかもしれません。これを行うには、{{ic|/etc/resolv.conf.tail}} という名前のファイルを作成して次の行を追加してください:
+
ホスト名の解決にとても長い時間がかかっている場合 ([[pacman]] やブラウザで)、短い timeout を設定するとよいかもしれません。これを行うには、{{ic|/etc/resolv.conf.tail}} という名前のファイルを作成して次の行を追加してください:
 
options timeout:1
 
options timeout:1
 
== 参照 ==
 
 
*[http://wiki.gotux.net/code:bash:onic OpenNIC Alternative DNS Installer]
 

2015年11月15日 (日) 22:14時点における版

関連記事

DNS リゾルバの設定ファイルが /etc/resolv.conf です。resolv.conf(5) man ページより:

"resolver は、インターネットのドメインネームシステム (DNS) へのアクセスを提供する C ライブラリのルーチン群である。 レゾルバ設定ファイルには、レゾルバルーチンがプロセスによって最初に 起動されたときに読み込まれる情報が格納されている。 このファイルは人間に可読なように設計されている。 キーワードと値のリストが含まれ、いろいろなタイプのレゾルバ情報を提供する。
"このファイルが存在しない場合、問い合わせはローカルマシン上の ネームサーバに対してのみ行われる。ドメイン名はホスト名から決定され、 ドメインの検索パスはドメイン名から作成される。"

Linux における DNS

(通常は) あなたの使っている ISP が DNS サーバーを提供しており、キャッシュサーバーを持っている場合はルーターに DNS サーバーを追加することができます。DNS サーバーの切り替えは Windows のユーザーにとっては問題になりません、なぜなら DNS サーバーが遅かったり動作していなかったりする場合、すぐに他のサーバーに切り替えられるからです。しかしながら、通常 Linux はタイムアウトに多くの時間をかけるので、遅延が発生する原因となりえます。

変更を加える前に drill (ldns パッケージに入っています) を使ってください。下のセクションで調整を行ったらクエリ時間を比較するためにもう一度実行してください:

$ drill www5.yahoo.com

また、ネームサーバを指定することもできます:

$ drill @ip.of.name.server www5.yahoo.com

代替 DNS サーバー

他の DNS サーバーを使うには、/etc/resolv.conf を編集して、一番最初に使われるようにファイルの一番上にサーバーを追加してください。任意で、記載されているサーバーを削除したりコメントアウトすることもできます。

ノート: /etc/resolv.conf への変更はすぐに適用されます。

OpenDNS

OpenDNS はフリーの代替ネームサーバを提供しています:

# OpenDNS nameservers
nameserver 208.67.222.222
nameserver 208.67.220.220

IPv6 サーバーも利用可能です:

nameserver 2620:0:ccc::2
nameserver 2620:0:ccd::2
警告: OpenDNS サーバーはクエリに対して、たとえドメインや DNS レコードが存在していなかったとしても、いつでも IP アドレスを返します。ネットワークの問題をデバッグするときにこれが問題になるかもしれません (OpenDNS ダッシュボードで特定の IP アドレスについてこれを無効にすることができます)。

Google の問題を修正する

OpenDNS は全てのクエリを最初に自身のサーバーに通してルーティングすることで Google の検索をハイジャックします。これによって Google の検索が明らかに遅くなったり、Google の FeelingLucky 機能が使えなくなったりすることがあります。後者の場合、元の挙動に戻す Firefox アドオンが存在します。もっとも賢い解決方法は Google へのクエリを全て ISP の DNS サーバーにリダイレクトすることです。これは dnsmasq を使うことで可能です。

Google

Google のネームサーバを代わりに使うこともできます:

# Google nameservers
nameserver 8.8.8.8
nameserver 8.8.4.4

IPv6 サーバーも利用可能です:

nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844

Comodo

Comodo も IPv4 のセットを提供しており、任意で(無料ではありませんが)ウェブフィルタリングもできます。つまりこの機能は OpenDNS がやっているようにクエリをハイジャックすることを意味しています。

# Comodo nameservers 
nameserver 8.26.56.26 
nameserver 8.20.247.20

DNS 設定の保護

dhcpcd, netctl ,NetworkManager などの様々なプロセスによって /etc/resolv.conf が上書きされることがあります。これは通常は望ましいことですが、場合によっては DNS 設定を手動で設定する時もあります (例: 固定 IP アドレスを使う場合)。DNS 設定を保護する方法は複数存在します。

  • dhcdpcd を使っている場合、下の #dhcpcd 設定の修正 を見て下さい。
  • netctl を使って固定 IP アドレスを割り当てる場合、プロファイルで DNS* オプションは使わないで下さい。このオプションを使うと resolvconf が呼び出されて /etc/resolv.conf が上書きされます。

NetworkManager を使う

NetworkManager が /etc/resolv.conf を変更しないようにするには、/etc/NetworkManager/NetworkManager.conf を編集して [main] セクションに以下を追加します:

dns=none

上記の設定後 /etc/resolv.conf が壊れたシンボリックリンクになる場合は削除して、それから新しい /etc/resolv.conf ファイルを作成してください。

openresolv を使う

openresolv には resolvconf ユーティリティが入っています。これは複数の DNS 設定を管理するためのフレームワークです。詳しくは man 8 resolvconfman 5 resolvconf.conf を見て下さい。

設定は /etc/resolvconf.conf で行い、resolvconf -u を実行すると /etc/resolv.conf が生成されます。

dhcpcd 設定の修正

dhcpcd の設定ファイルを編集することで dhcpcd デーモンが /etc/resolv.conf を上書きするのを止めることができます。/etc/dhcpcd.conf の最後のセクションに次を加えて下さい:

nohook resolv.conf

または、/etc/resolv.conf.head という名のファイルを作ってあなたの DNS サーバーを記入することができます。dhcpcd はこのファイルを /etc/resolv.conf の先頭に挿入します。

/etc/resolv.conf の書き込み保護

/etc/resolv.conf が何かによって修正されてしまうのを止める他の方法として書き込み保護属性を設定する方法があります:

# chattr +i /etc/resolv.conf

timeout オプションを使ってホスト名の検索時間を減らす

ホスト名の解決にとても長い時間がかかっている場合 (pacman やブラウザで)、短い timeout を設定するとよいかもしれません。これを行うには、/etc/resolv.conf.tail という名前のファイルを作成して次の行を追加してください:

options timeout:1