Почему systemd-networkd не назначает мне IPv6-адрес из назначенного префикса?
Я использую экземпляр сервера 22.04 в качестве маршрутизатора для своей домашней сети. У меня есть работающая служба IPv4 и IPv6, но мой общедоступный IPv6-адрес назначается моему интерфейсу локальной сети, что для меня неожиданно. Моему интерфейсу WAN назначены только локальные адреса. Это, похоже, вообще не влияет на мое подключение, что еще менее важно для моего мозга, работающего только с IPv4. Нижестоящие устройства успешно получают общедоступные и уникальные IPv6-адреса, и я даже доступен по глобальному IPv6-адресу интерфейса LAN (!?), но не следует ли вместо этого назначить его интерфейсу WAN? Другие примеры, найденные в Интернете, похоже, предполагают это, но их мало.
Адреса
Я используюsystemd-networkd
безnetplan
. У меня есть два интерфейса:
- : WAN-ссылка
- : ссылка по локальной сети
Соответствующий вывод изip
с отредактированными адресами:
user@router:~$ ip -6 addr show enp4s0
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
valid_lft forever preferred_lft forever
user@router:~$ ip -6 addr show enx3c18a041307a
3: enx3c18a041307a: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet6 2600:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr
valid_lft 5285sec preferred_lft 5285sec
inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
valid_lft forever preferred_lft forever
При проверке IPv4-адресов имеет мой публичный адрес и имеет назначенный мне частный адрес.
Конфигурация
Это моя конфигурация дляenp4s0
интерфейс:
[Match]
MACAddress=bc:xx:xx:xx:xx:xx
[Link]
# This is the WAN link, so is required to be considered online
RequiredForOnline=yes
ActivationPolicy=up
[Network]
Description=The motherboard ethernet device used as a WAN link.
# Enable DHCPv4 and v6 on this link
DHCP=yes
# Enable link-local addressing
LinkLocalAddressing=ipv6
# Forward IPv4 and IPv6 addresses
IPForward=yes
# Accept router advertisements
IPv6AcceptRA=yes
[DHCPv6]
ForceDHCPv6PDOtherInformation=yes
Тогда дляenx3c18a041307a
интерфейс:
[Match]
MACAddress=3c:xx:xx:xx:xx:xx
[Link]
RequiredForOnline=no
ActivationPolicy=up
[Network]
Description=The USB ethernet device used as a LAN link.
DHCP=no
LinkLocalAddressing=ipv6
IPForward=yes
IPv6AcceptRA=no
IPv6SendRA=yes
DHCPv6PrefixDelegation=yes
Address=192.168.1.1/24
# Enable the built-in dhcp server
DHCPServer=yes
[DHCPv6PrefixDelegation]
SubnetId=0x1
Это следует из примеров, приведенных вsystemd.network
справочную страницу, а также несколько примеров, найденных в Интернете.