web-dev-qa-db-ja.com

ip-toolsと古いifconfig

Network-scriptsでdhcpをstaticに変更した後、servicesystemctl restart NetworkManagerを再起動したとき。静的IP設定は更新されると想定されていますが、更新されていません。だから私はしよう

ip link set dev enp0s3 down、次にup

iPを更新しませんでした

次に、ifdown enp0s3、次にifup enp0s3で試してみます

機能した

なぜそれがifupで機能したのですか?

4
ppc

前文:ipおよびifconfigは、制御および監視ネットワーク用のユーティリティです。これらは通常、永続的な構成ファイルの読み取り/書き込みには使用されません。これが、ip linkが機能しなかった理由です。永続的な構成管理は、NetworkManagerなどの他の手段で実行する必要があります。

(言うまでもないことですが、補足として、ipを提供するiproute2採用されている/採用されているnet-toolsの代わりとして多くのディストリビューションで採用されています。 ifconfigを提供します。互換性の理由から、両方ともディストリビューションのデフォルトパッケージとして出荷されることがよくあります)。

ifupが機能し、systemctl restart NetworkManagerが機能しなかった理由:

CentOS(CentOS 7をチェックしました)では、ifupifdowninitscriptsによって提供されます。それらは、同じパッケージによって提供される/etc/sysconfig/network-scripts/のスクリプトを操作します。したがって、ifupで行った変更を適用できることに驚きはありません。

NetworkManager-CentOSがアップストリームから継承したデフォルトのネットワークサービスプロバイダー-Red HatおよびFedoraでは、 ifcfg-rhプラグイン を使用して/etc/sysconfig/network-scripts/ifcfg-*からネットワーク構成を読み書きするように構成されています。ただし、これらのファイルは監視されません

man nm-settings-ifcfg-rhはそれを警告します

プロファイルを管理するための推奨される方法ではない場合でも、ユーザーはifcfg-rh接続ファイルを手動で作成または変更できます。ただし、そうすることを選択した場合は、変更についてNetworkManagerに通知する必要があります(nm-settings(5)のmonitor-connection-fileおよびnmcli con(re)loadを参照)。

したがって、systemctl reload NetworkManagerは、CentOS上のファイルからネットワーク接続の構成をリロードすることは想定されていません。これを行うには、nmcli connection reloadを呼び出すか、man NetworkManager.confに記載されているようにNetworkManager構成を変更します。

モニター接続ファイル
設定プラグインがファイルモニターをセットアップし、NetworkManagerの実行中に接続ファイルに加えられた変更をすぐに取得する必要があるかどうか。これはデフォルトで無効になっています。 NetworkManagerは、起動時、およびReloadConnectionsD-Bus呼び出しを介して明示的に要求された場合にのみ接続ファイルを読み取ります。 [...]

4
fra-san

ipは、ifconfigと同様に、ハードウェアの状態を直接変更します。 ifconfigipの唯一の違いは、ipの構文が異なり、一部の機能をサポートしていることですifconfigにはありません。

一方、ifupifdownは、多数のスクリプトを実行し、/etc/network/interfacesファイルとその他の構成ファイルを読み取って、それに基づいて動作します。これには、おそらく/etc/network/interfacesに入力する静的IP設定の追加が含まれます。

原則として、Network Managerもそれらを取得する必要がありますが、私はNetwork Managerを実行していません(ほとんどの場合、邪魔になります)。そのため、なぜ機能しなかったのかわかりません。

したがって、ネットワーク構成ファイルを考慮に入れる場合は、ifup/ifdownとNetworkManagerを使用してください。インターフェース設定を直接変更したい場合は、ipifconfigを使用してください。

2
dirkt