Help us understand the problem. What is going on with this article?

NetworkManager Reference for network service Users

NetworkManager を嫌いにならないために

おじさん達はね、若い子が「マジ卍」なんて言っても何を言っているのかわからないの。

でも誰かが「マジ卍 = マジヤバイ!って意味です」とか「マジ卍 = チョベリバ or チョベリグ です!」なんて教えてくれたら「おぉ!そうか、やっと分かったぞ!」ってなっておじさん達も明日から「マジ卍!」って会社で言えるようになるんです。

ということで一緒にNetworkManagerのコマンドをおじさん達が知っているコマンドに置き換えてみましょう。

知ってるコマンド(作業)を置き換えてみる

古代魔術の翻訳早見表

古代呪文 なういコマンド 説明
service network start nmcli networking on ネットワークサービス起動
service network stop nmcli networking off ネットワークサービス停止
service network restart (なし) ネットワークサービス再起動
ifconfig add nmcli connection add IF追加
ifconfig del nmcli connection del IF削除
ifup nmcli connection up IF起動
ifdown nmcli connection down IF停止
/etc/sysconfig/networkの編集 nmcli general hostname ホスト名の設定
ifcfg-*の編集? nmcli device modify IFプロファイルの編集

最後の1つ以外は「ふんふん」って思って貰えればOK。時々、ifupip link set upの違いがわからん長老も居るけど、それはまた別の機会にでも。余裕があったら追記します。

IF接続定義の編集について

まず長老たちに知っておいて欲しいのは「NetworkManagerが稼働している環境においてifcfg-*の直接編集はやめろジジイ」ってこと。# service network restartを実行しない限りは何を書いても反映されなかった時代とは違って、編集した直後に環境に反映されてしまいます。
NetworkManagerを利用したIFプロファイル(/etc/sysconfig/network-scripts/ifcfg-*)の編集方法は以下の流れで行います。

0. IFを作成する

既に存在するIFの定義を変更するならスキップする手順。

実施前の状況
[root@SAKURA ~]# nmcli device
DEVICE  TYPE      STATE     CONNECTION
enp0s8  ethernet  接続済み  enp0s8
enp0s3  ethernet  接続済み  enp0s3
enp0s9  ethernet  切断済み  --
lo      loopback  管理無し  --

[root@SAKURA ~]# nmcli connection show
NAME    UUID                                  TYPE      DEVICE
enp0s3  eebfdba6-e883-4934-815e-96898e3509c4  ethernet  enp0s3
enp0s8  a0ff967d-e435-4a3c-90b6-0d2308bcd6fd  ethernet  enp0s8

IFは全部で3つ。しかし「enp0s9」に対する接続定義(CONNECTION)がありません。通常こんなこと意図的に作らないとあり得ないんだけどね。

まずはifconfig add...じゃなくてnmcli connection addでIFの接続情報を作成します。

[root@SAKURA ~]# nmcli connection add type ethernet ifname enp0s9 con-name enp0s9
接続 'enp0s9' (99fb714c-df4c-4130-b566-b889615af7db) が正常に追加されました。

con-nameは何でもいいんだけど(例えば「ローカルエリア接続」とか)、あとあとコマンドが面倒になるんでデフォルトと同じくifnameと同じにしておくことが無難。
作成したIFが認識されているか確認する。

[root@SAKURA ~]# nmcli device
DEVICE  TYPE      STATE                     CONNECTION
enp0s8  ethernet  接続済み                  enp0s8
enp0s3  ethernet  接続済み                  enp0s3
enp0s9  ethernet  接続中 (IP 設定を取得中)  enp0s9
lo      loopback  管理無し                  --

[root@SAKURA ~]# nmcli con show
NAME    UUID                                  TYPE      DEVICE
enp0s3  eebfdba6-e883-4934-815e-96898e3509c4  ethernet  enp0s3
enp0s8  a0ff967d-e435-4a3c-90b6-0d2308bcd6fd  ethernet  enp0s8
enp0s9  99fb714c-df4c-4130-b566-b889615af7db  ethernet  enp0s9

1. IF定義を編集する。

