systemdのインターフェイスに複数のIPアドレスを設定するには?

systemdのインターフェイスに複数のIPアドレスを設定するには?

だから/etc/systemd/networkにlan.networkファイルがあります:

[Match]
Name=eth0

[Network]
DHCP=no

[Address]
Address=192.168.59.1/24

時々、他のデバイスは同じインターフェイスにインポートされますが、別々のサブネット(192.168.1.x)にあります。デバイスにアクセスするために、オプションでインターフェイスで2つのIPアドレスを実行したいと思います。 systemdでこれを行う最善の方法は何ですか?

/etc/network/interfaces以前のバージョンの Debian (Wheezy) で以下を編集して取得しました:

auto eth0
iface eth0 inet static
address 192.168.59.1

iface eth0:1 inet static
address 192.168.1.5

したがって、デフォルトでeth0インターフェイスが有効になっていて192.168.1.xにアクセスする必要がある場合は、次のようにします。

ifup eth0:1

答え1

私が理解したところによれば、これを永久に行うには、すべてのアドレスを一緒に積むだけです。つまり:

Address=192.168.59.1/24 192.168.1.5/24

答え2

Arch Linux、SystemD 249.2-1では、次の3つの方法のいずれも機能しません(この回答も試しました。)

-------------------------
[Network]
Address=10.2.3.4/16
Address=10.6.7.8/16
-------------------------
[Network]
Address=192.168.59.1/24 192.168.1.5/24
-------------------------
[Address]
Address=10.2.3.4/16

[Address]
Address=10.6.7.8/16
-------------------------

代わりに、単純な SystemD サービスを使用して起動後に 2 番目の IP を設定できます。この回答systemdサービスの作成の詳細...ボーナスポイント:この方法では、静的またはDHCPをベースアドレスとして使用できます。

  • /usr/local/bin/second_ipをタッチします。
  • chmod +x /usr/local/bin/second_ip
  • ファイルを次のように編集します
#!/bin/bash
ip address add 10.10.128.128/16 dev eth0
  • /etc/systemd/system/second-ip.serviceをタッチします。

  • ファイルを次のように編集します

  • systemctlは2番目のIPを有効にします。

     [Unit]
     Description=second ip service
     After=network.target
    
     [Service]
     User=root
     ExecStart=/usr/local/bin/second_ip                                                                                      Type=simple
    
     [Install]
     WantedBy=multi-user.target
    

関連情報