Como habilitar o IPv6 no RHEL 7.4 no Amazon EC2

2

A Amazon fornece instruções sobre como ativar o IPv6 no RHEL 7 e no Centos 7: link

Estas instruções funcionam no RHEL 7-7.3 e Centos 7-7.3, mas não funcionam no RHEL 7.4 (e presumivelmente nem no Centos 7.4, quando ele estiver disponível).

O problema é que o arquivo /etc/sysconfig/network-scripts/ifcfg-eth0 é gravável pelo usuário nas versões mais antigas, mas no RHEL 7.4 esse arquivo é gerenciado pelo cloud-init.

$ sed 1q /etc/sysconfig/network-scripts/ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.

Acho muito inesperado que a simples atualização de 7,3 para 7,4 exigiria uma mudança tão fundamental no gerenciamento de redes. Não tenho certeza se essa alteração é específica do Amazon EC2 ou não, não consigo encontrar nada nas notas de versão do RHEL 7.4, por isso pode ser específico da Amazon.

Então, como você deve ativar o IPv6 no RHEL 7.4 e no Centos 7.4 no modelo cloud-init?

    
por Aram Hăvărneanu 03.08.2017 / 14:46

3 respostas

3

Para configurar o DHCPv6 no RHEL 7.4 ou no CentOS 7

  1. Conecte-se à sua instância usando o endereço IPv4 público da instância.
  2. Usando um editor de texto de sua escolha, crie um arquivo personalizado, por exemplo:

    /etc/cloud/cloud.cfg.d/99-custom-networking.cfg

  3. Adicione as seguintes linhas ao seu arquivo e salve suas alterações:

    network:
      version: 1
      config:
      - type: physical
        name: eth0
        subnets:
          - type: dhcp6
    
  4. Reinicialize sua instância.

  5. Reconecte-se à sua instância e use o comando ifconfig para verificar se o endereço IPv6 está configurado na interface de rede.

Fonte: link

    
por 01.01.2018 / 16:14
1

Eu encontrei uma boa solução para isso. Eu tenho usado o terraform para iniciar e fazer a configuração inicial de minhas instâncias usando dados de usuário cloud-init, e o seguinte arquivo de dados do usuário EC2 funciona bem para mim:

#cloud-config
preserve_hostname: false
hostname: centos-01
fqdn: centos-01.example.com
manage_etc_hosts: true
write_files:
  - path: /etc/cloud/cloud.cfg.d/99-custom-networking.cfg
    owner: root:root
    permissions: 0600
    content: |
      network:
        version: 1
        config:
        - type: physical
          name: eth0
          subnets:
            - type: dhcp
            - type: dhcp6
power_state:
  mode: reboot
  delay: now
  message: Rebooting post-config
  timeout: 30
  condition: True

As partes importantes dessa configuração são a seção write_files , que instala a configuração cloud-init apropriada para ativar o IPv6 e, em seguida, power_state , que aciona uma reinicialização imediata de pós-configuração, que aplica as alterações na configuração de rede .

Após a reinicialização, a configuração da rede é assim:

[centos@centos-01 ~]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=dhcp
DEVICE=eth0
DHCPV6C=yes
IPV6INIT=yes
IPV6_AUTOCONF=no
ONBOOT=yes
TYPE=Ethernet
USERCTL=no

Estou feliz com a solução, embora não tenha certeza do motivo de não poder simplesmente especificar a configuração de rede em meus dados de usuário diretamente, em vez de ter que gravá-la em um arquivo e reinicializá-la. De qualquer forma, isso funciona e é bastante indolor.

    
por 07.10.2018 / 23:48
0

Bem, criei o seguinte arquivo:

$ cat /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg 
network: {config: disabled}

Editei /etc/sysconfig/network-scripts/ifcfg-eth0 como antes e tudo funciona, mas não tenho certeza se essa é a melhor abordagem.

    
por 03.08.2017 / 15:04