ifup
/ifdown
コマンドを使って実施していた。ただ、RHEL 7 (CentOS 7)以降はnmcli
(nmtui
)コマンドを使ったNetworkManagerによる操作が推奨されている。RHEL 8 (CentOS 8)も登場したということで、そろそろ真面目に
nmcli
で反映させるようにしようとコマンドを確認していたところ、nmcli
を使ってもifup
やifdown
を使っても、表示される内容が同一であることに気が付いた。以下、ens192のインターフェースをdown/upさせ、設定反映を行うコマンドとなる。
nmcli
コマンドの場合
# nmcli c down ens192 && nmcli c up ens192
接続 'ens192' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/4)
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/5)
ifup
/ifdown
コマンドの場合
# ifdown ens192 && ifup ens192
接続 'ens192' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/5)
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/6)
気になったので、コマンドの中身を見てみた。ifupとifdownの中身
RHEL 8 (CentOS 8)の場合
which
コマンドを使ってコマンドのパスを確認する。# which ifup
/usr/sbin/ifup
# which ifdown
/usr/sbin/ifdown
結論から言うと、ifup
やifdown
の中身は、nmcli
だった。RHEL 8 (CentOS 8)の場合は、どちらを使っても同じ効果が得られるので、特に気にはしなくてよさそうだ。#!/bin/sh
nmcli connection load "/etc/sysconfig/network-scripts/ifcfg-$1" &&
exec nmcli connection up filename "/etc/sysconfig/network-scripts/ifcfg-$1"
# cat /usr/sbin/ifdown
#!/bin/sh
nmcli connection load "/etc/sysconfig/network-scripts/ifcfg-$1" &&
exec nmcli connection down filename "/etc/sysconfig/network-scripts/ifcfg-$1"
RHEL 7 (CentOS 7)の場合
同様に、which
コマンドを使ってコマンドのパスを確認する。パスはRHEL 8 (CentOS 8)と同じとなる。[root@t3024ce73 ~]# which ifup
/usr/sbin/ifup
[root@t3024ce73 ~]# which ifdown
/usr/sbin/ifdown
こちらは、明らかにnmcli
と内容が違う。2009年のスクリプトとなっているようで、中身は/etc/sysconfig/network-scripts
の設定ファイルを読み込むような内容に見える。NetworkManagerを使っている場合は、使わないほうが安全そうだ。[root@t3024ce73 ~]# cat /usr/sbin/ifup
#!/bin/bash
# Network Interface Configuration System
# Copyright (c) 1996-2009 Red Hat, Inc. all rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2,
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
unset WINDOW # defined by screen, conflicts with our usage
. /etc/init.d/functions
cd /etc/sysconfig/network-scripts
. ./network-functions
[ -f ../network ] && . ../network
~(以下略)~
RHEL 8とRHEL 7のマニュアル上の記載
マニュアルの記載も確認してみた。まず、RHEL 8におけるネットワーク設定推奨の記載は以下となり、そもそもネットワークスクリプトによる設定は非推奨と明確に記載されている。
第9章 ネットワーク
Red Hat Enterprise Linux 8 では、ネットワークスクリプトが非推奨となっており、デフォルトでは提供されなくなりました。基本インストールでは、nmcli ツールを介して NetworkManager を呼び出す ifup スクリプトおよび ifdown スクリプトの新しいバージョンが提供されます。Red Hat Enterprise Linux 8 で ifup スクリプトおよび ifdown スクリプトを実行する場合は、NetworkManager が起動している必要があります。一方、RHEL 7におけるネットワーク設定推奨の記載は以下となり、NetworkManagerがデフォルトで使用されるが、ネットワークスクリプトもサポートすると記載がある。
Red Hat Enterprise Linux におけるネットワークの設定と管理
Red Hat Enterprise Linux 7 では、NetworkManager がデフォルトのネットワークサービスを提供します。これは動的なネットワーク制御および設定デーモンで、ネットワークデバイスと接続が利用可能な間は、これらをアクティブな状態に保ちます。従来の ifcfg タイプの設定ファイルも、サポートが継続されます。詳細は、「ネットワークスクリプトによる NetworkManager の使用」を参照してください。
まとめ
以上の結果をまとめると以下となる。OS | ifup /ifdown の中身 |
OS推奨 |
---|---|---|
RHEL 8 (CentOS 8) | nmcli を使っている |
nmcli が必須 |
RHEL 7 (CentOS 7) | nmcli を使っていない |
nmcli が推奨 |
ifup
/ ifdown
は互換性維持のためにあるようなものと理解し、極力nmcliを使ってインターフェースの操作や設定は実施すべきだろう。
0 件のコメント:
コメントを投稿