4

Вот информация:

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

DHCP пытается назначить этот IP-адрес узлу: 2601: aaaa: bbbb: cccc: 1000:: fa8d

Хост должен быть ОБЩИМ: на хосте НЕТ пользовательской конфигурации сети в качестве требования. Предполагается, что все хосты являются компьютерами, которые есть у всех, и они подключают их, и они должны работать без каких-либо настроек. Это означает, что 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 -6 lie -> успешно выводит все

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

1 ответ1

5

хост, кажется, назначает себя 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 . Это происходит только в том случае, если пользовательское пространство, которое понимает этот флаг (например, NetworkManager или systemd-networkd), уже запущено.

  • dhclient FreeBSD в базе отсутствует поддержка DHCPv6; двойная версия в портах.

  • OpenBSD не имеет клиента DHCPv6 в базе (он должен быть установлен через порты).

  • Android вообще не поддерживает DHCPv6.

Кажется, ваш клиент работает под управлением NetworkManager, но даже в этом случае нет никакой гарантии, что он не потребует ручной настройки в зависимости от того, какая у него версия и на каких внешних клиентах DHCPv6 установлены. (Если выбран dhcp=internal , текущие версии поддерживают только DHCPv4.)

Также возможно, что клиенты будут пытаться использовать DHCPv6 только в том случае, если автономная настройка отключена (см. 1-ю часть ответа), но в результате IPv6 будет недоступен для клиентов, у которых отсутствует DHCPv6.


Если ваша цель состоит в том, чтобы иметь подотчетность, я бы вместо этого вел журнал IPv6-адресов для ассоциаций MAC-адресов. Это может быть реализовано путем мониторинга рекламы соседей или просмотра кэша ND маршрутизатора (ip -6 neigh), и его преимущество заключается в том, что он будет работать независимо от механизма - SLAAC, расширение конфиденциальности, DHCPv6, DHCPv4, даже статически настроенные адреса будет отслеживаться.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .