4
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RHEL7とRHEL6のネットワーク設定に違い

Last updated at Posted at 2017-11-17

RHEL7とRHEL6のネットワーク設定に違い

面倒なことにRHEL7からは、ネットワーク周りの設定方法がRHEL6と比較するとかなり変わってきている。

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

「nmtui」と「nmcli」コマンドとなぜ2つ用意されているのか?

  • 「nmtui」は、メニュー方式で簡易で
  • 「nmcli」は、コマンド形式で
    ネットワーク設定が可能。
  1. 「nmtui」
    「nmtui」は、以前のsystem-config-networkの代替となるコマンドだ。

「nmtui」を実行するとメニュー形式でネットワーク周りの変更を実施することが可能だ。

設定を有効にするためには、NetworkManagerを再起動することで変更が有効となる。

# systemctl restart NetworkManager
  1. 「nmcli」
    設定変更をコマンドベースで実施することが可能。
    まず、以下のコマンドでデバイス(ethernet)の
    一覧を以下のコマンドで取得。
# nmcli device
デバイス    タイプ    状態      接続
virbr0      bridge    接続済み  virbr0
ensxx       ethernet  接続済み  eth0
lo          loopback  管理無し  --
virbr0-nic  tun       管理無し  --
  • 特定のデバイスの状態を確認するには。
# nmcli device show ensxx

GENERAL.デバイス:                       ensxx
GENERAL.タイプ:                         ethernet
GENERAL.ハードウェアアドレス:           xx:xx:xx:xx:xx:xx
GENERAL.MTU:                            1500
GENERAL.状態:                           100 (接続済み)
GENERAL.接続:                           eth0
GENERAL.CON パス:                       /org/freedesktop/NetworkManager/ActiveConnection/3
WIRED-PROPERTIES.キャリア:              オン
IP4.アドレス[1]:                        192.168.10.11/24
IP4.ゲートウェイ:                       192.168.10.1
IP4.DNS[1]:                             192.168.10.1
IP4.ドメイン[1]:                        localdomain

nmcli deviceよりも詳細なインターフェイス接続の詳細情報を得るにはshowオプション。

# nmcli connection show eth0
connection.id:                          eth0
connection.uuid:                      
connection.interface-name:              ensxx
connection.type:                        802-3-ethernet
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.read-only:                   no
connection.permissions:
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:
connection.gateway-ping-timeout:        0
connection.metered:                     不明
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mtu:                     自動
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.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)
GENERAL.名前:                           eth0
GENERAL.デバイス:                       ensxx
GENERAL.状態:                           アクティベート済み
GENERAL.デフォルト:                     はい
IP4.アドレス[1]:                        192.168.10.11/24
IP4.ゲートウェイ:                       192.168.10.1
IP4.DNS[1]:                             192.168.10.1
IP4.ドメイン[1]:                        localdomain

手動でインターフェイスをActive/Deactiveに設定するには。

  • インターフェイスをActive化
# nmcli connection up ensxx
  • インターフェイスをDeactive化
# nmcli connection down ensxx

ただし、接続が切断されるとインターフェイスは 「手動」 モードになるので、NetworkManager再起動時にI/Fがアクティブ化するように以下コマンド。

# nmcli dev disconnect iface ensxx

ネットワークパラメータを修正したい場合の一例を下記に示します。

  • IPアドレスを192.168.10.11, GWを192.168.10.2に変更
#nmcli connection modify ensxx ipv4.addresses "192.168.10.11/24 192.168.10.2"

※NetworkManager 1.0.0以降では以下のように変更されています。

nmcli connection modify enpxxx ipv4.method manual ipv4.addresses 192.168.10.11/24 ipv4.gateway 192.168.10.2
  • DNSサーバを192.168.10.1と2に変更
#nmcli connection modify ensxx ipv4.dns "192.168.10.1 192.168.10.2"
  • StaticRouteの追加
#nmcli connection modify ensxx ipv4.routes "192.168.20.0/24 192.168.10.1"
  • 設定有効化
#systemctl restart NetworkManager

RHEL6までは、ネットワーク周りのコマンドとして[ifconfig / netstat / arp / route]などの
コマンドが使用されていましたが、RHEL7からはこれらは非奨励となる。

今後はiproute2というパッケージに付属しているコマンド群を使用することが奨励。

