見出し画像

CentOS8に入門してみる(ネットワーク2)

前回は主にIPアドレス周りの知識を再整理する作業を行いました

今回から何回かかけてネットワークの設定を実際に弄りながら学習していきたいと思います


ネットワークインターフェース

ネットワークとの接点をネットワークインターフェースと言います

IPアドレスはホストに紐づているわけではなく、ネットワークインターフェース≒NIC(ネットワークインターフェースカード)に紐づいています

※AWSだとNICと同等の役割を担うものとしてENI(Elastic Network Interface)があります

基本的には1つのNICに1つのIPアドレスが対応となりますが、1NICに複数IPアドレスを紐付けたり、複数のNICを備えるルーターなどもあります

NICは物理的なハードウェアでカード型の装置として装着させ、これによりネットワークインターフェースをホストにアタッチさせることができるようになります

その結果ホストにIPアドレスを割り当てることができるようになります

ネットワークインターフェースは従来eth0やeth1といった名前が使われていましたが、現在はハードウェアに紐づいた形の名前が使われることが多いようです

en : イーサネット(優先LAN)

wl : 無線LAN

ww : 無線WAN

ネットワークインターフェースの一覧は/sys/class/netを参照することで確認可能です

[vagrant@centuser data1]$ ls /sys/class/net/
eth0  lo

ネットワークインターフェースの詳細はipコマンドを使用して確認します

[vagrant@centuser data1]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
   link/ether 08:00:27:62:08:41 brd ff:ff:ff:ff:ff:ff
   inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute eth0
      valid_lft 75064sec preferred_lft 75064sec


NetworkManager

NetworkManagerは動的にネットワークを管理する機能です(無線LANが使用可能な状態になれば自動的に無線LANに接続してくれたりする)

NetworkManagerは下記のように確認することができます(active(running)と出ていればNetworkManagerは動いています)

[vagrant@centuser data1]$ sudo systemctl status NetworkManager
● NetworkManager.service - Network Manager
  Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
  Active: active (running) since Thu 2020-08-27 11:51:12 UTC; 1 day 21h ago
    Docs: man:NetworkManager(8)
Main PID: 921 (NetworkManager)
   Tasks: 3 (limit: 11479)
  Memory: 7.0M
  CGroup: /system.slice/NetworkManager.service
          └─921 /usr/sbin/NetworkManager --no-daemon

Aug 27 11:51:15 centuser NetworkManager[921]: <info>  [1598529075.0376] dhcp4 (eth0): state changed unknown -> bound
Aug 27 11:51:15 centuser NetworkManager[921]: <info>  [1598529075.0385] device (eth0): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'managed')
Aug 27 11:51:15 centuser NetworkManager[921]: <info>  [1598529075.0544] device (eth0): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed')
Aug 27 11:51:15 centuser NetworkManager[921]: <info>  [1598529075.0545] device (eth0): state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed')
Aug 27 11:51:15 centuser NetworkManager[921]: <info>  [1598529075.0548] manager: NetworkManager state is now CONNECTED_LOCAL
Aug 27 11:51:15 centuser NetworkManager[921]: <info>  [1598529075.0553] manager: NetworkManager state is now CONNECTED_SITE
Aug 27 11:51:15 centuser NetworkManager[921]: <info>  [1598529075.0554] policy: set 'System eth0' (eth0) as default for IPv4 routing and DNS
Aug 27 11:51:15 centuser NetworkManager[921]: <info>  [1598529075.0616] device (eth0): Activation: successful, device activated.
Aug 27 11:51:15 centuser NetworkManager[921]: <info>  [1598529075.0619] manager: NetworkManager state is now CONNECTED_GLOBAL
Aug 27 11:51:15 centuser NetworkManager[921]: <info>  [1598529075.0622] manager: startup complete

CentOS6までは各種設定ファイルによってネットワークやネットワークインタフェースの設定を変更していましたが、それ以降のCentOSではNetworkManagerの管理コマンドで設定変更をするようになっています(後述するnmcliコマンドを参照)

設定ファイルによって設定変更したい時など、NetworkManagerをstopしたくなった場合は下記コマンドで行います

[vagrant@centuser data1]$ sudo systemctl stop NetworkManager

ストップしたかどうかステータスを確認します

[vagrant@centuser data1]$ sudo systemctl status NetworkManager
● NetworkManager.service - Network Manager
  Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
  Active: inactive (dead) since Sat 2020-08-29 09:02:15 UTC; 14s ago
    Docs: man:NetworkManager(8)
 Process: 921 ExecStart=/usr/sbin/NetworkManager --no-daemon (code=exited, status=0/SUCCESS)
Main PID: 921 (code=exited, status=0/SUCCESS)

