Quero emular o serviço de metadados do Amazon EC2 em meu sistema local para teste. No EC2, isso é executado em 169.254.169.254
. Eu entendo que este é odesignadaintervalo para endereços locais pseudoaleatórios em caso de falha de DHCP, mas a Amazon, em sua sabedoria, também o está usando para essa finalidade, então preciso fazer a mesma coisa.
Estou usando F19 Alpha. No Fedora anterior, eu poderia simplesmente criar uma interface virtual no dispositivo de loopback, gostar lo:0
e atribuir a ela um endereço estático usando os ifcfg-
scripts normais. Agora, isso falha com "Erro: Falha na ativação da conexão: dispositivo não gerenciado pelo NetworkManager ou indisponível".
(Estou executando o NetworkManager, mas anteriormente estava fazendo isso embaixo dele.)
Encontrar alguma maneira de continuar o que estava fazendo com lo:0
a abordagem correta (e em caso afirmativo, como?), Ou existe uma maneira melhor?
Responder1
Para responder à sua pergunta específica, você pode usariproute2para atribuir o endereço IP assim:
sudo ip addr add 169.254.169.254/16 dev lo
Ele apenas adicionará um novo IP à interface, sem necessidade de alias com :0, :1, etc. Observe que isso será perdido após uma reinicialização.
E para emular rapidamente o serviço de metadados você pode usarnetcatassim:
while true; do sudo nc -l 169.254.169.254 80 <<< '"region" : "eu-west-1"'; test $? != 0 && break; done
Isso lhe dará a região ao perguntar assim:
curl -s http://169.254.169.254/latest/dynamic/instance-identity/document
OBSERVAÇÃO:De acordo coma versão atual desta página de documentação da AWSo IP do serviço de metadados é um endereço local de link e aponta para oArtigo da Wikipédia sobre isso. Por sua vez, essa página aponta paraRFC3927onde se lê:
O prefixo IPv4 169.254/16 está registrado na IANA para esse fim.
Responder2
Faz algum tempo que não uso o Fedora, mas ainda deve ser muito semelhante ao CentOS. Eu fiz isso no CentOS 6.
Copiar /etc/sysconfig/network-scripts/ifcfg-lo
para/etc/sysconfig/network-scripts/ifcfg-lo:1
Sua nova configuração deve ficar assim:
DEVICE=lo:1
IPADDR=169.254.169.254
NETMASK=255.0.0.0
ONBOOT=yes
NAME=loopback1
Reinicie o serviço de rede service network restart
.
Boa chance, meu amigo!