Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Dnsmasqのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Dnsmasq
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:Domain Name System]] [[en:Dnsmasq]] [[es:Dnsmasq]] [[it:Dnsmasq]] [[pt:Dnsmasq]] [[ru:Dnsmasq]] [[zh-CN:Dnsmasq]] {{Lowercase_title}} '''dnsmasq''' は DNS キャッシュと DHCP サーバーとしてのサービスを提供します。ドメインネームサーバ (DNS) としては DNS クエリをキャッシュすることで以前に訪れたことのあるサイトへの接続速度を向上させることができ、DHCP サーバーとしては {{Pkg|dnsmasq}} は LAN 上のコンピュータに内部 IP アドレスとルートを割り当てるのに使えます。サービスのどちらか、または両方として役立てることが可能です。dnsmasq は軽量で設定が簡単です。個人のコンピュータでの利用や、50以下のコンピュータが繋がったネットワークでの使用を想定して作られています。また、[[PXE]] サーバーも含まれています。 == インストール == [[公式リポジトリ]]から {{Pkg|dnsmasq}} を[[pacman|インストール]]してください。 == DNS キャッシュの設定 == 単一のコンピュータ上で dnsmasq を DNS キャッシュデーモンとしてセットアップするには {{ic|/etc/dnsmasq.conf}} を編集して {{ic|listen-address}} ディレクティブをアンコメントし、ローカルホストの IP アドレスを追記してください: listen-address=127.0.0.1 ネットワーク上の他のコンピュータのために LAN の IP アドレスを受信するようにするには: listen-address=192.168.1.1 # Example IP この場合は LAN の固定 ip を使用することが推奨されます。 === DNS アドレスファイル === dnsmasq を設定した後は、DHCP クライアントが {{ic|/etc/resolv.conf}} にある既知の DNS アドレスの前にローカルホストのアドレスを挿入させるようにする必要があります。これによって外部の DNS でクエリを解決しようとする前に全てのクエリが dnsmasq に送られるようになります。DHCP クライアントを設定した後は変更を適用するためにネットワークを再起動してください。 ==== resolv.conf ==== まず一つ目の選択肢は {{ic|resolv.conf}} の設定です。これを使うには、{{ic|/etc/resolv.conf}} の一番上のネームサーバをローカルホストに変えて下さい: {{hc|/etc/resolv.conf| nameserver 127.0.0.1 # External nameservers ... }} これで DNS クエリは最初に dnsmasq によって解決されるようになります。dnsmasq がクエリを解決できなかった場合にのみ外部のサーバーが使用されます。残念ながら、{{Pkg|dhcpcd}} はデフォルトで {{ic|/etc/resolv.conf}} を上書きするようになっているので、DHCP を使っている場合は {{ic|/etc/resolv.conf}} を保護すると良いでしょう。保護するには、dhcpcd の設定ファイルに {{ic|nohook resolv.conf}} を追加してください: {{hc|/etc/dhcpcd.conf| ... nohook resolv.conf}} resolv.conf の書き込みを保護することも可能です: # chattr +i /etc/resolv.conf ===== 3つ以上のネームサーバ ===== Linux による DNS クエリの処理には {{ic|resolv.conf}} で使えるネームサーバは3つまでという制約があります。対応策として、{{ic|resolv.conf}} にはローカルホストのネームサーバだけを記述して、外部のネームサーバ用に {{ic|resolv-file}} を分けて作成する方法があります。まず、dnsmasq のための resolv ファイルを新しく作成してください: {{hc|/etc/resolv.dnsmasq.conf| # Google's nameservers, for example nameserver 8.8.8.8 nameserver 8.8.4.4 }} それからt {{ic|/etc/dnsmasq.conf}} を新しい resolv ファイルを使用するように編集してください: {{hc|/etc/dnsmasq.conf| ... resolv-file=/etc/resolv.dnsmasq.conf ... }} ==== dhcpcd ==== [[dhcpcd|dhcpcd]] には {{ic|/etc/resolv.conf}} にネームサーバを前と後ろに追加する機能があります。それぞれ {{ic|/etc/resolv.conf.head}} と {{ic|/etc/resolv.conf.tail}} ファイルを作成します: echo "nameserver 127.0.0.1" > /etc/resolv.conf.head ==== dhclient ==== {{Pkg|dhclient}} の場合、{{ic|/etc/dhclient.conf}} の以下の部分をアンコメントしてください: prepend domain-name-servers 127.0.0.1; ==== NetworkManager ==== [[NetworkManager]] は設定ファイルから ''dnsmasq'' を起動することができます。{{ic|NetworkManager.conf}} の {{ic|[main]}} セクションに {{ic|1=dns=dnsmasq}} オプションを追加し、{{ic|dnsmasq.service}} が [[systemd]] によってロードされないように無効化してください: {{hc|/etc/NetworkManager/NetworkManager.conf|<nowiki> [main] plugins=keyfile dns=dnsmasq </nowiki>}} {{ic|/etc/NetworkManager/dnsmasq.d/}} にカスタム設定ファイルを作成することで ''dnsmasq'' のためのカスタム設定を作ることができます。例えば、DNS キャッシュの容量を変更するには (RAM に保存されます): {{hc|/etc/NetworkManager/dnsmasq.d/cache|2= cache-size=1000 }} {{ic|NetworkManager}} によって ''dnsmasq'' が起動されると、デフォルトの設定ファイルの代わりにこのディレクトリにある設定ファイルが使われます。 {{Tip|この方法では特定のドメインで DNS のカスタム設定を有効にすることができます。例えば: {{ic|server=/example1.com/example2.com/xx.xxx.xxx.x}} は {{ic|example1.com, example2.com}} というウェブサイトを見ている時だけ最初の DNS アドレスを {{ic|xx.xxx.xxx.xx}} に変更します。速度や安定性、プライバシーやセキュリティが欠けている特定の DNS ネームサーバを使うときはこの方法をグローバルな DNS 設定にすることを推奨します。}} ==== IPv6 ==== NetworkManager で {{ic|dnsmasq}} を有効にすると IPv6 の DNS ルックアップ ({{ic|dig -6 [hostname]}}) が出来なくなります。この問題を解決するには、以下のファイルを作成して IPv6 のループバックも受信するように ''dnsmasq'' を設定します: {{hc|/etc/NetworkManager/dnsmasq.d/ipv6_listen.conf|2= listen-address=::1 }} さらに、{{ic|dnsmasq}} は上流の IPv6 DNS を優先させません。残念ながら NetworkManager では優先させることが出来ないようです ([https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/936712 Ubuntu Bug])。NetworkManager の設定で IPv4 の DNS を無効化するのが回避策になります。 ===== 他の方法 ===== 他にも NetworkManager のアプレットを使って設定を手動で入力する方法もあります (通常はアプレットを右クリックします)。設定方法は使用しているフロントエンドの種類によりますが、基本的には、アプレットを右クリックして、プロファイルを編集(または作成)し、DHCP タイプとして 'Automatic (specify addresses)' を選択します。DNS アドレスは次のような形式で入力する必要があります: {{ic|127.0.0.1, DNS-server-one, ...}}。 == DHCP サーバーの設定 == デフォルトで dnsmasq の DHCP 機能は無効にされているため、使用したいときは {{ic|/etc/dnsmasq.conf}} で有効にする必要があります。以下は中心となる設定です: {{bc|<nowiki> # Only listen to routers' LAN NIC. Doing so opens up tcp/udp port 53 to # localhost and udp port 67 to world: interface=<LAN-NIC> # dnsmasq will open tcp/udp port 53 and udp port 67 to world to help with # dynamic interfaces (assigning dynamic ips). Dnsmasq will discard world # requests to them, but the paranoid might like to close them and let the # kernel handle them: bind-interfaces # Dynamic range of IPs to make available to LAN pc dhcp-range=192.168.111.50,192.168.111.100,12h # If you’d like to have dnsmasq assign static IPs, bind the LAN computer's # NIC MAC address: dhcp-host=aa:bb:cc:dd:ee:ff,192.168.111.50 </nowiki>}} == デーモンを起動する == 起動時に dnsmasq をロードするようにするには: {{bc|# systemctl enable dnsmasq}} dnsmasq をいますぐ起動するには: {{bc|# systemctl start dnsmasq}} dnsmasq が正しく起動したか見るには、システムの journal を確認してください: {{bc|$ journalctl -u dnsmasq}} DHCP クライアントが新しい {{ic|/etc/resolv.conf}} を作れるようにネットワークも再起動する必要があります。 == テスト == === DNS キャッシュ === ルックアップの速度をテストするには、dnsmasq を起動してから訪れたことのないウェブサイトを選択してください ({{ic|dig}} は {{Pkg|bind-tools}} パッケージに入っています): $ dig archlinux.org | grep "Query time" dnsmasq を正しく設定していれば、このコマンドを二回目に実行するとキャッシュされた DNS の IP が使用され、ルックアップの時間が速くなっているはずです: {{hc|<nowiki>$ dig archlinux.org | grep "Query time"</nowiki>| ;; Query time: 18 msec }} {{hc|<nowiki>$ dig archlinux.org | grep "Query time"</nowiki>| ;; Query time: 2 msec }} === DHCP サーバー === dnsmasq が動いているコンピュータに接続されたコンピュータから、DHCP を使って IP アドレスを自動的に割り当てるように設定し、ネットワークに通常通りにログインしてください。 == Tips and tricks == === OpenDNS が Google へのクエリをリダイレクトするのを止める === OpenDNS が全ての Google クエリを OpenDNS の検索サーバーにリダイレクトを止めさせるには、以下を {{ic|/etc/dnsmasq.conf}} に追加してください: {{bc|1=server=/www.google.com/<ISP DNS IP>}} === リースを表示する === {{bc|$ cat /var/lib/misc/dnsmasq.leases}} === カスタムドメインの追加 === (ローカル) ネットワークの hosts にカスタムドメインを追加することができます: local=/home.lan/ domain=home.lan この例では {{ic|hostname.home.lan}} を (hosts ファイルに定義されている) ホスト/デバイスとして ping できます。 hosts エントリにカスタムドメインを追加するには {{ic|expand-hosts}} をアンコメントしてください: expand-hosts この設定を使わない場合、{{ic|/etc/hosts}} のエントリにドメインを追加する必要があります。
このページで使用されているテンプレート:
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Lowercase title
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Tip
(
ソースを閲覧
)
Dnsmasq
に戻る。
検索
検索
Dnsmasqのソースを表示
話題を追加