第23章 異なるドメインでの各種 DNS サーバーの使用


デフォルトでは、Red Hat Enterprise Linux (RHEL) は、すべての DNS リクエストを、/etc/resolv.conf ファイルで指定されている最初の DNS サーバーに送信します。このサーバーが応答しない場合、RHEL は動作するサーバーが見つかるまでこのファイル内の次のサーバーを試行します。ある DNS サーバーがすべてのドメインを解決できない環境では、管理者は、特定のドメインの DNS 要求を選択した DNS サーバーに送信するように RHEL を設定できます。

たとえば、サーバーを仮想プライベートネットワーク (VPN) に接続し、VPN 内のホストが example.com ドメインを使用するとします。この場合、次の方法で DNS クエリーを処理するように RHEL を設定できます。

  • example.com の DNS 要求のみを VPN ネットワーク内の DNS サーバーに送信します。
  • 他のすべての要求は、デフォルトゲートウェイを使用して接続プロファイルで設定されている DNS サーバーに送信します。

dnsmasq のインスタンスを開始するように NetworkManager を設定できます。次に、この DNS キャッシュサーバーは、loopback デバイスのポート 53 をリッスンします。したがって、このサービスはローカルシステムからのみ到達でき、ネットワークからは到達できません。

この設定では、NetworkManager は nameserver 127.0.0.1 エントリーを /etc/resolv.conf ファイルに追加し、dnsmasq は DNS 要求を NetworkManager 接続プロファイルで指定された対応する DNS サーバーに動的にルーティングします。

前提条件

  • システムに NetworkManager の接続が複数設定されている。
  • 特定のドメインを解決する役割を担う接続に対して、DNS サーバーと検索ドメインが設定されている。

    たとえば、VPN 接続で指定された DNS サーバーが example.com ドメインのクエリーを確実に解決できるようにするには、次の設定が必要です。

    • example.com を解決できる DNS サーバー。DHCP サーバーによってこの情報を動的に提供することも、VPN 接続プロファイルで ipv4.dns および ipv6.dns パラメーターを設定することもできます。
    • example.com に設定された検索ドメイン。DHCP サーバーによってこの情報を動的に提供することも、VPN 接続プロファイルで ipv4.dns-search および ipv6.dns-search パラメーターを設定することもできます。
  • dnsmasq サービスが実行されていないか、localhost とは異なるインターフェイスでリッスンするように設定されています。

手順

  1. dnsmasq パッケージをインストールします。

    # yum install dnsmasq
    Copy to Clipboard Toggle word wrap
  2. /etc/NetworkManager/NetworkManager.conf ファイルを編集し、[main] セクションに以下のエントリーを設定します。

    dns=dnsmasq
    Copy to Clipboard Toggle word wrap
  3. NetworkManager サービスを再読み込みします。

    # systemctl reload NetworkManager
    Copy to Clipboard Toggle word wrap

検証

  1. NetworkManager ユニットの systemd ジャーナルで、サービスが別の DNS サーバーを使用しているドメインを検索します。

    # journalctl -xeu NetworkManager
    ...
    Jun 02 13:30:17 <client_hostname>_ dnsmasq[5298]: using nameserver 198.51.100.7#53 for domain example.com
    ...
    Copy to Clipboard Toggle word wrap
  2. tcpdump パケットスニファを使用して、DNS 要求の正しいルートを確認します。

    1. tcpdump パッケージをインストールします。

      # yum install tcpdump
      Copy to Clipboard Toggle word wrap
    2. 1 つのターミナルで tcpdump を起動し、すべてのインターフェイスで DNS トラフィックを取得します。

      # tcpdump -i any port 53
      Copy to Clipboard Toggle word wrap
    3. 別のターミナルで、例外が存在するドメインと別のドメインのホスト名を解決します。次に例を示します。

      # host -t A www.example.com
      # host -t A www.redhat.com
      Copy to Clipboard Toggle word wrap
    4. tcpdump 出力で、Red Hat Enterprise Linux が example.com ドメインの DNS クエリーのみを指定された DNS サーバーに、対応するインターフェイスを通じて送信していることを確認します。

      ...
      13:52:42.234533 IP server.43534 > 198.51.100.7.domain: 50121+ [1au] A? www.example.com. (33)
      ...
      13:52:57.753235 IP server.40864 > 192.0.2.1.domain: 6906+ A? www.redhat.com. (33)
      ...
      Copy to Clipboard Toggle word wrap

      Red Hat Enterprise Linux は、www.example.com の DNS クエリーを 198.51.100.7 の DNS サーバーに送信し、www.redhat.com のクエリーを 192.0.2.1 に送信します。

トラブルシューティング

  1. /etc/resolv.conf ファイルの nameserver エントリーが 127.0.0.1 を指していることを確認します。

    # cat /etc/resolv.conf
    nameserver 127.0.0.1
    Copy to Clipboard Toggle word wrap

    エントリーがない場合は、/etc/NetworkManager/NetworkManager.conf ファイルの dns パラメーターを確認します。

  2. dnsmasq サービスが loopback デバイスのポート 53 でリッスンしていることを確認します。

    # ss -tulpn | grep "127.0.0.1:53"
    udp  UNCONN 0  0    127.0.0.1:53   0.0.0.0:*    users:(("dnsmasq",pid=7340,fd=18))
    tcp  LISTEN 0  32   127.0.0.1:53   0.0.0.0:*    users:(("dnsmasq",pid=7340,fd=19))
    Copy to Clipboard Toggle word wrap

    サービスが 127.0.0.1:53 をリッスンしていない場合は、NetworkManager ユニットのジャーナルエントリーを確認します。

    # journalctl -u NetworkManager
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る