cloud-init não pode configurar o ipv6

2

Comprei um VPS de nuvem pública da OVH e tentei configurar o ipv6. Também encontrei um tutorial sobre como configurar o ipv6 em sua documentação. Funciona até eu reiniciar o VPS.

Neste tutorial, eles querem que eu atualize este arquivo / etc / sysconfig / network-scripts / ifcfg-eth0, mas dentro desse arquivo ele diz "Criado pelo cloud-init na inicialização da instância automaticamente, não edite". Também tentei contactar o apoio da OVH, mas eles responderam que não me podem ajudar com isso e sugeriram perguntar aqui.

Alguém pode me ajudar com isso? Eu nunca trabalhei com cloud-init e nem sei onde é uma configuração que gera ifcfg-eth0.

OS: Centos7

    
por kironet 05.03.2018 / 10:28

2 respostas

1

No meu caso específico, meu roteador concede endereços IPv6 para minhas VMs em execução no meu servidor (em premissas) via DHCP e, portanto, não preciso codificar ou gerar qualquer configuração de IP. Eu só preciso informar um servidor DNS sobre os endereços gerados dinamicamente.

O snippet abaixo (do meu script cloud-config ) cria /etc/sysctl.conf para que ele ative o IPv6 em uma VM que esteja executando o Centos7. Ele também cria um script de shell que atualiza o endereço IPv6 atual para FreeDNS a cada 15 minutos, exigindo o FQDN e uma chave DDNS que podem ser obtidos quando você configura um registro AAAA marcado como dinâmico.

local fqdn="vm.example.com"
local ddnspasswd='obtain-ddns-key-at-dns.he.net'
cat > user-data <<EOF
    # configure IPv6
    write_files:
      - content: |
            net.ipv6.conf.all.disable_ipv6 = 0
            net.ipv6.conf.default.disable_ipv6 = 0
        path: /etc/sysctl.conf
        owner: root:root
        permissions: 0600
      - content: |
            #!/bin/bash

            function ddns_update_ipv4 {
              local fqdn="${fqdn}"
              local ddnspasswd="${ddnspasswd}"

              /usr/bin/curl -4 "https://dyn.dns.he.net/nic/update" -d "hostname=\${fqdn}" -d "password=\${ddnspasswd}" >> /dev/null 2>&1
              local STATUS=\$?

              if [[ \$STATUS -ne 0 ]]; then
                    echo "IPv4 DNS update failed, return code: \$STATUS" >> /var/log/ddns.log
                    return 1
              fi

              return 0
            }

            function ddns_update_ipv6 {
              local fqdn="${fqdn}"
              local ddnspasswd="${ddnspasswd}"

              /usr/bin/curl -6 "https://dyn.dns.he.net/nic/update" -d "hostname=\${fqdn}" -d "password=\${ddnspasswd}" >> /dev/null 2>&1
              local STATUS=\$?

              if [[ \$STATUS -ne 0 ]]; then
                    echo "IPv6 DNS update failed, return code: \$STATUS" >> /var/log/ddns.log
                    return 1
              fi

              return 0
            }


            ddns_update_ipv6
        path: /sbin/ddns-update
        owner: root:root
        permissions: 0500

    # Update IPv6 on FreeDNS (http://dns.he.net/) every 15 mins
    runcmd:
      - systemctl stop network && systemctl start network
      - echo "0,15,30,45 * * * * /sbin/ddns-update" | tee -a /etc/crontab
      - crontab -u root /etc/crontab
EOF
    
por 17.03.2018 / 02:46
0

Por favor, veja minha resposta aqui para passar dados do usuário do EC2 para simplesmente ativar o IPv6 ao iniciar uma instância:

Como eu habilitar o IPv6 no RHEL 7.4 no Amazon EC2

    
por 07.10.2018 / 23:50