UnixPower on Networking
  http://www.unix-power.net/

 
 Top - Linux - CentOS7 ネットワークの設定変更




CentOS7からはネットワーク周りの設定方法がかなり変わってきています。

CentOS6までは/etc/sysconfig/network-scripts配下のifcfg-eth*ファイルを直接編集することで設定を変更することが可能であり、CentOS7でも継続して同様な方法で変更可能なのですが、NetworkManagerに付属する「nmtui」と「nmcli」コマンドを使用した変更方法が奨励されています。

最もわかりやすいのはnmtuiで、以前のsystem-config-networkの代替となるコマンドです。これを実行するとGUI経由でネットワーク周りの変更を実施することが可能です。

# nmtui






上記で変更しただけでは有効にはなりませんので、以下のコマンドを実行することで変更が有効となります。

# systemctl restart NetworkManager



上記の設定変更をコマンドベースで実施することが可能です。それが「nmcli」コマンドです。

まず以下のコマンドでデバイス(ethernet)の一覧を以下のコマンドで取得可能です。

# nmcli device
DEVICE  TYPE      STATE        CONNECTION
eno1    ethernet  connected    eno1
eno2    ethernet  unavailable  --
lo      loopback  unmanaged    --

さらに特定のコネクションを指定し、特定インターフェイスのIPアドレスなどの概要を見ることも可能です。

# nmcli device show eno1
GENERAL.DEVICE:                         eno1
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:1A:A0:0C:A6:12
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     eno1
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/0
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         ip = 192.168.18.130/24, gw = 192.168.18.1
IP4.ROUTE[1]:                           dst = 192.168.17.0/24, nh = 192.168.18.1, mt = 0
IP4.DNS[1]:                             192.168.6.18
IP6.ADDRESS[1]:                         ip = fe80::21a:a0ff:fe0c:a612/64, gw = ::

以下はUUIDの情報を含めたEthernetの接続一覧を見るコマンドです。


# nmcli connection
NAME  UUID                                  TYPE            DEVICE
eno1  c26f3081-ec1e-47f1-ad19-69521ea9d7c1  802-3-ethernet  eno1
eno2  4e735009-f1dd-41d5-a8ba-903fb543ded8  802-3-ethernet  --

手動でインターフェイスをActive/Deactiveに設定するには以下のコマンドを実施します。

※インターフェイスをActive化
# nmcli connection up eno1

※インターフェイスをDeactive化 
# nmcli connection down eno1 

らにインターフェイス接続の詳細情報を得るにはshowオプションを利用します。nmcli deviceよりも詳細な情報を得ることが可能です。

# nmcli connection show eno1
connection.id:                          eno1
connection.uuid:                        c26f3081-ec1e-47f1-ad19-69521ea9d7c1
connection.interface-name:              --
connection.type:                        802-3-ethernet
connection.autoconnect:                 no
connection.timestamp:                   1405582090
connection.read-only:                   no
connection.permissions:
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.secondaries:
connection.gateway-ping-timeout:        0
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             00:1A:A0:0C:A6:12
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:
ipv4.method:                            manual
ipv4.dns:                               192.168.6.18
ipv4.dns-search:                        unix-power.net
ipv4.addresses:                         { ip = 192.168.18.130/24, gw = 192.168.18.1 }
ipv4.routes:
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv6.method:                            ignore
ipv6.dns:
ipv6.dns-search:
ipv6.addresses:
ipv6.routes:
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.dhcp-hostname:                     --
GENERAL.NAME:                           eno1
GENERAL.UUID:                           c26f3081-ec1e-47f1-ad19-69521ea9d7c1
GENERAL.DEVICES:                        eno1
GENERAL.STATE:                          activated
GENERAL.DEFAULT:                        yes
GENERAL.DEFAULT6:                       no
GENERAL.VPN:                            no
GENERAL.ZONE:                           --
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/1
GENERAL.SPEC-OBJECT:                    --
GENERAL.MASTER-PATH:                    --
IP4.ADDRESS[1]:                         ip = 192.168.18.130/24, gw = 192.168.18.1
IP4.DNS[1]:                             192.168.6.18
IP6.ADDRESS[1]:                         ip = fe80::21a:a0ff:fe0c:a612/64, gw = ::