以前までのコマンドの対比表

RHEL6 RHEL7
ifconfig ip addr , ip -s link
route ip route
arp ip eigh
netstat ss
  • ifconfigでIPを確認する方法は、以下のコマンドとなる。

※実行している内容は[ip addr show]ですがコマンドを省略することが出来る。

#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.11/24 brd 192.168.10.255 scope global dynamic ensxx
       valid_lft 1201sec preferred_lft 1201sec

  • デバイスごとの処理パケット数の統計値を表すコマンド。
    ※実行している内容は[ip -s link]です。
#ip -s l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    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
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    5013     201     0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    6933     322      0       0       0       0
  • netstat -nrに相当するルーティングテーブルを表示するコマンド。
    ※実行している内容は[ip route]です。
# ip r
default via 192.168.10.2 dev ensxx  proto static  metric 100
192.168.10.0/24 dev ensxx  proto kernel  scope link  src 192.168.10.11  metric 100

  • arpコマンドの代替となるのが
    以下のコマンド。
    ※実行している内容は[ip neigh]です。
# ip n
192.168.10.2 dev ensxx lladdr 00:00:00:00:00:00 STALE
192.168.109.1 dev ensxx lladdr 00:00:00:00:00:00 DELAY

  • サービスが稼働しているか一覧表示するコマンドが下記です。
    コマンドのバグで左端には全てTCPと表示されておりますが、StateのところがUNCONNとなっているのがUDP、LISTENとなっているところがTCPです。
# ss -ltu
Netid  State      Recv-Q Send-Q Local Address:Port    Peer Address:Port
udp    UNCONN     0      0       *:55810                 *:*
udp    UNCONN     0      0       *:33284                 *:*
udp    UNCONN     0      0       *:passwd_server         *:*
udp    UNCONN     0      0       *:mdns                  *:*
udp    UNCONN     0      0      192.168.122.1:domain     *:*
udp    UNCONN     0      0       *:bootpc                *:*
udp    UNCONN     0      0       *:sunrpc                *:*
udp    UNCONN     0      0      :::passwd_server        :::*
udp    UNCONN     0      0      :::sunrpc               :::*
udp    UNCONN     0      0      :::39085                :::*
tcp    LISTEN     0      128     *:sunrpc                *:*
tcp    LISTEN     0      5      192.168.122.1:domain     *:*
tcp    LISTEN     0      128     *:ssh                   *:*
tcp    LISTEN     0      128    127.0.0.1:ipp            *:*
tcp    LISTEN     0      100    127.0.0.1:smtp           *:*
tcp    LISTEN     0      128    :::sunrpc               :::*
tcp    LISTEN     0      128    :::ssh                  :::*
tcp    LISTEN     0      128       ::1:ipp              :::*
tcp    LISTEN     0      100       ::1:smtp             :::*
  • 既に通信が確立したもの ( established )
    だけを表示したい場合は以下コマンド。
# ss -tu
Netid  State      Recv-Q Send-Q Local Address:Port         Peer Address:Port
tcp    ESTAB      0      96     192.168.10.11:ssh      192.168.10.12:49782

  • 「nmcli」コマンドでのaliasでIPアドレスの追加や削除方法について

  • IPエイリアスを追加
    項目を追加する場合、項目名に + を付ける。

# nmcli c mod ensxx +ipv4.addresses "192.168.10.20/24 192.168.10.1"
  • IPを削除
    設定を外す場合は、 項目名に - を付ける。
# nmcli c mod ensxx -ipv4.addresses "192.168.10.20/24 192.168.10.1"
  • スタティックルートを追加
# nmcli c mod ensxx +ipv4.route "172.22.40.0/24 192.168.10.1"
  • host名変更
# nmcli general hostname <host名>
  • IPv6無効化
# echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
# echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

  • speed,Duplex変更(一時的)
# ethtool -s ensxx speed 1000 duplex full autoneg off
  • speed,Duplex変更(永続的)
# nmcli c mod ensxx 802-3-ethernet.auto-negotiate no
# nmcli c mod ensxx 802-3-ethernet.speed 1000
# nmcli c mod ensxx 802-3-ethernet.duplex full

  • Bonding Mode確認
# /proc/net/bonding/bond0 | grep “Bonding Mode”
4
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?