6 系と変わった点、変わってない点を整理するために調査した。主に参照した情報ソースは「RHEL7ドキュメント」と「標準テキスト CentOS7」の2つ。
firewalld については別記事 RHEL7 系の Firewall 設定 にまとめた。
[amazon template=wishlist&asin=4774184268]
/etc/init.d/network
)によりネットワーク設定が行われていた
/etc/sysconfig/network-scripts
や /etc/sysconfig/static-routes
などを読んでいたNetworkManager
を使ってネットワーク設定することが推奨されているnmcli
nmtui
NetworkManger
は systemd
によって管理されていて、デフォルトでは起動時に立ち上がるsystemctl
コマンドを利用して以下のように行うsystemctl start NetworkManager systemctl stop NetworkManager systemctl restart NetworkManager systemctl status NetworkManager
# systemctl status NetworkManager ● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2017-12-26 05:04:04 JST; 1 day 22h ago Docs: man:NetworkManager(8) Main PID: 746 (NetworkManager) CGroup: /system.slice/NetworkManager.service └─746 /usr/sbin/NetworkManager --no-daemon
ネットワーク設定ファイルの位置はかわらずだが、ファイルを直接編集せず nmcli, nmtui などを利用することが推奨されている。サーバー構築時に主に設定する内容と対応する設定ファイルは以下のとおり。
/etc/hosts
/etc/resolve.conf
/etc/networks
/etc/syscnofig/network-scripts/ifcfg-*
udev
によりデバイスに応じて命名されている/etc/sysconfig/network-scripts/route-*
重要な設定を一部抜粋して確認する
/etc/sysconfig/network-scripts/
ディレクトリー内のインターフェースごとの設定ファイルに格納する必要がある# 動的ネットワーク設定の例 DEVICE=em1 BOOTPROTO=dhcp ONBOOT=yes # 静的ネットワーク設定の例 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes PREFIX=24 IPADDR=10.0.1.27
コネクション名が扱いづらい形なので修正したほうが作業がしやすい
$ nmcli connection show NAME UUID TYPE DEVICE System ens192 ******************* 802-3-ethernet ens192 $ nmcli connection modify "System ens192" connection.id eth0 NAME UUID TYPE DEVICE eth0 ******************* 802-3-ethernet ens192
設定はおおむね以下のような形
$ nmcli connection modify \ connection.autoconnect yes \ ipv4.dns 8.8.8.8 \ ipv4.method manual ipv4.addresses 10.*.*.*/24 \ +ipv4.routes "192.168.0.0/16 10.*.*.254" ipv4.ignore-auto-routes no ipv4.ignore-auto-dns yes
/etc/sysconfig/network-scripts/
ディレクトリー内のインターフェースごとの設定ファイルに格納する必要がある# IPコマンド引数形式の例 default via 192.168.0.1 dev eth0 10.10.10.0/24 via 192.168.0.10 dev eth0 172.16.1.10/32 via 192.168.0.10 dev eth0 # ネットワークネットマスクディレクティブ形式の例 ADDRESS0=10.10.10.0 NETMASK0=255.255.255.0 GATEWAY0=192.168.0.10 ADDRESS1=172.16.1.10 NETMASK1=255.255.255.0 GATEWAY1=192.168.0.10
# nmcli コマンドで静的ルート設定を追加 nmcli connection modify eth0 +ipv4.routes "192.168.122.0/24 10.10.10.1" # nmcli エディタ nmcli connection edit type ethernet con-name eth0 nmcli> set ipv4.routes 192.168.122.0/24 10.10.10.1
/etc/sysconfig/network
個別のデバイス設定を用いることを推奨、グローバルのnetworkファイルは非推奨になった。
Red Hat Enterprise Linux ではグローバルの /etc/sysconfig/network ファイルの使用は非推奨となっており、ゲートウェイの指定はインターフェースごとの設定ファイルでのみ行なってください。 https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/networking_guide/sec-using_the_command_line_interface
公式ドキュメント: https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/networking_guide/sec-using_the_networkmanager_command_line_tool_nmcli
nmcli [OPTIONS...] {help | general | networking | radio | connection | device | agent | monitor} [COMMAND] [ARGUMENTS...]
ネットワークへの接続性を確認/制御できる
on
, off
, connectivity
の三種類$ nmcli network connectivity full
connectivityの状態は、none(切断), portal(認証前), limited(インターネットに出れない), full(インターネットに出れる), unknown(不明) の5種類
# Usage: nmcli general { COMMAND | help } # COMMAND := { status | hostname | permissions | logging } # hostname 表示/変更 => hostnamectl でも操作可能 $ nmcli general hostname test01 $ nmcli general hostname prod01 $ nmcli general hostname prod01 $ cat /etc/hostname prod01 # status 表示 $ nmcli general status STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN connected full enabled enabled enabled enabled
SYNOPSIS ip [ OPTIONS ] OBJECT { COMMAND | help } ip [ -force ] -batch filename OBJECT := { link | address | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm | netns | l2tp | tcp_metrics | token } OPTIONS := { -V[ersion] | -h[uman-readable] | -s[tatistics] | -d[etails] | -r[esolve] | -iec | -f[amily] { inet | inet6 | ipx | dnet | link } | -4 | -6 | -I | -D | -B | -0 | -l[oops] { maxi‐ mum-addr-flush-attempts } | -o[neline] | -rc[vbuf] [size] | -t[imestamp] | -ts[hort] | -n[etns] name | -a[ll] }
[amazon template=wishlist&asin=4774184268]
ウェブ界隈でエンジニアとして労働活動に励んでいる @gomi_ningen 個人のブログです