Photon Linux のネットワーク設定は、
デフォルトだと DHCP による自動設定です。
いろいろと検証するうえで、ネットワーク設定を変更したいことがあるはずなので
実機確認してみた方法を紹介しておこうと思います。
IP アドレスや参照先 DNS サーバのアドレスなどを
静的なものに変更したい場合は、最近の Linux っぽい感じで
Systemd による設定変更ができます。
eth0 のネットワーク設定変更。
たとえば、デフォルトの設定ファイルは下記のようになっています。
NIC の名前は、eth0 になります。(そして 2つ目は eth1)
root [ ~ ]# cat /etc/systemd/network/10-dhcp-eth0.network
[Match]
Name=eth0
[Network]
DHCP=yes
上記のファイルのかわりに、設定ファイルを用意します。
今回は、IP アドレス、デフォルトゲートウェイ、参照 DNS サーバ(8.8.8.8) を指定しています。
root [ ~ ]# vi /etc/systemd/network/10-static-eth0.network
root [ ~ ]# cat /etc/systemd/network/10-static-eth0.network
[Match]
Name=eth0
[Network]
DHCP=no
Address=192.168.1.11/24
Geteway=192.168.1.1
DNS=8.8.8.8
元のファイルは、別のディレクトリに退避しておきます。
root [ ~ ]# mv /etc/systemd/network/10-dhcp-eth0.network ./10-dhcp-eth0.network_bk
systemctl restart systemd-networkd.service
で設定変更してみます。
root [ ~ ]# systemctl restart systemd-networkd.service
root [ ~ ]# systemctl status systemd-networkd.service
● systemd-networkd.service - Network Service
Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled)
Active: active (running) since Sun 2015-04-26 13:35:59 UTC; 11s ago
Docs: man:systemd-networkd.service(8)
Main PID: 322 (systemd-network)
Status: "Processing requests..."
CGroup: /system.slice/systemd-networkd.service
mq322 /lib/systemd/systemd-networkd
Apr 26 13:35:59 photon01 systemd-networkd[322]: [/etc/systemd/network/10-static-eth0.n...k'
Apr 26 13:35:59 photon01 systemd-networkd[322]: eth0 : gained carrier
Apr 26 13:35:59 photon01 systemd-networkd[322]: lo : gained carrier
Apr 26 13:35:59 photon01 systemd[1]: Started Network Service.
Apr 26 13:35:59 photon01 systemd-networkd[322]: eth0 : link configured
Hint: Some lines were ellipsized, use -l to show in full.
これで、eth0 には 設定ファイルに記載した新しい IP アドレスが付与されます。
ただし、変更前の IP と、変更後の IP が両方残った状態になります。
ifconfig だと eth0 に変更前の IP アドレスが表示されていますが、
ip コマンドだと、変更前 / 変更後 両方の IP アドレスが付与されていることがわかります。
root [ ~ ]# ip address show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:50:56:a0:86:93 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0★古いIP
valid_lft forever preferred_lft forever
inet 192.168.1.11/24 brd 192.168.1.255 scope global secondary eth0 ★新しい IP
valid_lft forever preferred_lft forever
inet6 2408:210:a3c8:7000:250:56ff:fea0:8693/64 scope global dynamic
valid_lft 13642sec preferred_lft 11842sec
inet6 fe80::250:56ff:fea0:8693/64 scope link
valid_lft forever preferred_lft forever
root [ ~ ]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:50:56:A0:86:93
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0★古い IP
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1807 errors:0 dropped:0 overruns:0 frame:0
TX packets:449 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:136788 TX bytes:77519
たとえば、 ip address del 192.168.1.10/24 dev eth0
(192.168.1.10/24 は変更前の IP アドレス)といったコマンドで修正できますが、
いったん OS を再起動してしまった方がよいかもしれません。
最終的に、変更後の IP アドレスだけになります。
root [ ~ ]# ip address show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:50:56:a0:86:93 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.11/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 2408:210:a3c8:7000:250:56ff:fea0:8693/64 scope global dynamic
valid_lft 14126sec preferred_lft 12326sec
inet6 fe80::250:56ff:fea0:8693/64 scope link
valid_lft forever preferred_lft forever
参照先 DNS サーバのアドレスは、
/etc/resolv.conf のリンク先になっている
/run/systemd/resolve/resolv.conf ファイルに反映されます。
root [ ~ ]# ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 34 Apr 22 14:51 /etc/resolv.conf -> ../run/systemd/resolve/resolv.conf
root [ ~ ]# cat /run/systemd/resolve/resolv.conf
# This file is managed by systemd-resolved(8). Do not edit.
#
# Third party programs must not access this file directly, but
# only through the symlink at /etc/resolv.conf. To manage
# resolv.conf(5) in a different way, replace the symlink by a
# static file or a different symlink.
nameserver 8.8.8.8
ホスト名の変更について。
ホスト名の変更には、hostnamectl コマンドが使用できます。
この Photon Linux では、インストール時に
「photon01」というホストを指定していました。
root [ ~ ]# uname -n
photon01
root [ ~ ]# hostname
photon01
root [ ~ ]# cat /etc/hostname
photon01
root [ ~ ]# hostnamectl
Static hostname: photon01
Icon name: computer-vm
Chassis: vm
Machine ID: d0e8e46689324de7b3940494d62ec61d
Boot ID: 4ce68ca573eb4f669d82606bf193cb14
Virtualization: vmware
Kernel: Linux 3.19.2
Architecture: x86-64
それでは、hostnamectl コマンドで「ph01」というホスト名に変更してみます。
ホスト名を変更すると、すぐに反映されます。
root [ ~ ]# hostnamectl set-hostname ph01
root [ ~ ]# uname -n
ph01
root [ ~ ]# hostname
ph01
root [ ~ ]# cat /etc/hostname
ph01
root [ ~ ]# hostnamectl
Static hostname: ph01
Icon name: computer-vm
Chassis: vm
Machine ID: d0e8e46689324de7b3940494d62ec61d
Boot ID: 4ce68ca573eb4f669d82606bf193cb14
Virtualization: vmware
Kernel: Linux 3.19.2
Architecture: x86-64
まだ、Photon Linux の技術情報ほとんど公開されてないようなので、
もう少ししたらもっとよい設定方法が紹介されるのかもしれません。
以上、Photon Linux のネットワーク設定変更でした。