見出し画像

CentOS8に入門してみる(nmcli)

今回もネットワークについての学習です

CentOS8と銘打っておきながら暫くは基礎的なLinuxなどの学習になりそうです


今回はNetworkManagerで実際にネットワークインターフェースに対してIPアドレスを設定したりすることをしていきたいと思います


nmcliコマンド

nmcliはNetworkManagerをCLIで操作することが可能なコマンドとなっています

参照するだけであれば管理者権限は必要ありません

まずはステータス確認を行うコマンドを見ていきます

[vagrant@centuser ~]$ nmcli general status
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN
connected  full          enabled  enabled  enabled  enabled
[vagrant@centuser ~]$ nmcli g status
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN
connected  full          enabled  enabled  enabled  enabled
[vagrant@centuser ~]$ nmcli g
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN
connected  full          enabled  enabled  enabled  enabled

上記三つは省略表記か否かであり、内容に差はありません

generalはステータス確認や操作一般を行うためのオプションです


次にデバイスの確認を行います

[vagrant@centuser ~]$ nmcli device
DEVICE  TYPE      STATE      CONNECTION
eth0    ethernet  connected  System eth0
lo      loopback  unmanaged  --
[vagrant@centuser ~]$ nmcli d
DEVICE  TYPE      STATE      CONNECTION
eth0    ethernet  connected  System eth0
lo      loopback  unmanaged  --
[vagrant@centuser ~]$ nmcli d show
GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:62:08:41
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     System eth0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         10.0.2.15/24
IP4.GATEWAY:                            10.0.2.2
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 10.0.2.2, mt = 100
IP4.ROUTE[2]:                           dst = 10.0.2.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             10.0.2.3
IP6.GATEWAY:                            --
GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          10 (unmanaged)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.GATEWAY:                            --

上記二つは省略表記か否かであり、内容に差はありません

三つ目はデバイスの詳細を表示しています


次に接続に関するオプションを使用していきます

[vagrant@centuser ~]$ nmcli connection
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  e9a82b12-e320-3933-aec5-e3677e928743  ethernet  eth0
[vagrant@centuser ~]$ nmcli c
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  e9a82b12-e320-3933-aec5-e3677e928743  ethernet  eth0

上記二つは省略表記か否かであり、内容に差はありません


nmcliでのネットワークの追加・設定方法

まずは追加方法としては、以下のコマンドで追加できます

sudo nmcli c add type ethernet con-name XXXXX ifname YYYYY ip4 192.168.56.101/24 gw4 192.168.56.254

コマンドを読んで何をしているのかほぼほぼわかりますが、「YYYYY」というネットワークデバイスがあったとして、そこに

・ethernetタイプの接続を追加

・接続名に「XXXXX」を設定

・IPアドレス「192.168.56.101/24」を設定

・デフォルトゲートウェイに「192.168.56.254」を設定

という上の項目内容が設定された接続を追加しています


次にデフォルトゲートウェイの設定を見ていきます

sudo nmcli c modify YYYYY ipv4.gateway 192.168.56.1

上記は「YYYYY」というネットワークインターフェースのデフォルトゲートウェイに「192.168.56.1」を設定するという意味のコマンドです

※デフォルトゲートウェイ

デフォルトゲートウェイは通常ルーターがその役割を担います

例えば192.168.0.1/24の範囲は192.168.0.0 ~ 192.168.0.255ですが、この範囲内=同一サブネットのIPアドレス同士であれば直接通信を行うことができます(厳密にいうとサブネットの最初のIPアドレス=192.168.0.0はネットワークアドレスなので利用不可。サブネットの最後のIPアドレス=192.168.0.255はブロードキャストアドレスなので端末の割り当ては不可だが受信は可)

直接通信なのでデフォルトゲートウェイのルーティングも発生しません

同一サブネットでは無い宛先IPへ通信を試みる場合は、デフォルトゲートウェイにルーティングしてもらう必要があります

同一サブネットでは無い宛先IPとの直接通信ができないということは、デフォルトゲートウェイも同一サブネットにいる必要があります


次はDNSアドレスの設定を見ていきます

sudo nmcli c modify YYYYY ipv4.dns 10.0.0.1

これは「YYYY」というネットワークインタフェースのデフォルトDNSサーバーのIPアドレスとして「10.0.0.1」を設定するという意味のコマンドです

※DNSサーバー

「www.google.com」などの文字列をIPアドレスに変換する名前解決をしてくれるサーバーのことです


最後に

nmcliはネットワークの状態確認や追加や変更など様々な機能があることがわかりました

同じような機能でnmtuiというものがあり、よりグラフィカルにネットワークの設定ができるようになるらしいです

次回はnmtuiを学習したいと思います



この記事が気に入ったらサポートをしてみませんか?