すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Linux:/etc/resolv.confファイルの手動管理を有効にする

最終更新日:Oct 23, 2024

Alibaba Cloud Linux 3では、NetworkManagerとsystemd-resolvedは、/etc/resolv.conf設定ファイルを読み取り、ドメイン名をIPアドレスに解決できるネットワーク管理サービスです。 デフォルトでは、NetworkManagerは構成ファイルを自動的に管理し、systemd-resolvedは読み取りますが、構成ファイルは更新しません。 /etc/resolv.confファイルでDNSパラメーターなどのカスタム設定を設定する場合は、NetworkManagerが設定ファイルを自動的に管理することを無効にする必要があります。 このトピックでは、2つのネットワーク管理サービスが構成ファイルを管理する方法と、ファイルの手動管理を有効にする方法について説明します。

ネットワーク管理サービスが /etc/resolv.confファイルを管理する方法

/etc/resolv.conf設定ファイルにはファイルが含まれていますが、Alibaba Cloud Linux 3ではソフトリンクは含まれていません。 NetworkManagerおよびsystemd-resolvedは、次のポリシーを使用して構成ファイルを管理します。

  • NetworkManager

    • ファイル作成ポリシー: システムが初めて起動すると、プライマリネットワークインターフェイスコントローラーが期待どおりに起動してIPアドレスを取得した後、NetworkManagerは /etc/resolv.confファイルを自動的に作成します。

    • ファイル更新ポリシー: デバイスステータス、IPアドレス、ルート、DNS名、ホスト名などのネットワークインターフェイスコントローラーパラメーターに変更が発生した場合、NetworkManagerは /etc/resolv.confファイルを更新します。

  • systemd-resolved

    • systemd-resolvedは、/etc/resolv.confファイルを読み取ることはできますが、更新しないコンシューマーです。

/etc/resolv.conf設定ファイルには、Alibaba Cloud Linux 3以外のLinuxディストリビューションのファイルまたはソフトリンクが含まれている場合があります。 管理ポリシーは、構成ファイルにファイルまたはソフトリンクが含まれているかどうかによって異なります。

/etc/resolv.confファイルの管理ポリシー

  • NetworkManager:

    • /etc/resolv.confファイルに /run/NetworkManager/resolv.confという名前の内部NetworkManagerファイルへのソフトリンクが含まれている場合、NetworkManagerはソフトリンクを更新できます。 それ以外の場合、NetworkManagerは構成ファイルを更新しません。

    • /etc/resolv.confファイルにファイルが含まれている場合、または存在しない場合、NetworkManagerはファイルを作成して自動的に管理します。

  • systemd-resolved:

    • /etc/resolv.conf設定ファイルに /run/systemd/resolve/resolv.confという名前のファイルへのソフトリンクが含まれている場合、systemd-resolveは /etc/resolv.confファイルを管理できます。

    • /etc/resolv.conf設定ファイルに /run/systemd/resolve/resolv.confファイルへのソフトリンクが含まれていない場合、systemd-resolveは /etc/resolv.confファイルを読み取ることはできますが、更新しません。

/etc/resolv.confファイルの手動管理を有効にする

Alibaba Cloud Linux 3では、/etc/resolv.confファイルでカスタムDNS設定を設定する場合、NetworkManagerがファイルを自動的に管理できないようにします。 以下の手順を実行します。

  1. /etc/resolv.confファイルを作成して開きます。

    sudo vim /etc/NetworkManager/conf.d/90-dns-none.conf
  2. Iキーを押してInsertモードに入り、次の内容を設定ファイルに追加します。

    [main]
    dns=none
  3. [Esc] キーを押して :wqと入力し、[enter] キーを押して設定ファイルを保存して閉じます。

  4. 設定ファイルをリロードします。

    sudo systemctl reload NetworkManager
重要

システムの起動時に /etc/resolv.confファイルが自動的に作成されない場合、設定ファイルに定義されているDNSサーバを使用してDNS解決を行うことはできません。 詳細については、「システムの起動後に /etc/resolv.confファイルが自動的に作成されない場合はどうすればよいですか? 」のトピックのセクションをご参照ください。

/etc/resolv.conf設定ファイルの自動管理を再度有効にする

/etc/resolv.confファイルの手動管理を有効にすると、NetworkManagerはファイルを自動的に管理しなくなります。 NetworkManagerを再度有効にしてファイルを自動的に管理するには、ステップ2で追加したコンテンツを削除またはコメントアウトし、ステップ4を実行して構成ファイルをリロードします。

よくある質問

システムの起動後に /etc/resolv.confファイルが自動的に作成されない場合はどうすればよいですか?

原因: NetworkManagerが起動できません。 そのため, /etc/resolv.confファイルは作成されません。

解決策: NetworkManagerのステータスとログを照会し、問題を解決します。

  1. NetworkManagerステータスを照会します。

    sudo systemctl status NetworkManager

    次の図に示す状態は、NetworkManagerが期待どおりに実行されることを示します。

    image

    別の状態が表示される場合は、NetworkManagerサービスログを表示して問題を特定します。

  2. NetworkManagerのアクティベーションに関するログを表示します。

    sudo journalctl -u NetworkManager -b

    ログに基づいて問題が解決したら、次のコマンドを実行してNetworkManagerを起動します。

    sudo systemctl start NetworkManager

    NetworkManagerが起動すると、/etc/resolv.conf設定ファイルが自動的に作成されます。