Zenn
🥳

RHEL: nmcli で DNS 検索ドメインにドメインを追加する手順

2025/04/06に公開

概要

RHELシステムで NetworkManager を管理するコマンドラインツール nmcli を使用して、特定のドメイン (XXX.co.jp など) を DNS の検索ドメインリストに追加する方法を備忘録として残します。

これにより、例えば server01.XXX.co.jp という FQDN (完全修飾ドメイン名) を持っているホストに対して、ping server01 のようにホスト名だけで名前解決できるようになります。特に、社内ドメインなど、頻繁にアクセスするドメインがある場合に設定しておくと便利です。

前提条件

  • OS: NetworkManagerが動作しているLinuxディストリビューション (例: CentOS/RHEL ,Ubuntu,Debian等)
  • nmcli コマンド: nmcli コマンドがインストールされ、利用可能であること。通常は NetworkManager と一緒にインストールされています。
  • 管理者権限: 設定変更には sudo コマンドなどによる管理者権限が必要です。

手順

1. 現在の設定を確認する

まず、現在の DNS 検索ドメイン設定を確認します。設定対象の接続名を <connection_name> に置き換えて実行してください。

# 接続名を確認
nmcli connection show

# 特定の接続の詳細設定を確認 (ipv4.dns-search を確認)
nmcli connection show <connection_name> | grep dns-search

ipv4.dns-search: (または ipv6.dns-search:) の行に、現在設定されている検索ドメインが表示されます。何も設定されていなければ、この行は表示されないか、空欄になっています。

また、システム全体で実際に参照されている設定は /etc/resolv.conf ファイルで確認できますが、NetworkManager が管理しているため、このファイルは自動生成されるため直接編集はしないこと!

cat /etc/resolv.conf

search 行があれば、それが現在の検索ドメインリストです。

2. 検索ドメインを追加する

nmcli connection modify コマンドを使用して、XXX.co.jp を検索ドメインリストに追加します。

重要:

  • +ipv4.dns-search のように + を付けると、既存のリストの末尾にドメインが追加されます。
  • ipv4.dns-search のように + を付けずに指定すると、既存のリストが上書きされてしまうため注意が必要です。

ここでは、既存の設定を保持しつつ XXX.co.jp を追加します。

# IPv4 の検索ドメインに XXX.co.jp を追加
sudo nmcli connection modify <connection_name> +ipv4.dns-search XXX.co.jp

補足: 追加ではなく全体を修正したい場合

もし XXX.co.jp をリストの先頭に追加して最優先で検索させたい場合は、下記の手順になります。

  1. 現在のリストを取得: nmcli connection show <connection_name> | grep dns-search
  2. 新しいリストを作成: 取得したリストの先頭に XXX.co.jp を加え、スペース区切りで文字列を作成します (例: "XXX.co.jp existing.domain1.com existing.domain2.com")。
  3. 設定を上書き: sudo nmcli connection modify <connection_name> ipv4.dns-search "XXX.co.jp existing.domain1.com existing.domain2.com" のように、+ なしで新しいリスト全体を指定します。

3. 設定を反映させる

NetworkManager の設定を再読み込みする方法もありますが、接続の再起動の方が確実な場合があります。

# または NetworkManager 再起動
sudo systemctl restart NetworkManager

4. 設定が反映されたか確認する

再度、設定が正しく反映されたか確認します。

# nmcli で確認
nmcli connection show <connection_name> | grep dns-search

# /etc/resolv.conf で確認
cat /etc/resolv.conf

ipv4.dns-search/etc/resolv.confsearch 行に XXX.co.jp が追加されていれば成功です。

最後に、実際にドメイン内のホスト名だけで名前解決できるか試してみましょう。

# XXX.co.jp ドメイン内のホスト server01 に ping を試す
ping -c 3 server01

まとめ

nmcli を使うことで、コマンドラインから永続的な DNS 検索ドメインの追加が可能です。

  • nmcli connection show <接続名> で現状確認。
  • sudo nmcli connection modify <接続名> +ipv4.dns-search XXX.co.jp で追加。(+ を忘れない)

Discussion

ログインするとコメントできます