ここに情報があります:
Host link IP: fe80::9eec:b32d:855c:5589
Server link IP: fe80::f03c:91ff:fe11:96c4
Host global IP: 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727 (Ugh!)
Server global IP: 2601:aaaa:bbbb:cccc::1
サーバーは2601:aaaa:bbbb:cccc ::/64のブロックをルーティングしました
DHCPtryingtoこのIPをホストに割り当てます:2601:aaaa:bbbb:cccc:1000 :: fa8d
ホストはGENERICである必要があります:ホストには要件としてカスタムネットワーク構成がありません。すべてのホストは、誰もが持っているコンピューターであると想定されており、それらを接続し、カスタマイズなしで動作するはずです。つまり、dhclientをIPv6クライアントで使用しないでください。すべてをSLAACまたはステートフルSLAAC(私が達成しようとしていること)を介して実行する必要があります。
ホストは、デフォルトでIPv6に設定されているブラウザーでうまく機能し、IPv6またはIPv4に関係なくすべてのサイトに到達するのに問題はありません。
ホストネットワーク:
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 28:d2:44:6b:bf:9f brd ff:ff:ff:ff:ff:ff
inet 172.21.0.102/24 brd 172.21.0.255 scope global dynamic noprefixroute enp0s25
valid_lft 39535sec preferred_lft 39535sec
inet6 2601:aaaa:bbbb:cccc:ec25:e54d:4255:6c76/64 scope global temporary dynamic
valid_lft 86199sec preferred_lft 14199sec
inet6 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86199sec preferred_lft 14199sec
inet6 fe80::9eec:b32d:855c:5589/64 scope link noprefixroute
valid_lft forever preferred_lft forever
サーバーのradvd構成:
root@li336-239:/var# cat /etc/radvd.conf
interface tap0
{
AdvSendAdvert on;
AdvManagedFlag on;
AdvOtherConfigFlag on;
prefix 2601:aaaa:bbbb:cccc::/64
{
AdvOnLink on;
AdvAutonomous on;
};
};
ホストとサーバーは、グローバルIP割り当ての前に、問題なく相互に認識できます。
Server: ping6 -c2 fe80::9eec:b32d:855c:5589%tap0 --> Success
Host: ping6 -c2 fe80::f03c:91ff:fe11:96c4%enp0s25 --> Success
ホストとサーバーは、リンクIPとグローバルIPを持つネイバーとしてお互いを完全に認識します。
ホスト/サーバー:ip -6neigh->すべてが正常に一覧表示されます
ip6tables:すべてのFORWARDおよびINPUTチェーンは制限されていません:パケットはドロップされません
ホストが物理的にオンラインになったときのDHCPサーバー:
10:16:39 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700
10:16:39 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds
10:16:39 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546
10:16:40 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700
10:16:40 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds
10:16:40 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546
10:16:42 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700
10:16:42 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds
10:16:42 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546
10:16:46 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700
10:16:46 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds
10:16:46 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546
10:16:55 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700
10:16:55 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds
10:16:55 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546
10:17:13 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700
10:17:13 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds
10:17:13 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546
...しかし、ホストは自分自身に2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727(毎回異なる)を割り当てているようです。これをステートフルにしたくない場合は、これはすばらしいことです。
物理接続時のホスト:
root@some-computer:~# ip monitor
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default
link/ether 28:d2:44:6b:bf:9f brd ff:ff:ff:ff:ff:ff
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default
link/ether 28:d2:44:6b:bf:9f brd ff:ff:ff:ff:ff:ff
Deleted ff02::1:ff5c:5589 dev enp0s25 lladdr 33:33:ff:5c:55:89 NOARP
Deleted ff02::2 dev enp0s25 lladdr 33:33:00:00:00:02 NOARP
Deleted fe80::f03c:91ff:fe11:96c4 dev enp0s25 lladdr f2:3c:91:11:96:c4 router STALE
Deleted ff02::fb dev enp0s25 lladdr 33:33:00:00:00:fb NOARP
Deleted ff02::1:2 dev enp0s25 lladdr 33:33:00:01:00:02 NOARP
Deleted ff02::16 dev enp0s25 lladdr 33:33:00:00:00:16 NOARP
Deleted ff02::1:ff55:6c76 dev enp0s25 lladdr 33:33:ff:55:6c:76 NOARP
Deleted ff02::1:fff9:e727 dev enp0s25 lladdr 33:33:ff:f9:e7:27 NOARP
ff00::/8 dev enp0s25 table local metric 256 pref medium
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default
link/ether 28:d2:44:6b:bf:9f brd ff:ff:ff:ff:ff:ff
Deleted ff00::/8 dev enp0s25 table local metric 256 pref medium
ff00::/8 dev enp0s25 table local metric 256 pref medium
fe80::/64 dev enp0s25 proto kernel metric 256 pref medium
2: enp0s25 inet 172.21.0.102/24 brd 172.21.0.255 scope global dynamic noprefixroute enp0s25
valid_lft 39738sec preferred_lft 39738sec
local 172.21.0.102 dev enp0s25 table local proto kernel scope Host src 172.21.0.102
broadcast 172.21.0.255 dev enp0s25 table local proto kernel scope link src 172.21.0.102
broadcast 172.21.0.0 dev enp0s25 table local proto kernel scope link src 172.21.0.102
172.21.0.0/24 dev enp0s25 proto kernel scope link src 172.21.0.102 metric 100
default via 172.21.0.1 dev enp0s25 proto dhcp metric 20100
ipv4 dev enp0s25 rp_filter loose
172.21.0.1 dev enp0s25 lladdr 00:e0:4c:68:3b:72 REACHABLE
169.254.0.0/16 dev enp0s25 scope link metric 1000
10.16.0.1 dev enp0s25 lladdr f2:3c:91:11:96:c4 REACHABLE
2: enp0s25 inet6 fe80::9eec:b32d:855c:5589/64 scope link
valid_lft forever preferred_lft forever
local fe80::9eec:b32d:855c:5589 dev enp0s25 table local proto kernel metric 0 pref medium
2: enp0s25 inet6 fe80::9eec:b32d:855c:5589/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Deleted fe80::/64 dev enp0s25 proto kernel metric 256 pref medium
fe80::/64 dev enp0s25 proto kernel metric 256 pref medium
fe80::/64 dev enp0s25 proto kernel metric 100 pref medium
2: enp0s25 inet 172.21.0.102/24 brd 172.21.0.255 scope global dynamic noprefixroute enp0s25
valid_lft 39736sec preferred_lft 39736sec
default via 172.21.0.1 dev enp0s25 proto dhcp metric 100
Deleted default via 172.21.0.1 dev enp0s25 proto dhcp metric 20100
fe80::f03c:91ff:fe11:96c4 dev enp0s25 lladdr f2:3c:91:11:96:c4 router STALE
2: enp0s25 inet6 fe80::9eec:b32d:855c:5589/64 scope link noprefixroute
valid_lft forever preferred_lft forever
2601:aaaa:bbbb:cccc::/64 dev enp0s25 proto ra metric 100 pref medium
default via fe80::f03c:91ff:fe11:96c4 dev enp0s25 proto ra metric 100 pref medium
[!!HERE--->] 2: enp0s25 inet6 2601:aaaa:bbbb:cccc:ec25:e54d:4255:6c76/64 scope global temporary dynamic
valid_lft 86399sec preferred_lft 14399sec
local 2601:aaaa:bbbb:cccc:ec25:e54d:4255:6c76 dev enp0s25 table local proto kernel metric 0 pref medium
[!!HERE--->] 2: enp0s25 inet6 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86399sec preferred_lft 14399sec
[!!HERE--->] local 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727 dev enp0s25 table local proto kernel metric 0 pref medium
ホストは自分自身を割り当てているようです2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727
ルーターアドバタイズメントにはAdvAutonomous on
があり、これはステートレス構成がネットワークでサポートされていることを示しています。自律アドレス自動構成が必要ない場合は、自律アドレス自動構成を有効にしないでください。
これは、RAにAdvManaged on
がある場合、およびホストがDHCPv6アドバタイズメントを受信した場合でも適用されます。 (RFC 4862:「ホストはステートレスアドレス自動構成とDHCPv6の両方を同時に使用する可能性があることに注意してください。」)
つまり、dhclientをIPv6クライアントで使用しないでください。すべてをSLAACまたはステートフルSLAAC(私が達成しようとしていること)を介して実行する必要があります。
「ステートフルSLAAC」のようなものはありません(実際、「SL」は「ステートレス」を表します)。
せいぜい、SLAACアドバタイズメントはクライアントにDHCPv6を使用するように促すことができますが、クライアントにDHCPv6を実行するように強制強制することはできません。例えば:
LinuxはデフォルトでカーネルでSLAACを実行し、カーネルはしません DHCPクライアントを自動的にフォークします。dhclient -6
でもdhcpcd -6
でもwide-dhcp6c
でもありません。このonlyは、そのフラグを理解するユーザースペース(NetworkManagerやsystemd-networkdなど)がすでに実行されている場合に発生します。
FreeBSDのベースのdhclient
には、DHCPv6のサポートがありません。デュアルバージョンはポートにあります。
OpenBSDのベースにはDHCPv6クライアントがありません(ポートを介してインストールする必要があります)。
AndroidはDHCPv6をまったくサポートしていません。
クライアントはNetworkManagerを実行しているようですが、それでも、バージョンやインストールされている外部DHCPv6クライアントによっては、手動で構成する必要がないという保証はありません。 (dhcp=internal
が選択されている場合、現在のバージョンはDHCPv4のみをサポートします。)
自律構成が無効の場合にのみクライアントがDHCPv6を試行する可能性もありますが(回答の最初の部分を参照)、最終的にはDHCPv6がないクライアントではIPv6を使用できません。
説明責任を果たすことが目標である場合は、代わりにIPv6アドレスとMACアドレスの関連付けのログを保持します。これは、ネイバーアドバタイズメントを監視するか、ルーターのNDキャッシュ(ip -6 neigh
)を監視することで実装できます。利点は、SLAAC、プライバシー拡張、DHCPv6、DHCPv4、静的に構成されている場合でも、メカニズムに関係なく機能することです。アドレスが追跡されます。