上記のパラメータを修正したい場合の一例を下記に示します。


※IPアドレスを192.168.0.130, GWを192.168.0.1に変更
# nmcli connection modify eno1 ipv4.addresses "192.168.0.130/24 192.168.0.1"

※DNSサーバを192.168.0.1と2に変更
# nmcli connection modify eno1 ipv4.dns "192.168.0.1 192.168.0.2"

※StaticRouteの追加
# nmcli connection modify eno1 ipv4.routes "192.168.17.0/24 192.168.0.1"

上記の設定変更についても、以下のコマンドを実施後、有効となります。

# systemctl restart NetworkManager



CentOS6まではネットワーク周りのコマンドとしてifconfig / netstat / arp / routeなどのコマンドが使用されていましたが、CentOS7からはこれらは非奨励となりました。今後はiproute2というパッケージに付属しているコマンド群を使用することが奨励されています。但し、一部は上記のnmcliと重複しているものもありますので好みで使い分ければ良いと思われます。

以前までのコマンドの対比表が下記となります。

従来 今後 
ifconfig  ip addr , ip -s link 
route  ip route 
arp ip neigh
netstat ss 

昔ながらのifconfigでIPを確認する方法は今後は以下のコマンドに置き換えられます。


# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    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
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:1a:a0:0c:a6:12 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.130/24 brd 192.168.0.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::21a:a0ff:fe0c:a612/64 scope link
       valid_lft forever preferred_lft forever
3: eno2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:1a:a0:0c:a6:14 brd ff:ff:ff:ff:ff:ff

デバイスごとの処理パケット数の統計値を表すコマンドが下記となります。

# ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast
    624        6        0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    624        6        0       0       0       0
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
    link/ether 00:1a:a0:0c:a6:12 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    306310     1806     0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    222109     1283     0       0       0       0
3: eno2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
    link/ether 00:1a:a0:0c:a6:14 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    0          0        0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    0          0        0       0       0       0

netstat -nrに相当するルーティングテーブルを表示するコマンドが下記となります。

# ip route
default via 192.168.0.1 dev eno1  proto static  metric 1024
192.168.18.0/24 dev eno1  proto kernel  scope link  src 192.168.18.130

Macアドレスの調査などを行うarpコマンドの代替となるのが以下のコマンドです。

# ip neigh
192.168.18.1 dev eno1 lladdr 50:57:a8:13:a6:3f REACHABLE
192.168.18.128 dev eno1 lladdr 00:1a:a0:0c:a2:f0 STALE

自身のサーバでどのようなサービスが稼働しているか一覧表示するコマンドが下記です。左端には全てTCPと表示されておりますが、StateのところがUNCONNとなっているのがUDP、LISTENとなっているところがTCPとなります。

# ss -ltu
Netid  State      Recv-Q Send-Q        Local Address:Port            Peer Address:Port
tcp    UNCONN     0      0                         *:sunrpc                     *:*
tcp    UNCONN     0      0                         *:ntp                        *:*
tcp    UNCONN     0      0                 127.0.0.1:rpki-rtr                    *:*      
tcp    UNCONN     0      0                         *:924                        *:*
tcp    UNCONN     0      0                        :::sunrpc                    :::*
tcp    UNCONN     0      0                        :::ntp                       :::*
tcp    UNCONN     0      0                       ::1:rpki-rtr                   :::*      
tcp    UNCONN     0      0                        :::924                       :::*
tcp    LISTEN     0      128                       *:sunrpc                     *:*
tcp    LISTEN     0      32                        *:ftp                        *:*
tcp    LISTEN     0      128                       *:ssh                        *:*
tcp    LISTEN     0      128                      :::sunrpc                    :::*
tcp    LISTEN     0      128                      :::ssh                       :::*

上記の中には既に通信が確立したもの ( established ) のものは含まれておりません。確立したものを表示したい場合は-lオプションを外して使用します。

# ss -tu
Netid  State      Recv-Q Send-Q        Local Address:Port            Peer Address:Port
tcp    ESTAB      0      184           192.168.18.130:ssh            192.168.210.25:53260



 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.