2015年8月10日月曜日

[CentOS7] ネットワーク情報(IPアドレスなど)を参照・変更したい


CentOS7 では、ネットワーク関連の設定は NetworkManager を使用することを推奨しているようです。また、最小構成でインストールすると ifconfig、netstat、route などのコマンドがありません。代りに iproute2 パッケージのip、ss などのコマンドを使うことを推奨しているようです。

どうしても ifconfig など使用したい場合は、net-tools パッケージをyum でインストールすれば、使用できるようになります。
ただし、net-tools パッケージは、将来、廃止予定のようです。

ネットワーク関連の設定ファイルは、CentOS6 と同じく /etc/sysconfig/network-scripts にあります。
CentOS6のときと同じように、ファイルを直接修正しても設定変更できそうですが、推奨している NetworkManager を利用して設定変更したほうがいいかもしれません。

NetworkManagerのテキストベースのUI(画面)を使用して設定変更する場合は、nmtui コマンドを使います。
以下のように root ユーザの英語環境で nmtui コマンドを実行します。
# env LANG=C nmtui
下図の画面が表示されます。
固定IPアドレスを設定したい場合は、矢印キーで [Edit a connection] を選択し、TABキーで [OK]に移動して、ENTERキーを押下します。



下図の画面が表示され、NICデバイスが表示されます。
私の環境が、XenServerの仮想マシンなのでデバイスが eth0 と表示されていますが、デバイス名は環境によって異なります。
矢印キーでIPアドレスを変更したいデバイスを選択してENTERキーを押下します。



下図の画面が表示されます。
まず、DHCPから固定IPに変更します。[IPv4 ConFIGURATION] にTABキーで移動し、ENTERキーを押下します。



メニューが表示されたら、矢印キーで[Manual]を選択して、ENTERキーを押下します。



今度は、IPアドレスとデフォルトゲートウェイのIPアドレスを設定します。
TABキーで [Show]へ移動し、ENTERキーを押下します。



固定IPアドレスを入力するフィールドを追加します。
TABキーで [Add...] に移動し、ENTERキーを押下します。



[Addresses] にサーバのIPアドレスを入力し、[Gateway]にデフォルトゲートウェイのIPアドレスを入力します。
必要に応じて、DNS、静的ルーティングの設定も、ここでできます。



設定が終了したら、TABキーで [OK] に移動して、ENTERキーを押下します。



TABキーで [OK] に移動して、ENTERキーを押下します。



以上で設定完了です。
設定変更の終了後は、以下のコマンドを実行すると設定変更が有効になります。
# systemctl restart NetworkManager
# systemctl restart network
nmtui で設定したIPアドレスやDNSなどの情報は、/etc/sysconfig/network-scripts/ifcfg-eth0 ファイルに保存され、/etc/resolv.conf は NetworkManager が自動生成します。
ifcfg-eth0 の内容は、以下のとおり。
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=08b36bd7-ae4f-4490-b43f-686b2b7f7ba5
ONBOOT=yes
HWADDR=B6:11:AF:D3:23:0B
IPADDR0=192.168.1.10
PREFIX0=24
GATEWAY0=192.168.1.1
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
 
resolv.conf の内容は、以下のとおり。
# cat /etc/resolv.conf
# Generated by NetworkManager


# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com

IPアドレスは、以下の ip コマンドで確認できます。
# ip a
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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether b6:11:af:d3:23:0b brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::b411:afff:fed3:230b/64 scope link
       valid_lft forever preferred_lft forever

ルーティング情報は、以下の ip コマンドで確認できます。
# ip r
default via 192.168.1.1 dev eth0  proto static  metric 1024
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.10



■ 補足

コマンドラインでネットワークの設定変更や参照したい場合は nmcui 、ip、ss を使用します。
詳しい使用方法は、以下のサイトが参考になります。