DHCP提供のDNSネームサーバーをネットワーク管理者のバックアップとして使用する

DHCP提供のDNSネームサーバーをネットワーク管理者のバックアップとして使用する

私のPCでは、cloudflareネームサーバーをプライマリサーバーとして使用したいと思います。この目的のために、Arch wikiに従って、/etc/NetworkManager/conf.d/dns-servers.conf次のコンテンツを含むファイルを作成しました。

[global-dns-domain-*]
servers=2606:4700:4700::1111,1.1.1.1

この方法は機能しますが、自動的に提供されたDNSネームサーバーを使用してログインページにリダイレクトされるため、特定のパブリックネットワークログインページにアクセスできません。

グローバルに提供するネームサーバーをデフォルトとして使用し、ローカルDHCPネームサーバーをフォールバックとして使用するようにNetwork Managerを設定する方法はありますか?

もう一つありますエマルジョンしかし、すべての答えは、DNSがネットワーク管理者が直接処理するのではなく、dhcpcdまたは同様のソフトウェアによって処理されると仮定しています。ネットワーク管理者だけを使用してこれを行う方法はありますか?

答え1

いくつかの研究の終わりに方法を見つけました。

まず削除しました/etc/NetworkManager/conf.d/dns-servers.conf(最初に作成していない場合はスキップしてください)。その後、/etc/NetworkManager/dispatcher.d/pre-up.d/30-add-custom-dns.sh次の内容でファイルを作成しました。

#!/bin/sh

if [ "$2" = "pre-up" ]; then
    sed -i '1inameserver 1.1.1.1' /etc/resolv.conf
    sed -i '1inameserver 2606:4700:4700::1111' /etc/resolv.conf
fi

実行可能でルートに属していることを確認する必要があります。私は以下を実行しました。

sudo chown root:root /etc/NetworkManager/dispatcher.d/pre-up.d/30-add-custom-dns.sh

そして

sudo chmod +x /etc/NetworkManager/dispatcher.d/pre-up.d/30-add-custom-dns.sh

確認。最後に、このシステムサービスを有効にして起動しましたNetworkManager-dispatcher.service

このスクリプトは接続が初期化された後に実行され、/etc/resolv.confNetworkManagerがそこに置いた内容をそのまま維持しながら、cloudflareネームサーバーエントリの先頭に追加されます。

関連情報