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アドレスが表示されると考えられます。
- リンク - ローカルアドレス
- 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アドレスネゴシエーションに置き換えられます。