Meu novo ISP me dá um endereço IPv6 público com um prefixo /56 para brincar:
2001:b:c:d:5:6:7:8/56
Eu gostaria de criar duas sub-redes divididas por um servidor linux assim:
internet - fritzbox - server - pc
Mas preciso entender como propagar um prefixo para a sub-rede interna. Até agora, configurei a interface externa do meu servidor para aceitar anúncios de roteador e solicitar um prefixo IPv6 do Fritz!Box:
/etc/systemd/network/eth1.network
[Match]
Name=eth1
[Network]
DHCP=ipv6
IPv6AcceptRA=yes
IPv6PrefixDelegation=dhcpv6
IPForward=yes
Depois que um systemctl reiniciar o systemd- networkd, a interface externa obtém um endereço:
ip -6 addr
...
inet6 2001:b:e:f:1:2:3:4/64 scope global noprefixroute dynamic
Isso está correto até agora? Também confuso: O prefixo da conexão com a Internet e da interface diferem na segunda metade:
internet: 2001:b:c:d::
server: 2001:b:e:f::
Agora a pergunta principal: Como configuro a interface interna? Ele pode solicitar outro prefixo do Fritz!Box?
/etc/systemd/network/eth0.network
[Match]
Name=eth0
[Network]
???
Meu servidor está executando o Debian stretch com systemd 239 de stretch-backports (porque 232 em stable ainda não suporta delegação de prefixo). Eu removi o pacote ifupdown porque meu objetivo é aprender como resolver isso apenas com o systemd-networkd .
Passei os últimos dias descobrindo uma configuração semelhante.
No momento da redação deste artigo, há um bug no systemd-networkd em que ele não coloca um endereço de prefixo delegado na interface que está distribuindo prefixos. No entanto, a interface fornece prefixos para dispositivos no segmento de rede.
O endereço IPv6 da sua interface externa que não corresponde ao prefixo deve-se à configuração da rede do seu ISP. Meu ISP fornece dois blocos de endereço DHCPv6 diferentes, um deles é o mesmo que o prefixo dado para delegação, o outro não. Ele muda aleatoriamente quando a concessão DHCPv6 expira.
A configuração que usei eu peguei do Wiki do Archlinux Primeiro você configura sua interface "externa" (aquela conectada ao Fritz!box)
O código que você já tem para eth1 parece correto (assumindo que eth1 é sua interface externa). Na minha configuração, habilitei os clientes DHCPv4 e DHCPv6 na minha interface.
Agora sua interface interna deve ser configurada assim:
O
RouterLifetimeSec
é importante porque é o que configura a interface para fornecer os prefixos que recebe da interface DHCPv6.