systemd-networkd
に単純なDHCPIPv4ネットワークに相当するIPv6を作成し、サーバーホストがIPv6アドレスを配布し、多数のクライアントが自動的にアドレスを取得したいと考えています。
IPv4では、これは単純であり、DHCPサーバー/クライアントとIPv4アドレスのプールが必要です。これまでのところ、IPv6の世界で同じことを再現することはできません。 systemd-network のドキュメントに従っています。これは、「IPv6AcceptRA」の使用を提案しています。
[Match]
Name=enp0s4
[Network]
Address=fd00:1::/64
IPv6PrefixDelegation=yes
[IPv6Prefix]
Prefix=fd00:1::/32
[IPv6PrefixDelegation]
RouterLifetimeSec=20
[Match]
Name=enp0s4
[Network]
IPv6AcceptRA=yes
この設定では、サーバーは正常に起動しているようです。
# ip a
...
3: enp0s4: <BROADCAST,MULTICAST,UP,LOWER_UP8000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether ca:fe:b9:4d:9d:6f brd ff:ff:ff:ff:ff:ff
inet6 fd00:1::/64 scope global tentative flags 08
valid_lft forever preferred_lft forever
inet6 fe80::c8fe:b9ff:fe4d:9d6f/64 scope link tentative flags 08
valid_lft forever preferred_lft forever
...
しかし、クライアントはアドレスを取得しません:
# ip a
...
3: enp0s4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether ca:fe:10:2a:af:27 brd ff:ff:ff:ff:ff:ff
inet6 fe80::c8fe:10ff:fe2a:af27/64 scope link tentative flags 08
valid_lft forever preferred_lft forever
...
これは機能する必要がありますか、それともこの問題を解決するためのより良い方法がありますか?
サーバーにradvd
またはその他のルーターアドバタイズメントデーモンをインストールし、ULAプレフィックスを配布するように構成すると、準備が整います。クライアントはSLAACを介してアドレスを取得します。または、IPv6対応のDHCPサーバーをインストールして構成します。