作成したIFに諸々設定(IPアドレスとか)を付与します。そのためには何が設定できるのか知る必要がありますね。これもnmcliで調べることができます。恐れ嘶け!これがIFに設定するパラメータリストだ!!

[root@SAKURA ~]# nmcli connection show enp0s9
connection.id:                          enp0s9
connection.uuid:                        22031419-a510-4583-8a14-c6c1d3cc1f9f
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              enp0s9
connection.autoconnect:                 はい
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.auth-retries:                -1
connection.timestamp:                   0
connection.read-only:                   いいえ
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     不明
connection.lldp:                        default
connection.mdns:                        -1 (default)
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          いいえ
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     自動
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --
ipv4.method:                            auto
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       ""
ipv4.dns-priority:                      0
ipv4.addresses:                         --
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.ignore-auto-routes:                いいえ
ipv4.ignore-auto-dns:                   いいえ
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                はい
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     いいえ
ipv4.may-fail:                          はい
ipv4.dad-timeout:                       -1 (default)
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       ""
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.ignore-auto-routes:                いいえ
ipv6.ignore-auto-dns:                   いいえ
ipv6.never-default:                     いいえ
ipv6.may-fail:                          はい
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.dhcp-duid:                         --
ipv6.dhcp-send-hostname:                はい
ipv6.dhcp-hostname:                     --
ipv6.token:                             --
proxy.method:                           none
proxy.browser-only:                     いいえ
proxy.pac-url:                          --
proxy.pac-script:                       --
GENERAL.NAME:                           enp0s9
GENERAL.UUID:                           22031419-a510-4583-8a14-c6c1d3cc1f9f
GENERAL.DEVICES:                        enp0s9
GENERAL.STATE:                          アクティベート中
GENERAL.DEFAULT:                        いいえ
GENERAL.DEFAULT6:                       いいえ
GENERAL.SPEC-OBJECT:                    --
GENERAL.VPN:                            いいえ
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/23
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/5
GENERAL.ZONE:                           --
GENERAL.MASTER-PATH:                    --

うっっっざぁあああああああ~

全部解説しても使わないものが殆どなので、まぁこれだけあればいいだろってものをピックアップ。

パラメータ 意味
connection.autoconnect 自動接続。いわゆる「ONBOOT」 yes
ipv4.method IPアドレス取得方法 auto:DHCP
manual:静的(手動)
ipv4.addresses IPv4アドレス 192.168.56.4/25

speed, duplex, autonegoはいまどきデフォルト(デバイス固有値)で問題無いはずなので触らなくていい。上記3つを設定するには

[root@SAKURA ~]# nmcli connection modify enp0s9 connection.autoconnect yes ipv4.method manual ipv4.addresses "192.168.56.4/25"

最後に状態を確認。

[root@SAKURA ~]# nmcli device
DEVICE  TYPE      STATE     CONNECTION
enp0s8  ethernet  接続済み  enp0s8
enp0s3  ethernet  接続済み  enp0s3
enp0s9  ethernet  接続済み  enp0s9
lo      loopback  管理無し  --

[root@SAKURA ~]# nmcli connection show
NAME    UUID                                  TYPE      DEVICE
enp0s3  eebfdba6-e883-4934-815e-96898e3509c4  ethernet  enp0s3
enp0s8  a0ff967d-e435-4a3c-90b6-0d2308bcd6fd  ethernet  enp0s8
enp0s9  22031419-a510-4583-8a14-c6c1d3cc1f9f  ethernet  enp0s9

[root@SAKURA ~]# nmcli device show enp0s9
GENERAL.DEVICE:                         enp0s9
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:3A:3D:9E
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (接続済み)
GENERAL.CONNECTION:                     enp0s9
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/34
WIRED-PROPERTIES.CARRIER:               オン
IP4.ADDRESS[1]:                         192.168.56.4/25
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.56.0/25, nh = 0.0.0.0, mt = 102
IP6.ADDRESS[1]:                         fe80::c95a:894d:9f21:f972/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 102
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

nmcliはhelpが充実しているので是非活用してほしい。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした