web-dev-qa-db-ja.com

CentOS7:Network Managerが間違った検索ドメインを使用している

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ファイルを直接編集すると、Network Managerによって破壊されます。 Network Managerを無効にしたくないので、どうしても必要な場合を除き、NMによる/etc/resolv.confの管理を無効にしたくありません。

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

4
James Shewey

数時間ぶらついた後、私はこれを解決することができました。結局、これは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ファイルを更新する必要がありました。

5
James Shewey

/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にあるネットワークスクリプトを編集します。検出されたネットワークデバイスのエントリが表示されます(つまり、ネットワークアダプターeth0のifcfg-eth0)。

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

この行を追加:

DOMAIN=sample.com

次のコマンドも実行します。

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

ほとんどの場合、変更を有効にするにはシステムを再起動する必要があります。

6
L. D. James

「nmcli connection modify ...」で接続ファイルが変更されているが、アクティブな接続は変更されていない場合:

nmcli c load/etc/NetworkManager/system-connections/the-connection-name [-possibly-uuid-too]

man nmcli:connection-- load filename ... 1つまたは複数の接続ファイルをディスクからロード/リロードします。接続ファイルを手動で編集した後にこれを使用して、NetworkManagerが最新の状態を認識していることを確認します。

1
BobDodds