Назад | Перейти на главную страницу

настроить IPv6-адрес на интерфейсе со статическим IID

Я ищу инструмент, очень похожий на 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