Como obter o endereço IP privado secundário de uma instância do Amazon EC2

1

Estou atribuindo automaticamente um endereço IPv4 secundário durante o lançamento de minhas instâncias. Para configurar o Ubuntu para reconhecer este IP secundário eu preciso executar

ip addr add 10.0.1.15/24 dev eth0

Para acessar o endereço IP privado principal, encontrei este comando (descrito no AWS Docs e em pergunta figaros ):

curl http://169.254.169.254/latest/meta-data/local-ipv4

Mas como posso obter o endereço IP secundário para executar o comando ip automaticamente na inicialização? Para o Amazon Linux Systems, há o pacote ec2-net-utils que pode lidar com isso automaticamente.

    
por benedikt 14.11.2017 / 11:42

2 respostas

4

Você pode obter o endereço secundário com 2 comandos.

Obtenha o endereço mac da sua interface de rede

MAC='curl http://169.254.169.254/latest/meta-data/mac' 

Obter todos os endereços IP para este endereço mac

curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC}/local-ipv4s
    
por 14.11.2017 / 21:14
2

Por causa da resposta antrost (sua solicitação curl retorna todos os endereços IP) eu consegui escrever o seguinte script basico que retorna o IP privado secundário e configura o Ubuntu para reconhecê-lo:

#!/bin/bash
MAC='curl -s http://169.254.169.254/latest/meta-data/mac'
ADDRESSES='curl -s http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC}/local-ipv4s'
arr=($ADDRESSES)
if [ ${#arr[@]} -ge 2 ];
then
  ip addr add ${arr[1]}/24 dev eth0
fi
    
por 16.11.2017 / 14:13