CentOS7になり、CentOS6 からかなりコマンドが変わっています。
「chkconfig」→「systemctl」 など、新しいコマンドに変わりました。
CentOS6 では、Network Manager は基本的に「停止」 をしてファイルベースでネットワークを設定する運用をしていた方が多いと思いますが、CentOS7 からは Network Manager を利用して設定する運用方法が推奨されています。
一応 CentOS7 でも Network Manager を「停止」 して今まで通りファイルベースで設定することも可能ですが、Network Manager を利用する設定する方法が推奨されているので、この機会に「Network Manager」 を利用してネットワークの設定をする方法をマスターしましょう。
ちなみに、なぜ CentOS7 になって「Network Manager」 を利用して設定する方法が推奨されるようになったのかというと、ネットワーク関連のコマンド「nmcli」 が何でもできてしまうというところもあるからです。
そこで今回は「nmcli」 コマンドを利用して複数NICを持つネットワークの設定をする手順について解説します。
ネットワーク構成図
今回はこのような構成で NIC の設定をします。
サーバーは「CentOS7」 で、NIC は2つ持っています。
OSをインストールした直後を想定して、ネットワーク周りを設定していきます。
ホスト名を設定する
OSをインストールした直後はホスト名を設定します。
インストール時に「ホスト名」、「ドメイン名」など一通り設定をした場合は、スキップしてください。
最初に root になります。
ホスト名を設定します。
[root@cnt07 ~]# nmcli general hostname test07
[root@cnt07 ~]# hostname
test07 ← test07に変わっています。
[root@cnt07 ~]#
※プロンプトの表示はログイン時に環境変数を持ってきているため、一度ログオフ・ログインをしないと反映されません。
「nmcli general hostname <ホスト名>」 コマンドは一時的な変更ではありません。
OSを再起動した後も「test07」です。
その理由は、「nmcli general hostname <ホスト名>」コマンドを実行すると「/etc/hostname」 ファイルも書き換えられるからです。
[root@cnt07 ~]# cat /etc/hostname
test07 ← /etc/hostnameファイルの中身も書き換えられています。
OSを再起動して確認してみると、ホスト名はそのままです。
[test@test07 ~]$ cat /etc/hostname
test07
※ちなみに、プロンプトも「cnt07」→「test07」へ変わっています。
新規 NIC に対して IP アドレスを設定する場合
VMware で NIC を追加したり、物理 NIC をサーバーに追加した場合です。
OS からは「デバイスとしては認識」 されているのですが、まだ何も OS での設定(IPアドレス等)がされていない状態 です。
この状態は「/etc/sysconfig/network-scripts」 ディレクトリに NIC ファイル(ifcfg-ensxxx や ifcfg-ethxx などのファイル)がまだ出来ていません。
[root@centos7 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@centos7 network-scripts]# ls
ifcfg-ens160 ifdown-ib ifdown-sit ifup-eth ifup-post network-functions
ifcfg-lo ifdown-ippp ifdown-tunnel ifup-ib ifup-ppp network-functions-ipv6
ifdown ifdown-ipv6 ifup ifup-ippp ifup-routes
ifdown-Team ifdown-isdn ifup-Team ifup-ipv6 ifup-sit
ifdown-TeamPort ifdown-post ifup-TeamPort ifup-isdn ifup-tunnel
ifdown-bnep ifdown-ppp ifup-aliases ifup-plip ifup-wireless
ifdown-eth ifdown-routes ifup-bnep ifup-plusb init.ipv6-global
[root@centos7 network-scripts]#
OS 上よりデバイスを追加する設定
「nmcli」 コマンドで IP アドレスの設定をします。
VMware 上で NIC を作成しても OS 上からはデバイスは認識できていますが、以下のように「切断済み」 状態になっています。
[root@centos7 network-scripts]# nmcli device
デバイス タイプ 状態 接続
ens160 ethernet 接続済み ens160
ens192 ethernet 切断済み —
lo loopback 管理無し —
[root@centos7 network-scripts]#
この状態は上記で確認したように「/etc/sysconfig/network-scripts」 ディレクトリに NIC ファイル(ifcfg-ensxxx や ifcfg-ethxx などのファイル)がまだ出来ていません。
以下のように「nmcli connection add」 コマンドで「ens192」 デバイスを追加します。
構文:nmcli connection add type <デバイスタイプ> ifname <ifname名> con-name <接続名>
[root@centos7 ~]# nmcli connection add type ethernet ifname ens192 con-name ens192
接続 ‘ens192’ (48315650-6871-4892-8975-34627ba60d88) が正常に追加されました。
[root@centos7 ~]#
「nmcli device」 コマンドで設定を確認します。
先ほどは「切断済み」 ですが、「接続中(IP 設定を取得中)」 にステータスが変わっています。
[root@centos7 network-scripts]# nmcli device
デバイス タイプ 状態 接続
ens160 ethernet 接続済み ens160
ens192 ethernet 接続中(IP 設定を取得中) ens192
lo loopback 管理無し —
[root@centos7 network-scripts]#
「/etc/sysconfig/network-scripts」 に移動し NIC ファイルを確認すると「ifcfg-ens192」 ファイルが作成されています。
[root@centos7 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@centos7 network-scripts]# ls
ifcfg-ens160 ifdown-eth ifdown-routes ifup-bnep ifup-plusb init.ipv6-global
ifcfg-ens192 ifdown-ib ifdown-sit ifup-eth ifup-post network-functions
ifcfg-lo ifdown-ippp ifdown-tunnel ifup-ib ifup-ppp network-functions-ipv6
ifdown ifdown-ipv6 ifup ifup-ippp ifup-routes
ifdown-Team ifdown-isdn ifup-Team ifup-ipv6 ifup-sit
ifdown-TeamPort ifdown-post ifup-TeamPort ifup-isdn ifup-tunnel
ifdown-bnep ifdown-ppp ifup-aliases ifup-plip ifup-wireless
[root@centos7 network-scripts]#
作成された「ifcfg-ens192」 ファイルの中身を確認します。
BOOTPROTO が「dhcp」 になっているので後ほど(下記で) nmcli コマンドで「BOOTPROTO=none」(スタティック) に修正をします。
[root@centos7 network-scripts]# cat ifcfg-ens192
TYPE=Ethernet
BOOTPROTO=dhcp ← BOOTPROTO が dhcp になっているので後ほど変更します。
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=48315650-6871-4892-8975-34627ba60d88
DEVICE=ens192
ONBOOT=yes
[root@centos7 network-scripts]#
IPアドレスなどの設定
「nmcli connection modify」 コマンドで IP アドレスを割り当てます。
[root@centos7 network-scripts]# nmcli connection modify ens192 ipv4.addresses 10.0.0.1/24
「ifcfg-ens192」 ファイルの中を確認します。
[root@centos7 network-scripts]# cat ifcfg-ens192
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=48315650-6871-4892-8975-34627ba60d88
DEVICE=ens192
ONBOOT=yes
IPADDR=10.0.0.1 ← IPアドレスが設定されています。
PREFIX=24
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
[root@centos7 network-scripts]#
【補足】nmcli コマンドで指定するデバイスは「nmcli device」コマンドの「接続」の部分
例えば、以下のようなデバイス名の場合は「eth0」 ではなく「System eth0」 になります。
[root@ip-10-0-2-20 network-scripts]# nmcli device
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected System eth0 ← ”System eth0″ がデバイス名になります。
lo loopback unmanaged —
[root@ip-10-0-2-20 network-scripts]# nmcli connection modify eth0 ipv4.address 10.0.2.20/24 ← eth0 を指定するとエラーになります。
Error: unknown connection ‘eth0’.
[root@ip-10-0-2-20 network-scripts]# nmcli connection modify “System eth0” ipv4.address 10.0.2.20/24 ← ”System eth0″ を指定します。
[root@ip-10-0-2-20 network-scripts]# cat ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=dhcp
DEVICE=eth0
HWADDR=06:D6:66:B2:70:1A
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
PROXY_METHOD=none
BROWSER_ONLY=no
IPADDR=10.0.2.20
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=”System eth0″
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
[root@ip-10-0-2-20 network-scripts]#
以下の記事で設定しました。
【AWS】AWS で Sophos インストール&設定手順(ELBとWEBサーバ間に配置する)【Part.2】
DHCP から手動 IP アドレス設定に変更する
デフォルトでは「DHCP」 になっているので、手動で IP アドレスを割り当てる設定にします。
「nmcli connection modify」 コマンドで「DHCP」 から「手動(manual)」 に設定を変更します。
※OS のバージョンは Redhat 7.5系です。
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.5 (Maipo)
以下のように「ipv4.address 172.31.2.20/24」 を一緒に付ける必要があります。
# nmcli connection modify “System eth0” ipv4.method manual ipv4.address 172.31.2.20/24
BOOTPROTO が「none」 になりました。
# cat ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=none ← none に変わっています。
DEVICE=eth0
HWADDR=0E:21:6D:55:72:50
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=”System eth0″
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
IPADDR=172.31.2.20
PREFIX=24
以下のように「ipv4.address 172.31.2.20/24」 を付けないと以下のようなエラーが出力されます。
# nmcli connection modify “System eth0” ipv4.method manual
Error: Failed to modify connection ‘System eth0’: ipv4.addresses: this property cannot be empty for ‘method=manual’
※しかし、7.0系など比較的7系の若いバージョンの場合は以下のように「ipv4.address xxx.xxx.xxx.xxx/xx」の引数がなくてもコマンド実行が可能です。
[root@centos7 network-scripts]# nmcli connection modify ens192 ipv4.method manual
「ifcfg-ens192」 ファイルの中を確認します。
[root@centos7 network-scripts]# cat ifcfg-ens192
TYPE=Ethernet
BOOTPROTO=none ← BOOTPROTO が「dhcp」から「none」(マニュアル)に変更されています。
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=48315650-6871-4892-8975-34627ba60d88
DEVICE=ens192
ONBOOT=yes
IPADDR=10.0.0.1
PREFIX=24
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
[root@centos7 network-scripts]#
各仮想マシン上で同じように設定をして DRBD ネットワークを構築します。
IPアドレスを設定する(すでにデバイスファイルが存在する場合)
次に IP アドレスを設定します。
# nmcli connection modify eth0 ipv4.addresses 192.168.51.61/24
# nmcli connection modify eth1 ipv4.addresses 192.168.151.61/24
ちなみに IP アドレスの変更に関しては、コマンド実行後にすぐには反映されません。
反映させるためには「systemctl restart network.service」 コマンドを実行しますが、設定がすべて完了してから最後に反映します。
IPアドレス を含む各設定を手動(manual)に変更する
OSをインストールした直後は「BOOTPROTO=DHCP」 になっています。
以下のように「method manual」 オプションのコマンドを実行すると「BOOTPROTO=none」 (手動設定、スタティック)になります。
# nmcli connection modify eth0 ipv4.method manual
# nmcli connection modify eth1 ipv4.method manual
※IPアドレスを設定する前にこのコマンドを実行すると「Error: Failed to modify connection ‘eth0’: ipv4.address: ‘method=manual’」というエラーが出ます。
NICの自動起動の設定
OSをインストールした直後は「ONBOOT=no」 の状態になっています。
この設定を「ONBOOT=yes」 に変更します。
# nmcli connection modify eth0 connection.autoconnect yes
# nmcli connection modify eth1 connection.autoconnect yes
デフォルトゲートウェイの設定
NICにデフォルトゲートウェイを設定します。
# nmcli connection modify eth1 ipv4.gateway 192.168.151.254
ネットワーク構成図はこうでした。
eth1に対してデフォルトゲートウェイ「192.168.151.254」を割り当てます。
スタティックルートの設定
以下のようなネットワーク構成の場合、スタティックルート を設定しないと「192.168.1.0/24」 や「192.168.10.0/24」 のネットワークへアクセスできません。
スタティックルートの設定も「nmcli」 コマンドで設定できます。
しかも「自動的」に /etc/sysconfig/network-scripts ディレクトリに「route-ethX」 ファイルが作成されます。
非常に便利です。
下記のコマンドで「192.168.0.0/24」 ネットワーク宛のパケットは、すべて「192.168.51.254」 に向けて送信します。
# nmcli connection modify eth0 ipv4.routes “192.168.0.0/16 192.168.51.254”
このコマンドを実行すると /etc/sysconfig/network-scripts/ ディレクトリに「route-eth0」ファイルが作成されます。
実際に作成された「route-eth0」ファイルの中身を見てみます。
[root@test07 network-scripts]# cat route-eth0
ADDRESS0=192.168.0.0
NETMASK0=255.255.0.0
GATEWAY0=192.168.51.254
DNSの設定
まだまだネットワークの設定は続きます。
すべて nmcli コマンドで設定することができます。
次は DNS の設定(ネームサーバーの設定)をします。
プライマリ DNS サーバー (192.168.1.11)、セカンダリ DNS サーバー (192.168.1.12)の登録をします。
# nmcli connection modify eth1 ipv4.dns “192.168.1.11 192.168.1.12”
気を付けるべき点は、2つ同時に設定するという部分です。
1つずつ設定しようとすると、「追加」ではなく「上書き」方式なので、最初に設定した値が上書きで消えてしまいます。
たとえば、3つの DNS サーバーを登録したい場合は、3つの IP アドレスを1コマンドで設定します。
あとは、最初の値(IP アドレス)が、プライマリ DNS サーバーになるということです。
[root@test07 network-scripts]# cat ifcfg-eth1
TYPE=”Ethernet”
BOOTPROTO=”none”
DEFROUTE=”yes”
IPV4_FAILURE_FATAL=”no”
IPV6INIT=”yes”
IPV6_AUTOCONF=”yes”
IPV6_DEFROUTE=”yes”
IPV6_FAILURE_FATAL=”no”
IPV6_ADDR_GEN_MODE=”stable-privacy”
NAME=”eth1″
UUID=”5da93180-192d-4961-9211-8521be319a4b”
DEVICE=”eth1″
ONBOOT=”yes”
DNS1=192.168.1.11 ← プライマリ DNS サーバー
DNS2=192.168.1.12 ← セカンダリ DNS サーバー
IPADDR=192.168.151.61
PREFIX=24
GATEWAY=192.168.151.254
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
この DNS サーバーの設定変更は「systemctl restart network.service」 コマンドを実行するまで反映されません。
「/etc/resovl.conf」 ファイルも元のままです。
[root@test07 network-scripts]# cat /etc/resolv.conf
# Generated by NetworkManager
search flets-east.jp iptvf.jp
nameserver 8.8.8.8 ← 元のままです。
nameserver 8.8.4.4 ← 元のままです。
ネットワークの設定変更の反映
設定が完了したら最後に設定を反映させます。
# systemctl restart network.service
[root@test07 network-scripts]# cat ifcfg-eth1
TYPE=”Ethernet”
BOOTPROTO=”none”
DEFROUTE=”yes”
IPV4_FAILURE_FATAL=”no”
IPV6INIT=”yes”
IPV6_AUTOCONF=”yes”
IPV6_DEFROUTE=”yes”
IPV6_FAILURE_FATAL=”no”
IPV6_ADDR_GEN_MODE=”stable-privacy”
NAME=”eth1″
UUID=”5da93180-192d-4961-9211-8521be319a4b”
DEVICE=”eth1″
ONBOOT=”yes”
DNS1=192.168.1.11 ← DNSサーバーが更新されています。
DNS2=192.168.1.12 ← DNSサーバーが更新されています。
IPADDR=192.168.1.10
PREFIX=24
GATEWAY=192.168.1.1
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
/etc/resolv.conf を確認します。
[root@test07 network-scripts]# cat /etc/resolv.conf
# Generated by NetworkManager
search flets-east.jp iptvf.jp
nameserver 192.168.1.11 ← 更新されています。
nameserver 192.168.1.12 ← 更新されています。
NetworkManagerを使う場合の注意点
手動で「/etc/resolv.conf」ファイルなどを編集しても、NetworkManagerが持っている情報でファイルが上書きされてしまうことがあります。
【例】
[root@test07 ~]# cat /etc/resolv.conf
# Generated by NetworkManager ← NetworkManager が設定をしていることを示しています。
ヒューマンエラー防止のため「NetworkManager」を「停止」して「net-tools」をインストールしても良い
目的は人数の多い組織でサーバーを運用管理することなら、無理に CentOS7 からやり方を変えて「NetworkManager」 を起動して「nmcli」 コマンドを使う必要はありません。
急に「CentOS6」 でちゃんとできていた運用を捨てて「CentOS7」 からよく分からない方法を使う必要はありません。
しかも突然 CentOS7 から、「RedHat社が推奨しているので nmcli コマンドを使いましょう」 と宣言しても、それぞれのメンバーの手順がバラバラなら遅かれ早かれ障害が発生するでしょう。
私は新しい技術に手を出して障害を発生させてサービスを止めるよりも、安定した手順で確実に運用管理をする方がはるかにいいと思います。
ネットワークインターフェイスの確認方法
nmcli コマンドでネットワークインターフェイスを設定したら、同じ「nmcli」 コマンドで設定を確認します。
基本的なネットワークインターフェイスの設定確認
まずは基本的な設定を確認するコマンドからです。
[root@test07 ~]# nmcli device
デバイス タイプ 状態 接続
ens160 ethernet 接続済み ens160
lo loopback 管理無し —
[root@test07 ~]# nmcli device show ens160 ← ネットワークインターフェイスを指定します。
GENERAL.デバイス: ens160
GENERAL.タイプ: ethernet
GENERAL.ハードウェアアドレス: 00:0C:29:AF:89:22
GENERAL.MTU: 1500
GENERAL.状態: 100 (接続済み)
GENERAL.接続: ens160
GENERAL.CON パス: /org/freedesktop/NetworkManager/ActiveConnection/0
WIRED-PROPERTIES.キャリア: オン
IP4.アドレス[1]: 192.168.1.10/24
IP4.ゲートウェイ: 192.168.1.1
IP4.DNS[1]: 8.8.8.8
IP4.DNS[2]: 192.168.1.1
IP6.ゲートウェイ:
IP6.DNS[1]: 2404:1a8:7f01:b::3
IP6.DNS[2]: 2404:1a8:7f01:a::3
更に詳しく接続状態を確認する場合は「nmcli device」ではなく「nmcli connection ~」コマンドを実行します。
[root@test07 ~]# nmcli connection show ens160
connection.id: ens160
connection.uuid: 5da93180-192d-4961-9211-8521be319a4b
connection.stable-id: —
connection.interface-name: ens160
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.timestamp: 1503409855
connection.read-only: no
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: -1 (default)
802-3-ethernet.port: —
802-3-ethernet.speed: 0
802-3-ethernet.duplex: —
802-3-ethernet.auto-negotiate: yes
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: 1 (default)
802-3-ethernet.wake-on-lan-password: —
ipv4.method: manual
ipv4.dns: 8.8.8.8,192.168.1.1
ipv4.dns-search:
ipv4.dns-options: (デフォルト)
ipv4.dns-priority: 0
ipv4.addresses: 192.168.1.10/24
ipv4.gateway: 192.168.1.1
ipv4.routes: { ip = 192.168.0.0/16, nh = 192.168.51.254 }
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)
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.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: yes
ipv6.ip6-privacy: 0 (無効)
ipv6.addr-gen-mode: stable-privacy
ipv6.dhcp-send-hostname: yes
ipv6.dhcp-hostname: —
ipv6.token: —
GENERAL.名前: ens160
GENERAL.UUID: 5da93180-192d-4961-9211-8521be319a4b
GENERAL.デバイス: ens160
GENERAL.状態: アクティベート済み
GENERAL.デフォルト: はい
GENERAL.デフォルト6: はい
GENERAL.VPN: いいえ
GENERAL.ゾーン: —
GENERAL.DBUS パス: /org/freedesktop/NetworkManager/ActiveConnection/0
GENERAL.CON パス: /org/freedesktop/NetworkManager/Settings/1
GENERAL.スペックオブジェクト: /
GENERAL.マスターパス: —
IP4.アドレス[1]: 192.168.1.10/24
IP4.ゲートウェイ: 192.168.1.1
IP4.DNS[1]: 8.8.8.8
IP4.DNS[2]: 192.168.1.1
IP6.ゲートウェイ:
IP6.DNS[1]: 2404:1a8:7f01:b::3
IP6.DNS[2]: 2404:1a8:7f01:a::3
DHCP6.オプション[1]: dhcp6_client_id = 0:4:69:63:b4:18:db:f0:e4:ee:f:50:6d:94:4d:19:85:88
DHCP6.オプション[2]: dhcp6_name_servers = 2404:1a8:7f01:b::3 2404:1a8:7f01:a::3
DHCP6.オプション[3]: requested_dhcp6_name_servers = 1
DHCP6.オプション[4]: requested_dhcp6_domain_search = 1
DHCP6.オプション[5]: requested_dhcp6_client_id = 1
DHCP6.オプション[6]: dhcp6_sntp_servers = 2404:1a8:1102::b 2404:1a8:1102::a
DHCP6.オプション[7]: dhcp6_domain_search = flets-east.jp. iptvf.jp.
DHCP6.オプション[8]: dhcp6_server_id = 0:3:0:1:0:19:e7:13:6c:1b
[root@test07 ~]#
ルートの設定を確認する(ルーティングテーブルを見る)
ルーティングテーブルは「route」 コマンドでも確認できます。
[root@test07 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 ens160
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens160
「ip route(ip r)」 コマンドでもルーティングの設定を確認できます。
[root@test07 ~]# ip route
default via 192.168.1.1 dev ens160 proto static metric 100
192.168.1.0/24 dev ens160 proto kernel scope link src 192.168.1.10 metric 100
ip a コマンドを実行したら「down」だったので「up」にするコマンド
サーバーと通信できないため、コンソールからログインしてネットワークインターフェイスの状況を調べたら「down」していた場合です。
「nmcli connection up <デバイス名>」 でインターフェイスを「up」 することができます。
[root@test07 ~]# nmcli connection up ens160
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/5)
[root@test07 ~]# 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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:0c:29:af:89:22 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global ens160
valid_lft forever preferred_lft forever
inet6 2408:210:8105:9500:268b:5f3a:6aac:c7b1/64 scope global noprefixroute dynamic
valid_lft 2591956sec preferred_lft 604756sec
inet6 fe80::80ec:1873:ccf:1eb5/64 scope link
valid_lft forever preferred_lft forever
[root@test07 ~]#
nmtui コマンド
CentOS7 からは「nmtui」 コマンドも使えるようになりました。
私はあまりお勧めしません。
確かに便利ですが、欠点としてはコマンドラインで再現できないというところです。
historyコマンドでも何をやったのかが出てきません。
手順書としては再現できますが、その場合は「IPアドレスに●●を入力する」→ 「OK」を選択するというような手順になります。
個人が自分専用の CentOS7 を管理する分にはいいかもしれませんが組織が大きくなると、誰が何をしたのかが見えにくくなります。
その結果、ヒューマンエラーが発生する確率が高くなります。
nmtuiコマンドの使い方
コンソールにログインし、「nmtui」コマンドを実行します。
ネットワークを編集する場合は「Edit a connection」 を選択します。
編集したいインターフェイスを選択します。
※複数のネットワークインターフェイスを持っている場合は複数表示されます。
下図のような感じでネットワークの設定をします。
まとめ
nmcli コマンド 1つでネットワーク関連の設定はすべて可能です。
以前まで、ネットワークの設定はファイルを編集する方がいいと思っていましたが、CentOS7になり「nmcli」 コマンドですべての設定が可能ということを知り、「nmcli」 コマンドで設定する方が運用的にいいと思うようになりました。
コメント
コメント一覧 (1件)
AWSに構築したCentOS7のDNS設定で、Error: unknown connectionが発生してしまい煮詰まりそうな所で記事を拝見させて頂きました。
nmcli deviceで表示されるCONNECTIONの値を設定すると言う事がよくわかりました。
ありがとうございました。