私のLinuxシステムのIPv4インターフェイスにプライベートアドレスとリンクローカル(APIPA)割り当てアドレスの両方があるのはなぜですか?

私のLinuxシステムのIPv4インターフェイスにプライベートアドレスとリンクローカル(APIPA)割り当てアドレスの両方があるのはなぜですか?

Linux カーネル 4.19.94+ では、次のようにインターフェイス eth0 に割り当てられた IPv4 プライベートアドレスとリンクローカルアドレスを表示できます。 APIPA(自動プライベートIPアドレス指定)IPアドレス(169.254.0.0/16)は、DHCPサーバーがIPアドレスを割り当てない場合にのみ割り当てられることがわかります。

ビル・マニングによると特殊目的 IPv4 アドレスブロック仕様の文書化:

169.254.0.0/16 は、DHCP サーバーが見つからない場合にエンドポイントの自動構成に使用される IP 範囲として指定されました。したがって、ネットワーク運用と管理者は、ルート広告やパケット配信がメディア境界を超えないように積極的に努力する必要があります。これは、インターネットとIPプロトコルを使用するすべてのプライベートネットワークに当てはまります。エンドポイント管理者は、一部のベンダーがこのプレフィックスを自動的に構成してノード転送テーブルに追加することに注意してください。これにより、ルータ検索や RIP など、廃止予定のルーティング プロトコルを実行しているサイトに問題が発生します。

上記の情報に基づいて、誰かが次の質問を明確にすることができますか?

DHCPサーバーがIPv4アドレスを正常に割り当てると、Linuxバージョン4.19.94に169.254.0.0/16が割り当てられるのはなぜですか?

これは、ブロードキャストメッセージを送信すると問題を引き起こすことがわかりました。
インターフェイスにプライベートIPアドレスを割り当てるときにリンク - ローカル割り当てを無効にするにはどうすればよいですか?

特に、SSDPプロトコルまたは他のサービスプロトコルを使用する場合、これらの割り当てによってネットワークパケットが冗長であるか、ネットワークオーバーヘッドが増加するかがわかります。

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1492 qdisc mq qlen 1000
    link/ether 00:1c:2b:13:06:2f brd ff:ff:ff:ff:ff:ff
    inet 169.254.196.187/16 brd 169.254.255.255 scope link eth0
       valid_lft forever preferred_lft forever
    inet 192.168.0.20/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::21c:2bff:fe13:62f/64 scope link 
       valid_lft forever preferred_lft forever

ベストアンサー1

上記の動作は、設定のネットワークセクションに「LinkLocalAddressing = yes」を割り当てたために発生しますsystemd/network/10-eth0.network

これは明らかにシステムネットワーキングのバグです。このバグの詳細については、ここで見ることができます。 https://github.com/systemd/systemd/issues/13316;

現在のシステムバグが原因でDHCPサーバーが見つからない場合、IPV4LL(IPV4リンクローカルアドレス)アドレスを割り当てることはできません。

設定されている場合、LinkLocalAddressing=fallbackDHCPクライアントはIPV4LLアドレスが割り当てられた後にDHCPサーバーの受信を停止します。これはRFC 3927 (Ref https://tools.ietf.org/html/draft-ietf-dhc-dna-ipv4-01).、DHCPサーバーが再びオンラインになると、以前に割り当てられたIPV4LLアドレスは削除されず、DHCPサーバーの新しいアドレスがクライアントに割り当てられないことを意味します。

おすすめ記事