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

Gateway=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 のネットワーク設定変更でした。