Raspberry Pi 上の DNS サーバー

Ammar Ali 2024年2月15日
  1. Raspberry Pi 上の DNS サーバー
  2. Raspberry Pi で静的 IP アドレスを設定する
  3. Raspberry Pi で DNS サーバーをセットアップする
  4. Raspberry Pi で DNS サーバーをテストする
Raspberry Pi 上の DNS サーバー

このチュートリアルでは、DNS を使用して Raspberry Pi で IP アドレスを使いやすいドメイン名に変換し、コンピューターの DNS 要求の計算時間を改善する方法について説明します。

Raspberry Pi 上の DNS サーバー

DNS またはドメイン ネーム システムは、コンピューターが読み取り可能な IP アドレスを 192.168.0.1 のような人が読めるドメイン名から webname.com のようなものに変換します。 Web サイトを開きたいとき、その名前を検索バーに入力しますが、コンピューターはそれを理解せず、DNS を使用してドメイン名をコンピューターが理解できる IP アドレスに変換します。

Raspberry Pi で DNS を使用して、IP アドレスをドメイン名に変換できます。これにより、コンピューターでの DNS 要求の計算時間も改善されます。 コンピューターまたは携帯電話を Raspberry Pi の DNS サーバーにリンクできます。DNS 要求を行うたびに、Raspberry Pi の DNS サーバーがその要求の IP アドレスを決定し、応答をキャッシュ メモリに保存します。

これは、同じドメインを再度要求すると、Raspberry Pi DNS がキャッシュから応答を返し、計算時間を短縮することを意味します。 私たちのコンピューターも同じことをします。 アプリケーションを初めて開いて閉じると、コンピューターはそれをキャッシュ メモリに保存し、再度実行すると、コンピューターはキャッシュ メモリからアプリケーションを実行します。これにより、アプリケーションを開く時間が短縮されます。

Raspberry Pi で静的 IP アドレスを設定する

Raspberry Pi に DNS サーバーをインストールしてセットアップする前に、Raspberry Pi で静的 IP アドレスを使用する必要があります。これは、動的 IP アドレスはそれ自体で変更される可能性があり、常に同じままである IP アドレスが必要であるためです。 以下の手順に従って、Raspberry Pi に静的 IP アドレスを設定します。

IP アドレスを処理する DHCP クライアント ドメインを使用して、Raspberry Pi に静的 IP アドレスを使用させることができます。 Raspberry Pi の DHCPCD 構成ファイルでいくつかの設定を変更する必要があります。

まず、ルーターの IP アドレスや Raspberry Pi などの情報を取得する必要があります。 ルーターの IP アドレスを確認するには、ターミナルで以下のコマンドを実行する必要があります。

ip r | grep default

出力:

default via 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 202

最初の IP アドレスはルーターの IP アドレスで、この場合は 10.0.2.2 です。これは後で使用するため、書き留めておく必要があります。

次に、以下のコマンドを使用して DNS サーバーの現在の IP アドレスを取得する必要があります。

sudo nano /etc/resolv.conf

出力:

domain Home
nameserver 127.0.0.1

上記のコードは、キーボードから CTRL+x を使用して閉じることができる構成ファイルを開きます。 上記のコードの IP アドレスは DNS サーバーの IP アドレスで、127.0.0.1 であり、これにも注意する必要があります。

これで、以下のコマンドを使用してdhcpcd.confファイルを開いて変更できます。

sudo nano /etc/dhcpcd.conf

上記のコマンドは DHCPCD の構成ファイルを開きます。ファイルの最後に以下のコード行を入力する必要があります。

interface <eth0 or wlan0>
static ip_address=<static IP>/24
static routers=<router IP>
static domain_name_servers=<dns server IP>

上記のコードの最初の行では、Raspberry Pi のネットワークに応じて、イーサネットの場合は eth0 を、WIFI の場合は wlan0 を記述する必要があります。 2 行目では、Raspberry Pi に割り当てたい IP アドレスで静的 IP を変更する必要があります。

