Raspberry Pi 上の DNS サーバー
- Raspberry Pi 上の DNS サーバー
- Raspberry Pi で静的 IP アドレスを設定する
- 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+x、y、ENTER を使用して、構成ファイルに加えた変更を保存する必要があります。 . 新しい設定が読み込まれ、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
上記のコマンドでは、@localhost
を dig
コマンドで使用しています。これは、DNS ルックアップにそれを利用し、以下の出力を返します。
上記のコマンドを再実行すると、上の画像のクエリ時間が減少します。これは、前のリクエストがキャッシュ メモリに保存されたことを意味します。