systemd.networkd:DHCPとリンクローカルアドレス

systemd.networkd:DHCPとリンクローカルアドレス

Windowsのようにsystemd-networkdのDHCPとリンクローカルアドレスを設定できますか?

私の言葉は:

  • DHCPからアドレスを取得できれば良いです。作業が完了しました。
  • DHCP からアドレスを取得できない場合は、169.254.xx にフォールバックします。

RFC3927にも似ています。

LinkLocalAddressing = オプションがどのように機能するか少し驚きました。ただDHCPを無視します。設定は次のとおりです。

[Match]
Name=eth0
KernelCommandLine=!nfsroot

[Network]
DHCP=ipv4
LinkLocalAddressing=yes

私は得る:

Dec 17 15:10:43 my-system systemd-networkd[1276]: eth0: IPv6 successfully enabled
Dec 17 15:10:44 my-system systemd-networkd[1276]: eth0: Gained carrier
Dec 17 15:10:44 my-system systemd-networkd[1276]: eth0: DHCPv4 address 10.114.138.133/24 via 10.114.138.1
Dec 17 15:10:45 my-system systemd-networkd[1276]: eth0: Gained IPv6LL
Dec 17 15:10:57 my-system systemd-networkd[1276]: eth0: Configured
root@my-system:~#
root@my-system:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:44:44:00:04:17
          inet addr:169.254.184.36  Bcast:169.254.255.255
          Mask:255.255.0.0

答え1

ifconfigの代わりに "ip addr show"を試してください。これには2つのIPアドレスが表示されると考えられます。

  1. リンク - ローカルアドレス
  2. DHCP 割り当て IP アドレス。

systemd-networkdは、DHCP割り当てアドレスをリンクローカルアドレスで「上書きしません」。どちらのアドレスもアクティブで動作中です。 ifconfigはインターフェイスに単一のIPアドレスしか表示できず、他のアドレスは無視して最初に見たアドレスのみを表示します。

ifconfig は廃止されました。 IPユーティリティに切り替える時間です... 役に立つチートシートは次のとおりです。 https://access.redhat.com/sites/default/files/attachments/rh_ip_command_cheatsheet_1214_jcs_print.pdf

答え2

構成ファイルに以下を追加してみてください。

[Network]
DHCP=ipv4
LinkLocalAddressing=ipv4-fallback

[DHCPv4]
MaxAttempts=3

これにより、DHCPリースを3回取得しようとします。これが失敗した場合は、リンクローカルIPv4アドレスネゴシエーションに置き換えられます。

関連情報