3 行目では、上で取得したルーターの IP アドレスを追加する必要があります。これは 10.0.2.2 でした。 4行目に、DNSサーバーのIPアドレスを追加する必要があります。これは、上記の手順で見つけたものと同じで、127.0.0.1またはGoogleの8.8.8.8のような別のDNS IPアドレスです .

その後、CTRL+xyENTER を使用して、構成ファイルに加えた変更を保存する必要があります。 . 新しい設定が読み込まれ、Raspberry Pi が新しい静的 IP アドレスを使用してルーターに接続されるように、sudo reboot コマンドを使用して Raspberry Pi を再起動する必要があります。

Raspberry Pi で DNS サーバーをセットアップする

静的 IP アドレスを設定したら、ターミナルで以下のコマンドを使用して Raspberry Pi OS を更新し、DNS サーバーをインストールする必要があります。

sudo apt update
sudo apt upgrade
sudo apt install dnsmasq

上記のコマンドを 1つずつ実行する必要があります。許可を求められたら、y と入力してパッケージをインストールします。 次に、dnsmasq.conf ファイルを開いて、以下のコマンドを使用していくつかの設定を変更する必要があります。

sudo nano /etc/dnsmasq.conf

上記のコマンドは構成ファイルを開きます。いくつかの行を見つけて置き換える必要があります。 CTRL+W を使用して検索バーを開き、以下のコード行を検索して置き換えることができます。

検索バー内にテキストを入力し、ENTER を押して検索できます。

探す:

#domain-needed

と置換する:

domain-needed

上記のコマンドは、DNS サーバーが . を含まない名前を転送することを許可します。 または .com を使用し、localhost のようにローカル ネットワーク内の名前を保持します。

探す:

#bogus-priv

と置換する:

bogus-priv

上記のコマンドは、DNS サーバーが逆クエリをアップストリーム サーバーに送信するのを停止し、ローカル ネットワークの IP アドレスが DNS サーバーに送信されないようにします。

探す:

#no-resolv

と置換する:

no-resolv

上記のコマンドは、DNS がアップストリーム サーバーの構成ファイルを読み取らないようにします。

探す:

#server=/localnet/192.168.0.1

と置換する:

server=8.8.8.8
server=8.8.4.4

上記のコマンドは、DNS サーバーがアップストリーム サーバーに Google DNS サーバーを使用するようにします。

探す:

#cache-size=150

と置換する:

cache-size=1000

上記のコマンドはキャッシュ サイズを増やし、DNS サーバーがキャッシュ メモリに格納する要求の数を増やします。 CTRL+X を使用し、y を入力してから ENTERENTER</ を入力して、構成ファイルに加えた変更を保存する必要があります。 kbd> キーボードから。

DNS サーバーを再起動し、以下のコマンドを使用してそのステータスを確認する必要があります。

sudo systemctl restart dnsmasq
sudo systemctl status dnsmasq

ターミナルで上記のコマンドを 1つずつ実行する必要があります。2 番目のコマンドは、Active: active (running) のような情報と他の情報を表示します。これは、DNS サーバーがアクティブで実行中であることを意味します。

Raspberry Pi で DNS サーバーをテストする

DNS サーバーをテストするには、以下のコマンドを使用してインストールできる dig ツールを使用できます。

sudo apt install dnsutils

インストール後、以下のコマンドを使用して DNS サーバーをテストできます。

dig ammar.com @localhost

上記のコマンドでは、@localhostdig コマンドで使用しています。これは、DNS ルックアップにそれを利用し、以下の出力を返します。

dns テスト

上記のコマンドを再実行すると、上の画像のクエリ時間が減少します。これは、前のリクエストがキャッシュ メモリに保存されたことを意味します。

著者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

関連記事 - Raspberry Pi