systemd-networkdがIPv6 RA *パス*を受け入れますが、*アドレス*を自動的に割り当てないようにすることはできますか?

systemd-networkdがIPv6 RA *パス*を受け入れますが、*アドレス*を自動的に割り当てないようにすることはできますか?

ネットワークがあり、radvdサーバーがkea-dhcp6稼働しています。クライアントが稼働していてsystemd-networkd(現在のDebianが安定している)、次のことを行います。

[Network]
IPv6AcceptRA=true
DHCP=yes

望ましい動作は、DHCPv6 のアドレスと RA のパスでクライアントを設定することです。現在この構成では、クライアントはDHCPから正しいIPアドレス、自動生成/自動割り当てglobal dynamic mngtmpaddr noprefixrouteアドレス、および正しいパスを取得します。

default proto static metric 1024
        nexthop via fe80::20d:b9ff:fe54:2d18 dev eno1 weight 1 pref medium

退屈な理由で、システムはDHCPv6割り当てアドレスをソースアドレスとして好むことを望んでいます。私が知っている限り、このアドレスを「自宅」アドレスに設定するか、このアドレスを利用可能な唯一のアドレスに設定することでこれを達成できます。現在、DHCP取得アドレスにフラグを設定することがsystemd-networkd不可能であることがわかったhomeので、後者の実行方法を理解しようとしています。

問題は、これを設定するとIPv6AcceptRA=falseアドレスが削除されますが、デフォルトのLLアドレスルーティングも削除され、他の多くが中断されることです。

RAがLLパスを割り当てたが、付属の自動設定アドレスを持たない方法はありますか?

答え1

最善の解決策は、ネットワーク全体のアドレス自動設定を無効にするのか、1つのデバイスに対してのみアドレス自動設定を無効にするのかによって異なります。

radvdネットワーク全体の場合、通知に「自律性」フラグを設定しないことを確認できます。これにより、ネットワーク上のすべてのシステムが自動的に独自のアドレスを生成するのを防ぎます。このオプションを使用できますAdvAutonomous

カーネルレベルのクライアントでこれを設定するには、カーネルに独自のアドレスを生成しないように指示する必要があります。最も簡単な方法は、/etc/sysctl.d/10-ipv6-autoconf.conf以下を使用して作成することです。

net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0

このファイルは再起動するたびに処理されます。 runnintを使用して手動で新しい設定を有効にできますsudo sysctl --system

以下を使用するにはsystemd-networkd機能する必要がありますが、自分で試したことはありません。

[Network]
IPv6AcceptRA=true
DHCP=yes

[IPv6AcceptRA]
UseAutonomousPrefix=false

関連情報