systemd-networkd を使用してサーバーに複数の静的 IP アドレスを追加する

systemd-networkd を使用してサーバーに複数の静的 IP アドレスを追加する

複数の IP アドレスを持つサーバーがあります。最近 systemd に移行しましたが、そのサーバーでは依然として複数の IP が必要です。systemd-networkd では、構成例を見つけるのに苦労します。そのため、ブート プロセスの最後に bash スクリプトを使用して、インターフェイスに IP を追加します。

1 つのインターフェースに複数の IP を追加するための systemd-networkd 設定例を提供してもらえますか。

答え1

によるとsystemd.ネットワーク(5)必要なアドレスを含む複数のAddress=行をセクションに追加するだけです。[Network]

[Network]
Address=10.2.3.4/16
Address=10.6.7.8/16
Gateway=...

または、[Address]アドレスごとに個別のセクションを作成します。

[Network]
Gateway=...

[Address]
Address=10.2.3.4/16

[Address]
Address=10.6.7.8/16

[Route](セクションとパラメータについても同様ですGateway=。)

ご了承くださいシステムdネットワークまだ非常に新しく、ほぼ毎日バグ修正が行われています。最新のsystemdリリースを使用していることを確認し、可能であればGitビルドをテストしてください。メーリングリストバグが発生した場合は、freenode のIRC チャネル#systemd& を参照してください。#gentoo-systemd

答え2

私はProxmoxのコンテナを使用しており、Proxmoxはコンテナ内に独自のファイルを書き込みます/etc/systemd/network/eth0.network。そのファイルが上書きされないことを保証できないことを回避するには、追加のIPアドレスを含むドロップインファイルを作成します。/etc/systemd/network/eth0.network.d/additional-ips.conf

[Match]
Name = eth0

[Address]
Address = 192.168.1.102/24

答え3

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
    

関連情報