CentOS7 以上では Network Manager を積極的に使う
CentOS7 以降では Network Manager を使うことが推奨されています。
なのでネットワーク周りの CLI コマンドは nmcli を使いましょう。
設定反映には基本、インタフェースの再起動 (nmcli con up [if]) のみで OK ですが、デバイス名の変更だけは OS の再起動が必要となるようです。
NetworkManager が認識しているインタフェースおよびステータスを表示
[root@localhost ~]# nmcli device デバイス タイプ 状態 接続 eth1 ethernet 接続済み eth1 eth2 ethernet 接続済み eth2 eth3 ethernet 切断済み -- lo loopback 管理無し -- [root@localhost ~]#
有効なものを緑で表示し、利用できないものを赤で表示します。
NetworkManager管理下のインタフェースを表示(有効に利用できるものを緑で表示)
[root@localhost ~]# nmcli connection show 名前 UUID タイプ デバイス eth1 99fbd3ed-f1d8-4c81-a2cf-9665fd6cd2f9 802-3-ethernet eth1 eth2 ebe5b183-c4b0-3d40-b1f6-fe4623a5085f 802-3-ethernet eth2 eth3 3508a332-4320-3fdf-bb7a-25539a2a6a14 802-3-ethernet -- [root@localhost ~]#
上記コマンドはよく "nmcli c s" と略されます。
インタフェースの自動接続設定
初期設定ではインタフェースが自動接続になっていないため、自動接続を有効にしましょう。
[root@localhost ~]# nmcli connection modify eth2 connection.autoconnect yes [root@localhost ~]# nmcli connection up eth2
上のコマンドはよく "nmcli c m" や "nmcli con mod" と略されます。同様に下のコマンドは "nmcli c u" や "nmcli con up" と略されます。
IPアドレスの設定
[root@localhost ~]# nmcli connection modify eth2 ipv4.method manual ipv4.addresses "10.1.1.2/24" [root@localhost ~]# nmcli connection up eth2
設定反映には NetworkManager の再起動をせずとも、2行目の "nmcli connection up" コマンドでOKです。(down も不要)
デフォルトゲートウェイの設定
[root@localhost ~]# nmcli connection modify eth2 ipv4.gateway "10.1.1.254" [root@localhost ~]# nmcli connection up eth2
同様にupコマンドで設定反映。
DNSサーバの設定
[root@localhost ~]# nmcli connection modify eth2 ipv4.dns "8.8.8.8" [root@localhost ~]# nmcli connection up eth2
同様に up コマンドで設定反映。
このコマンドは設定を上書きするため、2台目(セカンダリ等)を設定するには次のコマンドを実行します。
複数の DNS サーバ設定の追加・削除
追加するときは +ipv4
[root@localhost ~]# nmcli connection modify eth2 +ipv4.dns "8.8.4.4" [root@localhost ~]# nmcli connection up eth2
削除するときは -ipv4
[root@localhost ~]# nmcli connection modify eth2 -ipv4.dns "8.8.4.4" [root@localhost ~]# nmcli connection up eth2
スタティックルートの設定追加・削除
追加するときは +ipv4
[root@localhost ~]# nmcli connection modify eth2 +ipv4.routes "192.168.1.0/24 10.1.2.254" [root@localhost ~]# nmcli connection up eth2
削除するときは -ipv4
[root@localhost ~]# nmcli connection modify eth2 -ipv4.routes "192.168.1.0/24 10.1.2.254" [root@localhost ~]# nmcli connection up eth2
セカンダリIPアドレスの追加 (1つのNICに複数IP設定)
複数の IP を持たせたいときはセカンダリ IP アドレスを設定することができます。セカンダリIPの追加をするときは +ipv4 を使います。3 個以上でも登録できます。
[root@localhost ~]# nmcli connection modify eth2 +ipv4.addresses "10.1.1.3/24" [root@localhost ~]# nmcli connection up eth2
IPを削除するときは -ipv4
[root@localhost ~]# nmcli connection modify eth2 -ipv4.addresses "10.1.1.3/24" [root@localhost ~]# nmcli connection up eth2
プロファイル名(名前/NAME)を変える
[root@localhost ~]# nmcli connection show 名前 UUID タイプ デバイス eth1 99fbd3ed-f1d8-4c81-a2cf-9665fd6cd2f9 802-3-ethernet eth1 eth2 ebe5b183-c4b0-3d40-b1f6-fe4623a5085f 802-3-ethernet eth2 eth3 3508a332-4320-3fdf-bb7a-25539a2a6a14 802-3-ethernet -- [root@localhost ~]#
上記の状態で、eth2 を変更するには以下のコマンドを打ちます。
[root@localhost ~]# nmcli connection modify eth2 connection.id ens38
すると即時反映で以下のように変わります。
[root@localhost ~]# nmcli connection show 名前 UUID タイプ デバイス eth1 99fbd3ed-f1d8-4c81-a2cf-9665fd6cd2f9 802-3-ethernet eth1 ens38 ebe5b183-c4b0-3d40-b1f6-fe4623a5085f 802-3-ethernet eth2 有線接続1 3508a332-4320-3fdf-bb7a-25539a2a6a14 802-3-ethernet -- [root@localhost ~]#
"???? 1" 等と表示される場合は ssh で日本語環境でログインすればマルチバイトで表示されるはずです。私の場合は "有線接続 1" と表示されましたので
[root@localhost ~]# nmcli connection modify "有線接続 1" connection.id ens38
で修正できました。
デバイス名を変更する
デバイス名を変更するには以下のようにします。
[root@localhost ~]# nmcli connection modify eth2 connection.interface-name ens38 [root@localhost ~]# shutdown -r now
名前の変更とは違い、再起動が必要となります。再起動後は以下のように変わります。
[root@localhost ~]# nmcli connection show 名前 UUID タイプ デバイス eth1 99fbd3ed-f1d8-4c81-a2cf-9665fd6cd2f9 802-3-ethernet eth1 ens38 ebe5b183-c4b0-3d40-b1f6-fe4623a5085f 802-3-ethernet ens38 eth3 3508a332-4320-3fdf-bb7a-25539a2a6a14 802-3-ethernet eth3 [root@localhost ~]#
対話的に設定する場合
[root@localhost ~]# nmcli con edit id ens38 ===| nmcli インテラクティブ接続エディター |===既存の '802-3-ethernet' 接続を編集中: 'ens38'使用できるコマンドを表示するには 'help' または '?' を入力します。 プロパティ詳細を表示するには 'describe [.]' を入力します。次の設定を変更することができます: connection, 802-3-ethernet (ethernet), 802-1x, dcb, ipv4, ipv6, proxy nmcli> ? ------------------------------------------------------------------------------ ---[ メインメニュー ]--- goto [ | ] :: 設定またはプロパティーに移動する remove [.] | :: 設定を削除する、またはプロパティー値をリセットする set [. ] :: プロパティー値を設定する describe [.] :: プロパティーの説明を表示する print [all | [.]] :: 接続を出力する verify [all | fix] :: 接続を検証する save [persistent|temporary] :: 接続を保存する activate [] [/|] :: 接続をアクティベートする back :: ひとつ上のレベルに移動する (戻る) help/? [] :: このヘルプを表示する nmcli :: nmcli 設定 quit :: nmcli を終了する ------------------------------------------------------------------------------ nmcli> goto ? エラー: 無効な設定名; '?' は [connection, 802-3-ethernet (ethernet), 802-1x, dcb, ipv4, ipv6, proxy] にはありません nmcli> goto connection 変更できるのは次のプロパティになります: id, uuid, interface-name, type, permissions, autoconnect, autoconnect-priority, autoconnect-retries, timestamp, read-only, zone, master, slave-type, autoconnect-slaves, secondaries, gateway-ping-timeout, metered, lldp, stable-id nmcli connection> goto id nmcli connection.id> ? ------------------------------------------------------------------------------ ---[ プロパティメニュー]--- set [] :: 新しい値の設定 add [] :: プロパティに新規オプションを追加 change :: 現在の値を変更 remove [ |] :: 値の削除 describe :: プロパティの詳細表示 print [setting | connection] :: プロパティ値 (設定/接続) の表示 back :: 上のレベルに移動 help/? [] :: このヘルプまたはコマンドの詳細を表示 quit :: nmcli の終了 ------------------------------------------------------------------------------ nmcli connection.id> print id: ens38 nmcli connection.id> set eth1 nmcli connection.id> back nmcli connection> save 接続 'eth1' (ebe5b183-c4b0-3d40-b1f6-fe4623a5085f) が正常に更新されました。 nmcli connection> quit [root@localhost ~]#
コメント