Я ищу инструмент, очень похожий на rdisc6, который после получения RA настроит адрес (а) v6 на интерфейсе с использованием статического IID. Это сервер, который должен находиться по известному адресу в ULA. (Нет, я не могу использовать mDNS и SLAAC, поскольку есть сертификаты, привязанные к задействованным именам, и mDNS может даже не работать, пока этот интерфейс не будет настроен).
Если придется, я расширю rdisc6, но надеюсь не копировать то, что кто-то уже сделал. Это будет работать в Linux (armv7) внутри контейнера LXC.
Для этого у вас должна быть возможность использовать токен IPv6. Маркер IPv6 - это установленный вручную идентификатор IID, который остается неизменным независимо от префикса IPv6, назначенного через SLAAC. Для использования токенов IPv6 требуется SLAAC.
Вы можете настроить токен постоянно, задав свойства интерфейса в NetworkManager.
# nmcli c mod enp4s0 ipv6.addr-gen-mode eui64
# nmcli c mod enp4s0 ipv6.token ::deca:fbad:c0:ffee
Теперь с префиксом подсети 2001:db8:dead:beef::/64
интерфейс будет иметь адрес IPv6 2001:db8:dead:beef:deca:fbad:c0:ffee
.
Чтобы удалить токен, установите для него пустое значение. Затем вы можете сбросить addr-gen-mode до значения по умолчанию.
# nmcli c mod enp4s0 ipv6.token ''
# nmcli c mod enp4s0 ipv6.addr-gen-mode stable-privacy
С помощью systemd-networkd установите IPv6Token=
собственность в [Network]
раздел вашего конфигурация.
Вы также можете запустить ip token
команда вручную. Для использования при настройке контейнера это, вероятно, именно то, чем вы в конечном итоге будете заниматься.
Если вам нужно несколько IID на одном интерфейсе, вам придется настроить их вручную. Больше ничего тебе не поможет.
Ключ к использованию «ip token» оказался в том, что интерфейс должен быть отключен.
%sudo ifconfig lan down
%sudo ip token set ::45/64 dev lan
%sudo ifconfig lan up
%ifconfig lan
lan: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::1c60:e9ff:fe26:dc74 prefixlen 64 scopeid 0x20<link>
inet6 2607:f0b0:f:e0::45 prefixlen 64 scopeid 0x0<global>
inet6 fdba:d505:5c1::45 prefixlen 64 scopeid 0x0<global>
ether 1e:60:e9:26:dc:74 txqueuelen 1000 (Ethernet)
RX packets 664833 bytes 85127613 (81.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 22823 bytes 3091931 (2.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0