Adicionando um bloco IPv6 / 64 inteiro a um servidor usando Netplan

4

Li Adicionando um todo o bloco IPv6 / 64 para uma interface de rede no debian Queremos fazer uso do AnyIP recurso para adicionar um bloco de sub-rede IPv6 / 64 inteiro a um servidor de hospedagem na Web, mas usando Netplan porque estamos no Ubuntu 18.04

Nota: alguns especialistas desaconselharam o uso do AnyIP para configurar o IPv6, por isso também procuraremos soluções alternativas, como a configuração manual de um número menor de IPs.

Nosso datacenter já encaminha o / 64 para um único IP, por exemplo

The range  2001:db8:1:10::0/64  is routed to the IP  2001:db8:1::1:10
The range  2001:db8:1:11::0/64  is routed to the IP  2001:db8:1::1:11

Na Netplan eu posso configurar IPs únicos dessa maneira

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      accept-ra: no
      addresses:
        - '2001:db8:1::1:10/48'
        - '2001:db8:1:10::0/64'
        - '2001:db8:1:10::1/64'
      gateway6: '2001:db8:1::1'

E isso funciona. No entanto, quero usar todo o intervalo 2001:db8:1:10::/64 neste servidor e não quero configurá-lo nas linhas 18446744073709551616.

Executar este comando me permite fazer ping de todos os / 64 IPs de fora:

ip -6 route add local 2001:db8:1:10::/64 dev lo

Nota: um servidor precisa suportar IP_FREEBIND para poder se ligar a um IP que não esteja explicitamente configurado em uma interface.

Minha pergunta é: em vez de ter que executar ip -6 route add local .. após cada reinicialização Eu gostaria de configurá-lo da maneira correta dentro da configuração do Netplan Yaml.

    
por Jeroen Vermeulen - MageHost 23.10.2018 / 20:38

1 resposta

1

Encontrou uma solução, mas talvez alguém conheça uma melhor?

cat <<EOF > /usr/lib/networkd-dispatcher/routable.d/50-ipv6-block
#!/bin/sh
ip -6 route add local 2001:db8:1:10::/64 dev lo
exit 0
EOF

chmod 755 /usr/lib/networkd-dispatcher/routable.d/50-ipv6-block

Para verificar se funciona:

ip -6 route del local 2001:db8:1:10::/64
netplan apply
systemctl --no-pager status networkd-dispatcher.service
route -6 | grep 2001:db8:1:10::/64
ping6 -c2 2001:db8:1:10::1234

Se você vir um RTNETLINK answers: File exists , isso ocorre porque foi adicionada uma rota que já existia devido a um% anteriornetplan apply

    
por 23.10.2018 / 22:02