このセクションでは、ネイティブの Google Cloud Platform DNS サービスをバイパスし、代わりに独自の外部またはセルフホスト DNS リゾルバーを使用する必要があるユーザー向けのオプションの手順を説明します。
この設定は、 Netskope Publisherのようなソフトウェアでよく必要となる。Netskope Publisherは、組織内のプライベートDNSサーバーに接続して、内部アプリケーションのドメインを解決する必要があるからだ。
About the gce-resolved.conf File
Google Compute Engine パッケージの最新バージョンには、 /etc/systemd/resolved.conf.d/gce-resolved.confにファイルが含まれています。GCP はこのファイルを追加して、内部.local Cloud DNS ドメインのルックアップが GCP メタデータ サーバー ( 169.254.169.254 ) に正しくルーティングされるようにしました。
このファイルの副作用として、 all DNSトラフィックをメタデータサーバーにルーティングできる可能性があり、これは 外部DNSサービスの必要性と競合する可能性があります。 お使いの環境が GCP の.localドメイン解決に依存していない場合は、このファイルを削除して競合を安全に解決できます。
以下の手順でその方法を説明します。
設定手順
これらのコマンドを実行するには、sudo権限またはroot権限が必要です。
GCP DNS設定ファイルを削除します
オーバーライドを無効にするには、自動生成された設定ファイルを削除する必要があります。
sudo rm /etc/systemd/resolved.conf.d/gce-resolved.conf
カスタムDNSサーバーを設定する
netplanの設定ファイルを追加して、DNSサーバーを指定してください。
- Open the file with a text editor like nano:
sudo vi /etc/netplan/80-custom-dns.yaml
- 以下は使う例です
8.8.8.8DNSサーバーとして1.1.1.1、検索ドメインとしてdomain.com:network: version: 2 renderer: networkd ethernets: ens4: dhcp4: true dhcp4-overrides: use-dns: false dhcp6: true dhcp6-overrides: use-dns: false nameservers: addresses: - 8.8.8.8 - 1.1.1.1 search: - domain.com - ファイルを保存してエディタを終了します。
- 適切なファイル権限を設定してください。
sudo chmod 600 /etc/netplan/80-custom-dns.yaml
- 変更点をテストしてください:
sudo netplan try
- 変更を適用してください。
sudo netplan apply
リゾルバーサービスを再起動します
sudo systemctl restart systemd-resolved
Validation
resolvectlステータスを再度実行します。DNSサーバーの行にカスタムサーバーのIPアドレスが表示され、 $169.254.169.254$がリストに表示されていないことを確認してください。
/etc/resolv.confにカスタム DNS サーバーと検索ドメインが表示されるはずです。
(オプション)ホスト名解決の問題を修正する
Unable to resolve host ubuntu-22: Name or service not knownのようなエラーが表示された場合、 ホスト名エントリを/etc/hostsに追加してください。
127.0.0.1 ubuntu-22

