MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
設定 - DNSMasqのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
設定 - DNSMasq
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == DNSMasqは、DNSフォワーダ、DHCPサーバ、TFTPサーバ、ルータ広告 (RA) サーバを1つに統合した軽量なネットワークサービスである。<br> <br> Simon Kelleyによって開発され、GPL v2 / v3以降のライセンスで提供されている。<br> Linux、BSD、Mac OSで動作し、IPv4 と IPv6 の両方に対応する。<br> <br> 小規模ネットワークやホームネットワーク、組込み機向けの軽量ツールとして広く利用されており、BIND等のフル機能DNSサーバと比較して設定が簡素でメモリ消費が少ないのが特徴である。<br> <br> 主なユースケースを以下に示す。<br> <br> * 内部向けDNSサーバ (LAN内のホスト名解決) * DNSキャッシュサーバ (上流DNS応答のキャッシュによる応答速度向上) * DHCPサーバ (DHCPv4/DHCPv6/BOOTPによるIPアドレス配布) * PXEネットブート (TFTPサーバとの組合せによるネットワーク起動) * IPv6 RAサーバ (ステートレスアドレス自動設定の広告) <br><br> == 前提条件 == DNSMasqを導入する環境の前提条件を以下に示す。<br> <br> * RHEL ** ネットワーク管理 **: NetworkManager ** パッケージ **: <u>dnsmasq</u> **: <u>dnsmasq-utils</u> (任意) * SUSE ** ネットワーク管理 **: NetworkManager または wicked ** パッケージ **: <u>dnsmasq</u> * Raspberry Pi OS ** 静的IPアドレスの事前設定 (DHCPサーバとして運用する場合) ** パッケージ **: <u>dnsmasq</u> *: dhcpcd5 または NetworkManagerとの競合に注意すること。 <br> <u>※注意</u><br> <u>DNSサーバとして稼働させるホストには固定IPアドレスを設定すること。</u><br> <br><br> == DNSMasqのインストール == ==== RHEL ==== <u>dnsmasq-utils</u> は、<u>dhcp_release</u> 等の補助ツールを含む任意パッケージである。<br> <br> sudo dnf install dnsmasq dnsmasq-utils <br> 留意点を以下に示す。<br> <br> NetworkManagerは、 <code>dns=dnsmasq</code> 設定で独自のDNSMasqインスタンスを起動する。<br> スタンドアロンでDNSMasqを運用する場合は、<u>/etc/NetworkManager/NetworkManager.conf</u> ファイルの <code>dns=default</code> 等に変更して無効化することが推奨される。<br> <br> RHELでは、systemd-resolvedが有効化されている場合がある。<br> その場合は、[[#systemd-resolvedとの競合回避|systemd-resolvedとの競合回避]]セクションを参照すること。<br> <br> ==== SUSE ==== <u>NetworkManager-dns-dnsmasq</u> パッケージは、NetworkManager連携用の任意パッケージである。<br> <br> sudo zypper install dnsmasq NetworkManager-dns-dnsmasq <br> networkリポジトリから最新版を導入する場合は、以下に示す手順を実行する。<br> <br> sudo zypper addrepo https://download.opensuse.org/repositories/network/$releasever/network.repo Network sudo zypper refresh sudo zypper install dnsmasq <br> ==== Raspberry Pi OS ==== sudo apt install dnsmasq <br> インストール直後にサービスがmasked状態になっている場合は、以下に示すコマンドで有効化する。<br> <br> sudo systemctl unmask dnsmasq.service sudo systemctl enable dnsmasq.service <br> <u>※注意</u><br> <u>Buster以前のRaspberry Pi OSでは、dhcpcd5がDHCPクライアントとして動作するため、DNSMasqと競合する場合がある。</u><br> <u>Bookworm以降は、NetworkManagerに移行しており、dhcpcd5との競合は軽減されている。</u><br> <br> <u>DHCPサーバとして運用する場合は、事前に固定IPアドレスを設定しておくこと。</u><br> <br><br> == DNSMasqの主な機能 == 下表に、DNSMasqが提供する主な機能を示す。<br> <br> <center> {| class="wikitable" |+ DNSMasqの主な機能 ! 機能 !! 説明 |- | DNSフォワーダ || 上流DNSサーバにクエリを転送して、応答をキャッシュする。 |- | DHCPサーバ || DHCPv4 / DHCPv6 / BOOTPに対応<br>静的・動的リース両対応 |- | TFTPサーバ || PXEネットブート用の読み取り専用TFTPサーバを提供。 |- | ルータ広告 (RA) || IPv6のRAサーバ機能を提供 |- | DNSキャッシュ || 上流応答をキャッシュして応答速度を向上 |} </center> <br> これらの機能は1つのプロセスで統合的に提供されるため、複数のサービスを個別に導入・設定する必要がない。<br> <br><br> == DNSMasqの設定 == ==== 設定ファイルの構成 ==== DNSMasqの設定ファイルの構成を以下に示す。<br> <br> * メイン設定ファイル *: <u>/etc/dnsmasq.conf</u> * ドロップイン設定ディレクトリ *: <u>/etc/dnsmasq.d/</u> *: このディレクトリ内の <u>.conf</u> ファイルは自動的に読み込まれる。 * ホスト名登録ファイル *: <u>/etc/hosts</u> (デフォルト) または <code>--addn-hosts</code> オプションで指定したファイル * 上流DNS参照ファイル *: <u>/etc/resolv.conf</u> (デフォルト) または <code>--resolv-file</code> オプションで指定したファイル * リースファイル *: <u>/var/lib/dnsmasq/dnsmasq.leases</u> *: DHCPリース情報が記録される。 <br> ドロップインディレクトリを活用することにより、<u>/etc/dnsmasq.conf</u> ファイルを直接編集せずに設定を追加できる。<br> <br> ==== /etc/dnsmasq.confの主要設定項目 ==== 下表に、<u>/etc/dnsmasq.conf</u> ファイルの主な設定項目を示す。<br> <br> <center> {| class="wikitable" |+ /etc/dnsmasq.confの主な設定項目 ! 設定項目 !! デフォルト値 !! 説明 |- | <code>port=53</code> || 53 || DNSリッスンポート<br><code>0</code> でDNS機能を無効化 |- | <code>interface=<name></code> || 全IF || リッスンするインターフェースを指定 |- | <code>listen-address=<ip></code> || 全アドレス || リッスンするIPアドレスを指定 |- | <code>bind-interfaces</code> || 無効 || 指定インターフェースのみbind |- | <code>bind-dynamic</code> || 無効 || bind-interfaces相当 + 新IF自動検出<br>推奨 |- | <code>domain-needed</code> || 無効 || ドットなしクエリを上流に転送しない。 |- | <code>bogus-priv</code> || 無効 || プライベートIP逆引きを上流に転送しない。(RFC6303) |- | <code>no-resolv</code> || 無効 || <u>/etc/resolv.conf</u> ファイルを読まない。 |- | <code>resolv-file=<file></code> || /etc/resolv.conf || 上流DNS取得ファイルを指定 |- | <code>no-poll</code> || 無効 || <u>resolv.conf</u> ファイル変更ポーリングを無効化 |- | <code>server=<domain>/<ip></code> || なし || ドメイン別の転送先を指定 |- | <code>address=<domain>/<ip></code> || なし || 常に指定IPを返す。 |- | <code>domain=<domain></code> || なし || ローカルドメインを指定 |- | <code>local=<domain></code> || なし || <code>server=/domain/</code> のシノニム |- | <code>expand-hosts</code> || 無効 || <u>/etc/hosts</u> ファイルの単純名にドメインを付加 |- | <code>no-hosts</code> || 無効 || <u>/etc/hosts</u> ファイルを読まない。 |- | <code>addn-hosts=<file></code> || なし || 追加hostsファイルを指定 |- | <code>stop-dns-rebind</code> || 無効 || DNS再バインディング攻撃対策 |- | <code>rebind-localhost-ok</code> || 無効 || 127.0.0.0/8, ::1をrebind除外 |- | <code>rebind-domain-ok=<domain></code> || なし || 指定ドメインをrebind除外 |- | <code>local-service</code> || 無効 || ローカルネットワークからのクエリのみ受付 |- | <code>cache-size=<num></code> || 150 || キャッシュ最大サイズ<br><code>0</code> で無効 |- | <code>dns-forward-max=<num></code> || 150 || 同時上流クエリ最大数 |- | <code>log-queries</code> || 無効 || DNSクエリログを記録 |- | <code>log-facility=<facility></code> || DAEMON || syslogファシリティを指定 |- | <code>user=<username></code> || nobody || 起動後の実行ユーザ |- | <code>edns-packet-max=<size></code> || 1232 || EDNS.0 UDP最大サイズ (DNS Flag Day 2020) |} </center> <br> 実設定例を以下に示す。<br> <br> # /etc/dnsmasq.conf # DNSサーバのポート番号 port=53 # リッスンするインターフェース interface=eth0 listen-address=127.0.0.1,192.168.1.100 # ドットなしクエリおよびプライベートIP逆引きを上流に転送しない domain-needed bogus-priv # ローカルドメインの指定 domain=raspi.com local=/raspi.com/ expand-hosts # /etc/hosts は使用せず、追加hostsファイルを使用 no-hosts addn-hosts=/etc/hosts-dnsmasq # 任意のIPアドレスに強制的に接続させたいドメイン address=/raspi.com/192.168.1.100 # キャッシュサイズ cache-size=10000 # 上流DNSサーバ server=192.168.1.1 server=1.1.1.1 # DNS再バインディング攻撃対策 stop-dns-rebind <br> ==== DHCPサーバ機能の設定 ==== 下表に、DHCPサーバ機能の主な設定項目を示す。<br> <br> <center> {| class="wikitable" |+ DHCPサーバ機能の主な設定項目 ! 設定項目 !! デフォルト値 !! 説明 |- | <code>dhcp-range</code> || なし || DHCPリース範囲を指定<br>例: <code>192.168.1.100,192.168.1.200,255.255.255.0,12h</code> |- | <code>dhcp-host</code> || なし || MAC / UID別の静的IP割り当て |- | <code>dhcp-option</code> || なし || 追加DHCPオプション<br>例: <code>option:router,192.168.1.1</code> |- | <code>dhcp-authoritative</code> || 無効 || 権威DHCPサーバとして宣言 |- | <code>dhcp-lease-max</code> || 1000 || 最大リース数 |- | <code>log-dhcp</code> || 無効 || DHCP詳細ログを記録 |- | <code>no-dhcp-interface=<iface></code> || なし || 指定IFでDHCPを無効化 |} </center> <br> DHCPサーバ機能の設定例を以下に示す。<br> <br> # DHCPリース範囲の指定 dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,12h # 静的IP割り当て (MACアドレス指定) dhcp-host=aa:bb:cc:dd:ee:ff,192.168.1.50,client1 # デフォルトゲートウェイの通知 dhcp-option=option:router,192.168.1.1 # DNSサーバの通知 dhcp-option=option:dns-server,192.168.1.100 # 権威DHCPサーバとして宣言 dhcp-authoritative # DHCP詳細ログ log-dhcp <br> ==== ホスト名の登録 ==== ホスト名とIPアドレスの対応は、以下のいずれかの方法で登録する。<br> <br> ===== /etc/hostsを直接使用する方法 ===== デフォルトでは、DNSMasq は <u>/etc/hosts</u> を読み込んで名前解決を行う。<br> <br> # /etc/hosts 192.168.1.100 ns.raspi.com ns 192.168.1.101 client1.raspi.com client1 192.168.1.102 client2.raspi.com client2 <br> ===== addn-hostsを使用する方法 ===== <u>/etc/hosts</u> ファイルとは別にホスト名登録用ファイルを用意する場合は、<u>no-hosts</u> と <u>addn-hosts</u> を組合せて使用する。<br> <br> # /etc/dnsmasq.confファイル no-hosts addn-hosts=/etc/hosts-dnsmasq <br> # /etc/hosts-dnsmasqファイル 192.168.1.100 ns.raspi.com ns 192.168.1.101 client1.raspi.com client1 192.168.1.102 client2.raspi.com client2 <br> <u>expand-hosts</u> を有効化している場合は、単純名 (例: client1) での問い合わせにも自動的に <code>domain=</code> で指定したドメインが付加される。<br> <br> ==== 動作の流れ ==== DNSMasqの名前解決の動作の流れを、以下に示す。<br> <br> # クライアントPCからDNSサーバ (DNSMasq) へ問い合わせが来る。 # ホスト名のみの場合 (例: sle)、local または hostsファイルを参照して名前解決を行う。 # ホスト名 + ドメイン名の場合 (例: sle.suse.com)、local または hostsファイルを参照して名前解決を行う。 # ドメイン外の場合 (例: google.co.jp)、上位のDNSサーバに問い合わせをフォワードする。 <br> 上流DNSへのフォワード応答はキャッシュされて、次回以降の同一クエリに対してはキャッシュから応答が返される。<br> <br><br> == systemd-resolvedとの競合回避 == 現代のLinuxディストリビューションでは、systemd-resolvedがデフォルトで有効化されている場合がある。<br> <br> systemd-resolvedは、<u>127.0.0.53:53</u> でスタブリスナーを起動するため、DNSMasqが53番ポートをバインドしようとすると <u>Address already in use</u> エラーで起動に失敗する。<br> <br> 競合を回避する手順を以下に示す。<br> <br> # 設定ディレクトリを作成する。 #: <pre>sudo mkdir -p /etc/systemd/resolved.conf.d</pre> # スタブリスナー無効化設定ファイルを作成する。 #: <syntaxhighlight lang="ini"> # /etc/systemd/resolved.conf.d/disable-stub.confファイル [Resolve] DNSStubListener=no </syntaxhighlight> #: <br> # systemd-resolvedを再起動する。 #: <pre>sudo systemctl restart systemd-resolved</pre> # <u>/etc/resolv.conf</u> ファイルを再設定する。 #: <syntaxhighlight lang="text"> sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf # または手動で nameserver 127.0.0.1 を設定する </syntaxhighlight> # DNSMasqを再起動する。 #: <pre>sudo systemctl restart dnsmasq</pre> # 53番ポートのリッスン状況を確認する。 #: <pre>sudo ss -tulpn | grep :53</pre> <br> <u>※注意</u><br> <u>NetworkManagerの <code>dns=dnsmasq</code> 設定は、NetworkManagerが独自のDNSMasqインスタンスを起動する機能である。</u><br> <u>スタンドアロンでDNSMasqを運用する場合は、<u>/etc/NetworkManager/NetworkManager.conf</u> ファイルの <code>dns=</code> を <code>default</code> 等に変更して無効化することが推奨される。</u><br> <br> <u>systemd-resolvedのスタブリスナーを無効化した後は、<u>/etc/resolv.conf</u> ファイルがDNSMasq (127.0.0.1) を向くように設定すること。</u><br> <br><br> == DNSMasqの起動と停止 == DNSMasqの起動、停止、有効化、無効化、再起動、状態確認、ログ確認のコマンドを以下に示す。<br> <br> * 起動 *: <pre>sudo systemctl start DNSMasq</pre> *: <br> * 停止 *: <pre>sudo systemctl stop dnsmasq</pre> *: <br> * 自動起動の有効化 *: <pre>sudo systemctl enable dnsmasq</pre> *: <br> * 自動起動の無効化 *: <pre>sudo systemctl disable dnsmasq</pre> *: <br> * 再起動 *: <pre>sudo systemctl restart dnsmasq</pre> *: <br> * 状態確認 *: <pre>sudo systemctl status dnsmasq</pre> *: <br> * ログ確認 *: <pre>sudo journalctl -u dnsmasq</pre> <br> ==== ファイアウォールの設定 ==== 下表に、DNSMasqが使用するポートを環境別に示す。<br> <br> <center> {| class="wikitable" |+ 環境別ファイアウォール設定 ! 環境 !! ツール !! DNS (53/UDP+TCP) !! DHCP (67/UDP) !! TFTP (69/UDP) !! コマンド例 |- | RHEL || firewalld || dnsサービス || dhcpサービス || tftpサービス || <code>sudo firewall-cmd --permanent --add-service=dns</code> |- | SUSE || firewalld || dnsサービス || dhcpサービス || tftpサービス || <code>sudo firewall-cmd --permanent --add-service=dns</code> |- | Raspberry Pi OS || ufw || 53/TCP+UDP || 67/UDP || 69/UDP || <code>sudo ufw allow 53/udp</code> |} </center> <br> ===== firewalldの場合 ===== # DNS (53/UDP, 53/TCP) の許可 sudo firewall-cmd --permanent --add-service=dns ## またはゾーンを指定 sudo firewall-cmd --zone=internal --permanent --add-service=dns # DHCP (67/UDP) の許可 sudo firewall-cmd --permanent --add-service=dhcp # TFTP (69/UDP) の許可 (PXEブートを使用する場合) sudo firewall-cmd --permanent --add-service=tftp # 設定の反映 sudo firewall-cmd --reload <br> ポートを閉じる場合は、<code>--add-service</code> オプションを <code>--remove-service</code> オプションに置き換える。<br> <br> ===== ufwの場合 ===== # DNS (53/UDP, 53/TCP) の許可 sudo ufw allow 53/udp sudo ufw allow 53/tcp # DHCP (67/UDP) の許可 sudo ufw allow 67/udp # TFTP (69/UDP) の許可 (PXEブートを使用する場合) sudo ufw allow 69/udp # 設定の確認 sudo ufw status <br><br> == クライアントPCの設定 == クライアントPCから内部向けDNSサーバを利用するための設定を行う。<br> <br> まず、ドメイン検索の設定を行う。<br> <br> * KDEを使用している場合 *# [KDEシステム設定]を起動して、[接続]を選択する。 *# [接続]画面左の接続名を選択して、[接続]画面右の[IPv4]タブ - [DNSサーバ:]項目に内部向けDNSサーバのIPアドレスを追加する。 *# 同様に、[接続]画面右の[IPv4]タブ - [検索ドメイン:]項目に内部向けDNSサーバのドメイン名を入力する。<br>例えば、DNSサーバ名が <u>ns.suse.com</u> の場合、<u>suse.com</u> と入力する。 ** リゾルバファイルを編集する場合 **: <u>/etc/resolv.conf</u> ファイルにおいて、内部向けDNSサーバのドメイン名を入力する。 **: 例えば、DNSサーバ名が <u>ns.suse.com</u> の場合、<u>suse.com</u> と入力する。 **: <pre>sudo vi /etc/resolv.conf</pre> **: <syntaxhighlight lang="text"> # /etc/resolv.confファイル domain suse.com # または search suse.com </syntaxhighlight> **: <br> **: SUSEの場合は、編集後に以下に示すコマンドを実行する。 **: <pre>sudo netconfig update -f</pre> <br> 次に、クライアントPCのネットワークを再起動する。<br> <br> * systemctlコマンドを使用する場合 *: <pre>sudo systemctl restart NetworkManager</pre> * nmcliコマンドを使用する場合 *: NetworkManagerの全てのインターフェイスを停止した後、これらを起動する。 *: <syntaxhighlight lang="text"> sudo nmcli networking off sudo nmcli networking on </syntaxhighlight> <br><br> == 動作確認 == ==== digコマンド ==== digコマンドは、DNSクエリを送信して応答を確認するツールである。<br> <br> digコマンドを含むパッケージはディストリビューションにより異なる。<br> <br> # RHEL sudo dnf install bind-utils # SUSE sudo zypper install bind-utils # Raspberry Pi sudo apt install dnsutils <br> digコマンドの基本的な使用方法を以下に示す。<br> <br> # OSに設定されているDNSサーバに問い合わせ dig <問い合わせホスト名> # @以下で指定したDNSサーバに問い合わせ dig @<DNSサーバIP> <問い合わせホスト名> # IPアドレスからの逆引き dig -x <IPアドレス> <br> ==== digコマンドの主なオプション ==== 下表に、digコマンドの主なオプションを示す。<br> <br> <center> {| class="wikitable" |+ digコマンドの主なオプション ! オプション !! 説明 |- | <code>@<server></code> || クエリ送信先DNSサーバを指定 |- | <code>-x <ip></code> || 逆引きクエリ (in-addr.arpa自動構築) |- | <code>+short</code> || 回答値のみを出力 |- | <code>+noall +answer</code> || ANSWERセクションのみ表示 |- | <code>+trace</code> || ルートサーバから委任チェーンを追跡 |- | <code>+time=<sec></code> || クエリタイムアウト (デフォルト5) |- | <code>+tries=<num></code> || 再試行回数 (デフォルト3) |- | <code>+recurse</code> || 再帰クエリ要求 (デフォルト有効) |- | <code>+norecurse</code> || 非再帰クエリ要求 |- | <code>+tcp</code> || TCPで送信 |- | <code>+dnssec</code> || DNSSECレコードを要求 |- | <code>+domain=<name></code> || 検索ドメインを付加 |- | <code>+search</code> || <u>/etc/resolv.conf</u> ファイルのsearchを使用 |- | <code>-p <port></code> || ポートを指定 |} </center> <br> ==== 正引きおよび逆引き ==== 各クライアントPCの正引きおよび逆引きができるかどうかを確認する。<br> <br> nslookupコマンドを使用する例を以下に示す。<br> <br> nslookup ns.suse.com # 内部向けDNSサーバの正引き nslookup pc1.suse.com # クライアントPC 1の正引き nslookup pc2.suse.com # クライアントPC 2の正引き nslookup pc3.suse.com # クライアントPC 3の正引き nslookup 192.168.1.XX # 内部向けDNSサーバの逆引き nslookup 192.168.1.YY # クライアントPC 1の逆引き nslookup 192.168.1.ZZ # クライアントPC 2の逆引き nslookup 192.168.1.AA # クライアントPC 3の逆引き <br> digコマンドを使用する例を以下に示す。<br> <br> # 正引き (回答値のみ) dig @127.0.0.1 ns.suse.com +short dig @127.0.0.1 pc1.suse.com +short # 逆引き (回答値のみ) dig -x 192.168.1.XX +short dig -x 192.168.1.YY +short <br> 再帰問い合わせが無効の場合 (<code>recursion=no</code>) は、クライアントPCのIPアドレスを直接指定して問い合わせる。<br> <br> dig @<PCのIPアドレス> <ドメイン名> # 例1 dig @192.168.10.5 ns.suse.net # 例2 dig @192.168.10.6 pc01.suse.net <br><br> == トラブルシューティング == ==== 53番ポートが既に使用されている ==== * 原因 *: systemd-resolved または 他のDNSサーバ (bind, unbound, Pi-hole等) が53番ポートを占有している。 *: <br> * 確認方法 *: <pre>sudo ss -tulpn | grep :53</pre> *: <br> * 解決方法 ** systemd-resolvedのスタブリスナーを無効化する。<br>前述の[[#systemd-resolvedとの競合回避|systemd-resolvedとの競合回避]]セクションを参照すること。 ** 他のDNSサーバを停止する。 ** dnsmasq を再起動する。 <br> ==== 名前解決できない (上流DNS到達不可) ==== *原因 *: <u>/etc/resolv.conf</u> ファイル または <code>--resolv-file</code> オプションで指定した上流サーバに到達不能。 *: <br> * 確認方法 *: <syntaxhighlight lang="text"> dig @8.8.8.8 example.com +short sudo journalctl -u dnsmasq </syntaxhighlight> *: <br> * 解決方法 ** <u>/etc/resolv.conf</u> ファイルの内容を確認して、到達可能な上流DNSを指定する。 ** <code>no-resolv</code> 使用時は、<code>server=</code> で上流DNSを明示指定する。 ** ファイアウォールで53番ポート (UDP / TCP) の送信を許可する。 <br> ==== 設定ファイルの構文エラー ==== * 原因 *: オプション名の誤り あるいは 値の形式間違い。 *: <br> * 確認方法 *: <pre>sudo dnsmasq --test</pre> *: <br> * 解決方法 ** <code>--test</code> オプションで指摘された行を修正する。 ** 再度、<code>--test</code> オプションを付加して検証する。 ** DNSmasqを再起動する。 **: <pre>sudo systemctl restart dnsmasq</pre> <br> ==== サービスが起動しない ==== * 原因 *: 構文エラー、53番ポートの競合、interfaceが存在しない、権限不足 *: <br> * 確認方法 *: <syntaxhighlight lang="text"> sudo systemctl status dnsmasq sudo journalctl -u dnsmasq sudo systemctl is-enabled dnsmasq </syntaxhighlight> *: <br> * 解決方法 ** <code>dnsmasq --test</code> オプションで構文を修正する。 ** 53番ポートの競合問題を解決する。<br>前述のsystemd-resolvedセクションを参照すること。 ** <u>bind-interfaces</u> を <u>bind-dynamic</u> に変更する。 ** masked状態の場合は、unmaskする。 **: <pre>sudo systemctl unmask dnsmasq.service</pre> <br> ==== DNS再バインディング攻撃を止める ==== * 原因 *: 外部攻撃者がDNS応答でプライベートIPを返して、内部ネットワークへアクセスを試みる。 *: <br> * 確認方法 *: <pre>sudo journalctl -u dnsmasq | grep -i rebind</pre> *: <br> * 解決方法 ** <u>stop-dns-rebind</u> を有効化する。 ** 例外ドメインは、<u>rebind-domain-ok=<domain></u> で指定する。 ** <u>rebind-localhost-ok</u> で、<u>127.0.0.0/8</u> と <u>::1</u> をrebind除外に設定する。 <br><br> == 関連情報 == * [https://thekelleys.org.uk/dnsmasq/doc.html dnsmasq 公式ドキュメント] * [https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html dnsmasq man ページ] * [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/10/ Red Hat Enterprise Linux 10 ドキュメント] * [https://documentation.suse.com/sles/16/ SUSE Linux Enterprise Server 16 ドキュメント] * [https://www.raspberrypi.com/documentation/ Raspberry Pi 公式ドキュメント] * [[サーバ - DHCP]] <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,DNSMasq,DNS,DHCP,TFTP,RHEL,NetworkManager |description={{PAGENAME}} - DNSMasqの設定ガイド (RHEL / SUSE / Raspberry Pi OS向け) DNSフォワーダ、DHCPサーバ、TFTPサーバの統合設定手順 | This page is {{PAGENAME}} in MochiuWiki |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry Pi]]
設定 - DNSMasq
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse