CentOS7:ネットワーク管理者は無効な検索ドメインを使用します。

CentOS7:ネットワーク管理者は無効な検索ドメインを使用します。

Red Hat 7のNetwork Managerでホスト名を変更した後、古い/間違った検索ドメインが使用される問題を発見しました。 /etc/resolv.conf には以下が表示されます。

# Generated by NetworkManager
search **ec2.internal** d.sample.com
nameserver 172.31.0.2

これを入力すると、hostname希望の結果が表示されます。

[root@testing01 ~]# hostname
testing01.d.sample.com

しかし、変える検索ドメインは追加検索ドメインに新しいドメイン名を追加します。 ec2.internalを完全に削除し、このドメイン名を完全に削除したいと思います。ファイルを直接編集すると、/etc/resolv.confネットワーク管理者によって破損します。/etc/resolv.conf必須でない限り、Network ManagerまたはNM管理を無効にしたくありません。

それでは、1)NMが私の検索ドメインを復元し続けるのはなぜですか?2)nmcliまたはコマンドラインツールのみを使用してこの問題を解決するにはどうすればよいですか?

答え1

数時間の悩みの終わりに、ついに問題を解決しました。これはDHCPを介して設定されていることがわかりました。

nmcli -f ip4 device show eth0
IP4.ADDRESS[1]:                         172.31.53.162/20
IP4.GATEWAY:                            172.31.48.1
IP4.DNS[1]:                             172.31.0.2
IP4.DOMAIN[1]:                          ec2.internal

ネットワークインターフェースのipv4.dns-search値をオーバーライドしてIP4.DOMAIN [1]をオーバーライドすることができました。

nmcli connection modify uuid \`nmcli connection show --active | grep 802-3-ethernet | awk '{print $(NF-2)}' | tail -n 1` ipv4.dns-search d.sample.com

またはより簡単に、

nmcli connection modify System\ eth0 ipv4.dns-search "d.sample.com"

その後、NetworkManagerを再起動する必要があります。

systemctl restart NetworkManager.service

また、Amazonインスタンスを使用しているためcloud.cfg ファイルを更新する必要があります。

答え2

/etc/resolv.confファイルは、ネットワークが変更または更新されると常に上書きされます。フォルダ内のファイル/etc/resolvconf/resolv.conf.d/、つまりheadファイルを編集して、記録される内容を制御できます。

/etc/resolvconf/resolv.conf.d/headファイルに入れてください。

nameserver 172.31.0.2
search testing01.d.sample.com

/etc/resolv.confこれで更新されるたびにこれがタイトルになります。

修正する

Redhat ベースのシステムでは、次の手順を使用します。

のネットワークスクリプトを編集します/etc/sysconfig/network-scripts。検出されたネットワークデバイスのエントリが表示されます(たとえば、ifcfg-eth0はネットワークアダプタを表しますeth0)。

このファイルを編集( /etc/sysconfig/network-scripts/ifcfg-eth0):

次の行を追加してください。

DOMAIN=sample.com

また、次のコマンドを実行します。

$ sudo hostnamectl set-hostname --static "testing01.d.sample.com"

変更を適用するには、システムを再起動する必要がある可能性が高くなります。

答え3

"nmcli 接続の変更..." この接続ファイルを変更してもアクティブな接続は変更しない場合:

nmcli cは/etc/NetworkManager/system-connections/the-connection-name[-possible-uuid-too]をロードします。

man nmcli:connect --load filename ...ディスクから1つ以上の接続ファイルをロード/再ロードします。接続ファイルを手動で編集した後、このコマンドを使用すると、NetworkManagerは最新の状態を認識できます。

答え4

追加したいです。最初の誤解はホスト名とは何かです。コマンドラインにこれ​​を入力すると、hostnameサーバー(ホスト)の名前のみが出力されます。 FQDNは、ホスト名とドメインを関連付けたものです。

コマンドがhostname出力されると、host.domain.comホスト名が正しく指定されていません。これが間違った理由は、ホスト名に検索順序を追加するためです。同じドメインで実行する必要があるすべてのソリューションは、次のように終了します。hostname.doimain.com.domain.com

  • ファイルの種類は/etc/hosts次のとおりです。IP、ホスト名、ホスト名+ホストが属するドメイン
    xx.xx.xx.xx host host.domain.com
    
  • ファイル/etc/resolve.confには以下を含める必要があります。
    search domain.com
    
  • /etc/hostnameファイルには以下を含める必要があります。
    host
    

ファイルのエントリは、/etc/hostsIPのホスト名とFQDN解決を許可します。 DNS 解決はホストを確認し、検索コマンドを追加して、そのホストがドメインに存在することを確認します。

関連情報