LoginSignup
1
0

More than 1 year has passed since last update.

Photon OS (systemd-networkd) における静的 IP アドレス設定

Posted at

非常に軽量な Linux ディストリビューションである Photon OS において、固定 (静的な) IP アドレスを設定する方法を紹介します。

ただし!
Photon OS に関しては、下記の記事で紹介しているような方法で、OVA デプロイと合わせて IP アドレスまで設定してしまう方が、圧倒的に楽です。

そのため、この記事は、デプロイ後に IP アドレスを変更する場合や、2つ目以降の NIC に IP アドレスを設定する場合などを想定して、手順を記載します。

前提

執筆時点で、Photon OS は ver 4.0 を利用しています。

# cat /etc/photon-release
VMware Photon OS 4.0
PHOTON_BUILD_NUMBER=2f5aad892

手順

前述の通り、1つ目の NIC に関しては、もっと簡単に設定できる方法があるので、ここでは、2つ目の NIC eth1 に IP アドレスを設定する場面を想定して、手順を記載します。

仮想 NIC の追加

まずは、対象の Photon OS の VM に、仮想 NIC を追加します。
ここでは、VM 展開時に作成した Management-Network に接続した NIC に加えて、Workload-Network に接続した NIC を追加しました。

Screenshot 2023-02-02 at 11.50.05.png

実際に、VM 内で NIC の存在を確認すると、eth1 として、新たに NIC が追加されているのが分かります。

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:50:56:93:36:0f brd ff:ff:ff:ff:ff:ff
    altname eno1
    altname enp11s0
    altname ens192
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
    link/ether 02:42:77:f3:b5:2a brd ff:ff:ff:ff:ff:ff
4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:50:56:93:0e:e7 brd ff:ff:ff:ff:ff:ff
    altname eno2
    altname enp19s0
    altname ens224

(参考) 設定ファイルの場所

Photon OS 4 では、systemd-networkd を使って、ネットワーク設定が管理されています。
そのため、NIC に IP アドレスを設定するには、network ファイルと呼ばれる設定ファイルを作成します。

まず、systemd-networkd では、ユーザーが作成する設定ファイルは /etc/systemd/network に格納します。
例えば、前述の記事のように、eth0 は、vSphere の仕組みを使って設定している場合、下記のようなファイルが、すでに配置されています。

# ls /etc/systemd/network
10-gosc-eth0.network  99-dhcp-en.network

先頭に数字が振られていますが、これはソートした時に、ファイル名が先に来る方が優先される設定となるため、先頭に番号を付けて分かりやすくしています。
この例では、10-gosc-eth0.network として、eth0 に対する静的な IP アドレス設定の方が、99-dhcp-en.network に設定されている「デフォルトでは DHCP を有効化」よりも優先されるようになっています。

network ファイルの作成

ここでは 2つ目の NIC として、eth1 に IP アドレスを設定するので、例えば、11-static-eth1.network として作成していきます。
意味合いとしては、「vSphere の機能が作成した設定の優先度 (10) よりは低いが、DHCP 設定の優先度 (99) よりは高い優先度 (11) を設定し、静的に (static) に、eth1 に IP アドレスを設定するファイル」としています。

まず、設定ファイルの格納場所まで移動します。

cd /etc/systemd/network

このディレクトリに、設定ファイル 11-static-eth1.network を作成します。

11-static-eth1.network
[Match]
Name=eth1

[Network]
DHCP=no
Address=172.19.31.201/24

上記の例では、2つ目の NIC なので、Gateway の設定や DNS に関する設定は省略しています。
もし、Gateway や DNS を設定する際には、下記のようになります。

with Gateway + DNS
[Match]
Name=eth1

[Network]
DHCP=no
Address=172.19.31.201/24
Gateway=172.19.31.254
DNS=172.19.30.1
Domains=mylab.test

注意
ありがちなミスですが、network ファイルの権限が 644 であることを、しっかり確認してください。
よくあるのは、systemd-networkd が Read 権限が無く、設定が反映されないことがあります。

# ls -l 11-static-eth1.network
-rw-r--r-- 1 root root 145 MMM DD hh:mm 11-static-eth1.network

もし、違う権限になっていたら、権限の変更をしておいてください。

chmod 644 11-static-eth1.network

(参考) VLAN の設定

Photon OS は、vSphere などのクラウド環境に展開することが多いので、そこまで多いケースではないと思いますが、もし Guest OS 側で VLAN を設定したい場合、設定ファイルがちょっと多くなります。
詳細は、下記の記事で解説しています。

設定の反映

設定ファイルが正しく作成されていれば、あとは下記のコマンドで設定を反映させられます。

systemctl restart systemd-networkd

ただ、エラーした場合であっても、このコマンドには特に応答がありません。
なので、しっかりと status コマンドで、正しく反映されているか確認します。

systemctl status systemd-networkd

何かミスがあった場合、コマンド出力の後半に、ログとしてエラー内容が出力されるので、その内容を確認しながら、設定ファイルを修正します。

最後に、実際に、NIC に IP アドレスが振られていることを確認して、完了です。

# ip addr

...(snip)...

4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:93:0e:e7 brd ff:ff:ff:ff:ff:ff
    altname eno2
    altname enp19s0
    altname ens224
    inet 172.19.31.201/24 brd 172.19.31.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe93:ee7/64 scope link
       valid_lft forever preferred_lft forever

参考

Photon OS の公式ドキュメントについては、下記の Setting a Static IP Address の章を参照ください。

また、Photon OS で利用している systemd-networkd に関しては、Arch Linux のコミュニティの Wiki が非常に詳しく解説してありますので、参考になると思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0