Aug 27 11:51:15 centuser NetworkManager[921]: <info>  [1598529075.0619] manager: NetworkManager state is now CONNECTED_GLOBAL
Aug 27 11:51:15 centuser NetworkManager[921]: <info>  [1598529075.0622] manager: startup complete
Aug 29 09:02:15 centuser systemd[1]: Stopping Network Manager...
Aug 29 09:02:15 centuser NetworkManager[921]: <info>  [1598691735.2553] caught SIGTERM, shutting down normally.
Aug 29 09:02:15 centuser NetworkManager[921]: <info>  [1598691735.2614] dhcp4 (eth0): canceled DHCP transaction
Aug 29 09:02:15 centuser NetworkManager[921]: <info>  [1598691735.2614] dhcp4 (eth0): state changed bound -> done
Aug 29 09:02:15 centuser NetworkManager[921]: <info>  [1598691735.2615] device (eth0): DHCPv4: trying to acquire a new lease within 90 seconds
Aug 29 09:02:15 centuser NetworkManager[921]: <info>  [1598691735.2620] manager: NetworkManager state is now CONNECTED_SITE
Aug 29 09:02:15 centuser NetworkManager[921]: <info>  [1598691735.2650] exiting (success)
Aug 29 09:02:15 centuser systemd[1]: Stopped Network Manager.

inactive(dead)となっているのでNetworkManagerは動いていないようです

次回起動時に自動的にNetworkManagerが立ち上がらないようにするには下記のコマンドを実行します

[vagrant@centuser data1]$ sudo systemctl disable NetworkManager
Removed /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.

ここでexitしてvagrant haltして仮想マシンをシャットダウンして再起動後にNetworkManagerのステータス確認を行おうと思ったのですが、

vagrant upする際のssh接続ができなくなってしまう事象が発生した為、VirtualBoxのGUIから直接ログインを行いました

ステータスを確認しましたがinactive(dead)になっていることを確認できた為OKとします

なお、stop & disabledにしたNetworkManagerを元に戻すには下記コマンドを実行します

sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager


ネットワークデバイスの確認

ネットワークデバイスの確認にはlshwコマンドを使用します 

[vagrant@centuser ~]$ sudo lshw -class network
 *-network
      description: Ethernet interface
      product: 82540EM Gigabit Ethernet Controller
      vendor: Intel Corporation
      physical id: 3
      bus info: pci@0000:00:03.0
      logical name: eth0
      version: 02
      serial: 08:00:27:62:08:41
      size: 1Gbit/s
      capacity: 1Gbit/s
      width: 32 bits
      clock: 66MHz
      capabilities: pm pcix bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
      configuration: autonegotiation=on broadcast=yes driver=e1000 driverversion=7.3.21-k8-NAPI duplex=full ip=10.0.2.15 latency=64 link=yes mingnt=255 multicast=yes port=twisted pair speed=1Gbit/s
      resources: irq:19 memory:f0000000-f001ffff ioport:d010(size=8)

ネットワークデバイスの情報が出力されました

description: Ethernet interface

イーサネットの為ethtoolコマンドも使用できます

[vagrant@centuser ~]$ sudo ethtool eth0
Settings for eth0:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off (auto)
	Supports Wake-on: umbg
	Wake-on: d
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes

ip a show eth0でもネットワークデバイスの情報出力が可能な為、そちらを使用することもできます

[vagrant@centuser ~]$ ip a show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
   link/ether 08:00:27:62:08:41 brd ff:ff:ff:ff:ff:ff
   inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute eth0
      valid_lft 83137sec preferred_lft 83137sec


ホスト名を変更する 

ホスト名を変更についてまとめます

まずは現在のホスト名として

[vagrant@centuser ~]$ hostname
centuser

centuserが取得できました

変更方法として/etc/hostnameファイル内に記述されたhostnameを変更する方法があります

/etc/hostnameファイル中身をcentuserからhost01に書き換えて仮想マシンを再起動しログインし直しました

k@MacBook-Pro centos8 % vagrant ssh
Last login: Sat Aug 29 11:37:03 2020 from 10.0.2.2
[vagrant@host01 ~]$ hostname
host01

ちゃんとhostnameの変更ができたようです

また、/etc/hostnameの書き換えで行ったのと同じことをhostnamectlコマンドでも行えます

[vagrant@host01 ~]$ sudo hostnamectl set-hostname centuser
[vagrant@host01 ~]$ exit
logout
Connection to 127.0.0.1 closed.
k@MacBook-Pro centos8 % vagrant halt
==> default: Attempting graceful shutdown of VM...
k@MacBook-Pro centos8 % vagrant up
... 中略 ...
k@MacBook-Pro centos8 % vagrant ssh
Last login: Sat Aug 29 11:38:28 2020 from 10.0.2.2
[vagrant@centuser ~]$ hostname
centuser

host01に変更したホスト名をまたcentuserに戻しました

期待通りに変更できているようです


上記の方法は恒久的なホスト名の変更ですが、システムを再起動するまで有効となるような変更方法もあります

この場合は上で行ったような再起動も必要ありません

[vagrant@centuser ~]$ sudo hostname centos
[vagrant@centuser ~]$ hostname
centos


まとめ

ネットワークの学習は長丁場になりそうな予感がしています

仮想マシンでの確認が難しい部分が次から出てきそうです

次はnmcli(NetworkManager CLI)あたりから始めていこうと思います

覚えが悪いので一気に学習するのは難しいですが、時間がある時にコツコツ頑張っていきたいです!

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